summaryrefslogtreecommitdiff
path: root/ubi-utils/inc
diff options
context:
space:
mode:
authorArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2007-12-22 15:43:19 +0200
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2007-12-22 17:49:58 +0200
commitc036f9958b3719a949999ca4fe9866ba56b3f713 (patch)
treec223609251d68d34b57d6b2989451d51960f1580 /ubi-utils/inc
parentc4d478578c7a1343ad053fca79d80fdc4962ca6f (diff)
ubi-utils: introduce ubinfo utility
Add new handy UBI utility which prints various type of UBI information. This commit also includes a lot of fixes and cleanups in libubi, and other utilities. It was quite complex to separate this all out and I figured that nobody anyway would really need this, and decided to save my time for more useful things. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'ubi-utils/inc')
-rw-r--r--ubi-utils/inc/libubi.h172
1 files changed, 96 insertions, 76 deletions
diff --git a/ubi-utils/inc/libubi.h b/ubi-utils/inc/libubi.h
index d39c1b9..21be68a 100644
--- a/ubi-utils/inc/libubi.h
+++ b/ubi-utils/inc/libubi.h
@@ -40,7 +40,13 @@ typedef void * libubi_t;
/**
* struct ubi_mkvol_request - volume creation request.
- * */
+ * @vol_id: ID to assign to the new volume (%UBI_VOL_NUM_AUTO should be used to
+ * automatically assign ID)
+ * @alignment: volume alignment
+ * @bytes: volume size in bytes
+ * @vol_type: volume type (%UBI_DYNAMIC_VOLUME or %UBI_STATIC_VOLUME)
+ * @name: volume name
+ */
struct ubi_mkvol_request
{
int vol_id;
@@ -52,11 +58,12 @@ struct ubi_mkvol_request
/**
* struct ubi_info - general UBI information.
- *
- * @dev_count count of UBI devices in system
- * @lowest_dev_num lowest UBI device number
- * @highest_dev_num highest UBI device number
- * @version UBI version
+ * @dev_count: count of UBI devices in system
+ * @lowest_dev_num: lowest UBI device number
+ * @highest_dev_num: highest UBI device number
+ * @version: UBI version
+ * @ctrl_major: major number of the UBI control device
+ * @ctrl_minor: minor number of the UBI control device
*/
struct ubi_info
{
@@ -64,26 +71,29 @@ struct ubi_info
int lowest_dev_num;
int highest_dev_num;
int version;
+ int ctrl_major;
+ int ctrl_minor;
};
/**
* struct ubi_dev_info - UBI device information.
- *
- * @vol_count count of volumes on this UBI device
- * @lowest_vol_num lowest volume number
- * @highest_vol_num highest volume number
- * @total_ebs total number of eraseblocks on this UBI device
- * @avail_ebs how many eraseblocks are not used and available for new
- * volumes
- * @total_bytes @total_ebs * @eb_size
- * @avail_bytes @avail_ebs * @eb_size
- * @bad_count count of bad eraseblocks
- * @eb_size size of UBI eraseblock
- * @max_ec current highest erase counter value
- * @bad_rsvd how many physical eraseblocks of the underlying flash
- * device are reserved for bad eraseblocks handling
- * @max_vol_count maximum count of volumes on this UBI device
- * @min_io_size minimum input/output size of the UBI device
+ * @vol_count: count of volumes on this UBI device
+ * @lowest_vol_num: lowest volume number
+ * @highest_vol_num: highest volume number
+ * @major: major number of corresponding character device
+ * @minor: minor number of corresponding character device
+ * @total_ebs: total number of logical eraseblocks on this UBI device
+ * @avail_ebs: how many logical eraseblocks are not used and available for new
+ * volumes
+ * @total_bytes: @total_ebs * @eb_size
+ * @avail_bytes: @avail_ebs * @eb_size
+ * @bad_count: count of bad physical eraseblocks
+ * @eb_size: logical eraseblock size
+ * @max_ec: current highest erase counter value
+ * @bad_rsvd: how many physical eraseblocks of the underlying flash device are
+ * reserved for bad eraseblocks handling
+ * @max_vol_count: maximum possible number of volumes on this UBI device
+ * @min_io_size: minimum input/output unit size of the UBI device
*/
struct ubi_dev_info
{
@@ -91,6 +101,8 @@ struct ubi_dev_info
int vol_count;
int lowest_vol_num;
int highest_vol_num;
+ int major;
+ int minor;
int total_ebs;
int avail_ebs;
long long total_bytes;
@@ -105,24 +117,31 @@ struct ubi_dev_info
/**
* struct ubi_vol_info - UBI volume information.
- *
- * @dev_num UBI device number the volume resides on
- * @vol_id ID of this volume
- * @type volume type (%UBI_DYNAMIC_VOLUME or %UBI_STATIC_VOLUME)
- * @alignment alignemnt of this volume
- * @data_bytes how many data bytes are stored on this volume (equivalent to
- * @rsvd_bytes for dynamic volumes)
- * @rsvd_bytes how many bytes are reserved for this volume
- * @rsvd_ebs how many eraseblocks are reserved for this volume
- * @eb_size logical eraseblock size of this volume (may be less then
- * device's logical eraseblock size due to alignment)
- * @corrupted the volume is corrupted if this flag is not zero
- * @name volume name (null-terminated)
+ * @dev_num: UBI device number the volume resides on
+ * @vol_id: ID of this volume
+ * @major: major number of corresponding volume character device
+ * @minor: minor number of corresponding volume character device
+ * @dev_major: major number of corresponding UBI device character device
+ * @dev_minor: minor number of corresponding UBI device character device
+ * @type: volume type (%UBI_DYNAMIC_VOLUME or %UBI_STATIC_VOLUME)
+ * @alignment: alignemnt of this volume
+ * @data_bytes: how many data bytes are stored on this volume (equivalent to
+ * @rsvd_bytes for dynamic volumes)
+ * @rsvd_bytes: how many bytes are reserved for this volume
+ * @rsvd_ebs: how many logical eraseblocks are reserved for this volume
+ * @eb_size: logical eraseblock size of this volume (may be less then
+ * device's logical eraseblock size due to alignment)
+ * @corrupted: non-zero if the volume is corrupted
+ * @name: volume name (null-terminated)
*/
struct ubi_vol_info
{
int dev_num;
int vol_id;
+ int major;
+ int minor;
+ int dev_major;
+ int dev_minor;
int type;
int alignment;
long long data_bytes;
@@ -135,24 +154,21 @@ struct ubi_vol_info
/**
* libubi_open - open UBI library.
- *
* This function initializes and opens the UBI library and returns UBI library
* descriptor in case of success and %NULL in case of failure.
*/
libubi_t libubi_open(void);
/**
- * libubi_close - close UBI library
- *
+ * libubi_close - close UBI library.
* @desc UBI library descriptor
*/
void libubi_close(libubi_t desc);
/**
* ubi_get_info - get general UBI information.
- *
- * @info pointer to the &struct ubi_info object to fill
- * @desc UBI library descriptor
+ * @info: pointer to the &struct ubi_info object to fill
+ * @desc: UBI library descriptor
*
* This function fills the passed @info object with general UBI information and
* returns %0 in case of success and %-1 in case of failure.
@@ -161,10 +177,9 @@ int ubi_get_info(libubi_t desc, struct ubi_info *info);
/**
* ubi_mkvol - create an UBI volume.
- *
- * @desc UBI library descriptor
- * @node name of the UBI character device to create a volume at
- * @req UBI volume creation request (defined at <mtd/ubi-user.h>)
+ * @desc: UBI library descriptor
+ * @node: name of the UBI character device to create a volume at
+ * @req: UBI volume creation request
*
* This function creates a UBI volume as described at @req and returns %0 in
* case of success and %-1 in case of failure. The assigned volume ID is
@@ -174,10 +189,9 @@ int ubi_mkvol(libubi_t desc, const char *node, struct ubi_mkvol_request *req);
/**
* ubi_rmvol - remove a UBI volume.
- *
- * @desc UBI library descriptor
- * @node name of the UBI character device to remove a volume from
- * @vol_id ID of the volume to remove
+ * @desc: UBI library descriptor
+ * @node: name of the UBI character device to remove a volume from
+ * @vol_id: ID of the volume to remove
*
* This function removes volume @vol_id from UBI device @node and returns %0 in
* case of success and %-1 in case of failure.
@@ -186,23 +200,33 @@ int ubi_rmvol(libubi_t desc, const char *node, int vol_id);
/**
* ubi_rsvol - re-size UBI volume.
- *
- * @desc UBI library descriptor
- * @node name of the UBI character device owning the volume which should be
- * re-sized
- * @vol_id volume ID to re-size
- * @bytes new volume size in bytes
+ * @desc: UBI library descriptor
+ * @node: name of the UBI character device owning the volume which should be
+ * re-sized
+ * @vol_id: volume ID to re-size
+ * @bytes: new volume size in bytes
*
* This function returns %0 in case of success and %-1 in case of error.
*/
int ubi_rsvol(libubi_t desc, const char *node, int vol_id, long long bytes);
/**
- * ubi_get_dev_info - get UBI device information.
+ * ubi_node_type - test UBI node type.
+ * @desc: UBI library descriptor
+ * @node: the node to test
*
- * @desc UBI library descriptor
- * @node name of the UBI character device to fetch information about
- * @info pointer to the &struct ubi_dev_info object to fill
+ * This function tests whether @node is a UBI device or volume node and returns
+ * %1 if this is an UBI device node, %2 if this is a volume node, and %-1 if
+ * this is not an UBI node or if an error occurred (the latter is indicated by
+ * a non-zero errno).
+ */
+int ubi_node_type(libubi_t desc, const char *node);
+
+/**
+ * ubi_get_dev_info - get UBI device information.
+ * @desc: UBI library descriptor
+ * @node: name of the UBI character device to fetch information about
+ * @info: pointer to the &struct ubi_dev_info object to fill
*
* This function fills the passed @info object with UBI device information and
* returns %0 in case of success and %-1 in case of failure.
@@ -212,10 +236,9 @@ int ubi_get_dev_info(libubi_t desc, const char *node,
/**
* ubi_get_dev_info1 - get UBI device information.
- *
- * @desc UBI library descriptor
- * @dev_num UBI device number to fetch information about
- * @info pointer to the &struct ubi_dev_info object to fill
+ * @desc: UBI library descriptor
+ * @dev_num: UBI device number to fetch information about
+ * @info: pointer to the &struct ubi_dev_info object to fill
*
* This function is identical to 'ubi_get_dev_info()' except that it accepts UBI
* device number, not UBI character device.
@@ -224,10 +247,9 @@ int ubi_get_dev_info1(libubi_t desc, int dev_num, struct ubi_dev_info *info);
/**
* ubi_get_vol_info - get UBI volume information.
- *
- * @desc UBI library descriptor
- * @node name of the UBI volume character device to fetch information about
- * @info pointer to the &struct ubi_vol_info object to fill
+ * @desc: UBI library descriptor
+ * @node: name of the UBI volume character device to fetch information about
+ * @info: pointer to the &struct ubi_vol_info object to fill
*
* This function fills the passed @info object with UBI volume information and
* returns %0 in case of success and %-1 in case of failure.
@@ -237,11 +259,10 @@ int ubi_get_vol_info(libubi_t desc, const char *node,
/**
* ubi_get_vol_info1 - get UBI volume information.
- *
- * @desc UBI library descriptor
- * @dev_num UBI device number
- * @vol_id ID of the UBI volume to fetch information about
- * @info pointer to the &struct ubi_vol_info object to fill
+ * @desc: UBI library descriptor
+ * @dev_num: UBI device number
+ * @vol_id: ID of the UBI volume to fetch information about
+ * @info: pointer to the &struct ubi_vol_info object to fill
*
* This function is identical to 'ubi_get_vol_info()' except that it accepts UBI
* volume number, not UBI volume character device.
@@ -251,10 +272,9 @@ int ubi_get_vol_info1(libubi_t desc, int dev_num, int vol_id,
/**
* ubi_update_start - start UBI volume update.
- *
- * @desc UBI library descriptor
- * @fd volume character devie file descriptor
- * @bytes how many bytes will be written to the volume
+ * @desc: UBI library descriptor
+ * @fd: volume character devie file descriptor
+ * @bytes: how many bytes will be written to the volume
*
* This function initiates UBI volume update and returns %0 in case of success
* and %-1 in case of error.