X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=include%2Fpart.h;h=0cd803a9334fb799aae45088988ce9184ceece68;hb=f0ca30fa19ee57e2f8452a1d0b8a30eb923d7e22;hp=9d0e20d0416d30711d6ad4397872658e604e40e0;hpb=b331cd6204ffdc568cd6c06bd18e72aa9bc61f22;p=platform%2Fkernel%2Fu-boot.git diff --git a/include/part.h b/include/part.h index 9d0e20d..0cd803a 100644 --- a/include/part.h +++ b/include/part.h @@ -9,6 +9,8 @@ #include #include +#include +#include struct block_drvr { char *name; @@ -46,21 +48,34 @@ struct block_drvr { #define DEV_TYPE_CDROM 0x05 /* CD-ROM */ #define DEV_TYPE_OPDISK 0x07 /* optical disk */ +#define PART_NAME_LEN 32 +#define PART_TYPE_LEN 32 +#define MAX_SEARCH_PARTITIONS 64 + typedef struct disk_partition { lbaint_t start; /* # of first block in partition */ lbaint_t size; /* number of blocks in partition */ ulong blksz; /* block size in bytes */ - uchar name[32]; /* partition name */ - uchar type[32]; /* string type description */ + uchar name[PART_NAME_LEN]; /* partition name */ + uchar type[PART_TYPE_LEN]; /* string type description */ int bootable; /* Active/Bootable flag is set */ #if CONFIG_IS_ENABLED(PARTITION_UUIDS) - char uuid[37]; /* filesystem UUID as string, if exists */ + char uuid[UUID_STR_LEN + 1]; /* filesystem UUID as string, if exists */ #endif #ifdef CONFIG_PARTITION_TYPE_GUID - char type_guid[37]; /* type GUID as string, if exists */ + char type_guid[UUID_STR_LEN + 1]; /* type GUID as string, if exists */ +#endif +#ifdef CONFIG_DOS_PARTITION + uchar sys_ind; /* partition type */ #endif } disk_partition_t; +struct disk_part { + int partnum; + disk_partition_t gpt_part_info; + struct list_head list; +}; + /* Misc _get_dev functions */ #ifdef CONFIG_PARTITIONS /** @@ -160,7 +175,8 @@ int blk_get_device_part_str(const char *ifname, const char *dev_part_str, * @param gpt_name - the specified table entry name * @param info - returns the disk partition info * - * @return - '0' on match, '-1' on no match, otherwise error + * @return - the partition number on match (starting on 1), -1 on no match, + * otherwise error */ int part_get_info_by_name(struct blk_desc *dev_desc, const char *name, disk_partition_t *info); @@ -363,6 +379,21 @@ int gpt_verify_headers(struct blk_desc *dev_desc, gpt_header *gpt_head, int gpt_verify_partitions(struct blk_desc *dev_desc, disk_partition_t *partitions, int parts, gpt_header *gpt_head, gpt_entry **gpt_pte); + + +/** + * get_disk_guid() - Function to read the GUID string from a device's GPT + * + * This function reads the GUID string from a block device whose descriptor + * is provided. + * + * @param dev_desc - block device descriptor + * @param guid - pre-allocated string in which to return the GUID + * + * @return - '0' on success, otherwise error + */ +int get_disk_guid(struct blk_desc *dev_desc, char *guid); + #endif #if CONFIG_IS_ENABLED(DOS_PARTITION)