uboot:disk add get_partition_bynameorindex()
This function will get partition through name or index.This reference by Digi U-Boot.
This commit is contained in:
30
disk/part.c
30
disk/part.c
@ -741,3 +741,33 @@ cleanup:
|
||||
free(dup_str);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int get_partition_bynameorindex(const char *ifname, const char *dev_str,
|
||||
char *part_nameorindex, disk_partition_t *info)
|
||||
{
|
||||
int dev;
|
||||
unsigned long part;
|
||||
block_dev_desc_t *dev_desc;
|
||||
|
||||
dev = get_device(ifname, dev_str, &dev_desc);
|
||||
if (dev < 0)
|
||||
return -1;
|
||||
|
||||
/* Check if partition to update is given as a number */
|
||||
if (!strict_strtoul(part_nameorindex, 16, &part)) {
|
||||
/* Look up partition by number */
|
||||
if (!get_partition_info(dev_desc, part, info))
|
||||
return (int)part;
|
||||
} else {
|
||||
/* Look up partition by name */
|
||||
part = 1;
|
||||
while (!get_partition_info(dev_desc, part, info)) {
|
||||
/* Check if partition name matches */
|
||||
if (!strcmp((char *)info->name, part_nameorindex))
|
||||
return (int)part;
|
||||
part++;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user