}
return -1;
}
+
+void part_set_generic_name(const struct blk_desc *dev_desc,
+ int part_num, char *name)
+{
+ char *devtype;
+
+ switch (dev_desc->if_type) {
+ case IF_TYPE_IDE:
+ case IF_TYPE_SATA:
+ case IF_TYPE_ATAPI:
+ devtype = "hd";
+ break;
+ case IF_TYPE_SCSI:
+ devtype = "sd";
+ break;
+ case IF_TYPE_USB:
+ devtype = "usbd";
+ break;
+ case IF_TYPE_DOC:
+ devtype = "docd";
+ break;
+ case IF_TYPE_MMC:
+ case IF_TYPE_SD:
+ devtype = "mmcsd";
+ break;
+ default:
+ devtype = "xx";
+ break;
+ }
+
+ sprintf(name, "%s%c%d", devtype, 'a' + dev_desc->devnum, part_num);
+}
info->start = (lbaint_t)(ext_part_sector +
le32_to_int(pt->start4));
info->size = (lbaint_t)le32_to_int(pt->size4);
- switch(dev_desc->if_type) {
- case IF_TYPE_IDE:
- case IF_TYPE_SATA:
- case IF_TYPE_ATAPI:
- sprintf((char *)info->name, "hd%c%d",
- 'a' + dev_desc->devnum,
- part_num);
- break;
- case IF_TYPE_SCSI:
- sprintf((char *)info->name, "sd%c%d",
- 'a' + dev_desc->devnum,
- part_num);
- break;
- case IF_TYPE_USB:
- sprintf((char *)info->name, "usbd%c%d",
- 'a' + dev_desc->devnum,
- part_num);
- break;
- case IF_TYPE_DOC:
- sprintf((char *)info->name, "docd%c%d",
- 'a' + dev_desc->devnum,
- part_num);
- break;
- default:
- sprintf((char *)info->name, "xx%c%d",
- 'a' + dev_desc->devnum,
- part_num);
- break;
- }
+ part_set_generic_name(dev_desc, part_num,
+ (char *)info->name);
/* sprintf(info->type, "%d, pt->sys_ind); */
strcpy((char *)info->type, "U-Boot");
info->bootable = is_bootable(pt);
entry_num=1;
offset=0x20;
strcpy((char *)info->type, "U-Boot");
- switch(dev_desc->if_type) {
- case IF_TYPE_IDE:
- case IF_TYPE_SATA:
- case IF_TYPE_ATAPI:
- sprintf ((char *)info->name, "hd%c%d",
- 'a' + dev_desc->devnum, part_num);
- break;
- case IF_TYPE_SCSI:
- sprintf ((char *)info->name, "sd%c%d",
- 'a' + dev_desc->devnum, part_num);
- break;
- case IF_TYPE_USB:
- sprintf ((char *)info->name, "usbd%c%d",
- 'a' + dev_desc->devnum, part_num);
- break;
- case IF_TYPE_DOC:
- sprintf ((char *)info->name, "docd%c%d",
- 'a' + dev_desc->devnum, part_num);
- break;
- default:
- sprintf ((char *)info->name, "xx%c%d",
- 'a' + dev_desc->devnum, part_num);
- break;
- }
+ part_set_generic_name(dev_desc, part_num, (char *)info->name);
/* the bootcatalog (including validation Entry) is limited to 2048Bytes
* (63 boot entries + validation entry) */
while(offset<2048) {
* IDE, ATAPI and SATA disks: hd
* SCSI disks: sd
* USB media: usbd
+ * MMC and SD cards: mmcsd
* Disk on chip: docd
* other: xx
int part_get_info_by_name(struct blk_desc *dev_desc,
const char *name, disk_partition_t *info);
+/**
+ * part_set_generic_name() - create generic partition like hda1 or sdb2
+ *
+ * Helper function for partition tables, which don't hold partition names
+ * (DOS, ISO). Generates partition name out of the device type and partition
+ * number.
+ *
+ * @dev_desc: pointer to the block device
+ * @part_num: partition number for which the name is generated
+ * @name: buffer where the name is written
+ */
+void part_set_generic_name(const struct blk_desc *dev_desc,
+ int part_num, char *name);
+
extern const struct block_drvr block_drvr[];
#else
static inline struct blk_desc *blk_get_dev(const char *ifname, int dev)