On Fri, Sep 9, 2016 at 1:27 AM, Petr Kulhavy <br...@jikos.cz> wrote: > In both DOS and ISO partition tables the same code to create partition name > like "hda1" was repeated. > > Code moved to into a new function part_set_generic_name() in part.c and > optimized. > Added recognition of MMC and SD types, name is like "mmcsda1". > > Signed-off-by: Petr Kulhavy <br...@jikos.cz> > Reviewed-by: Tom Rini <tr...@konsulko.com> > --- > v1: initial > v2: no change > > disk/part.c | 32 ++++++++++++++++++++++++++++++++ > disk/part_dos.c | 31 ++----------------------------- > disk/part_iso.c | 25 +------------------------ > doc/README.android-fastboot | 1 + > include/part.h | 14 ++++++++++++++ > 5 files changed, 50 insertions(+), 53 deletions(-) > > diff --git a/disk/part.c b/disk/part.c > index 8317e80..9f51a07 100644 > --- a/disk/part.c > +++ b/disk/part.c > @@ -641,3 +641,35 @@ int part_get_info_by_name(struct blk_desc *dev_desc, > const char *name, > } > 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); > +} > diff --git a/disk/part_dos.c b/disk/part_dos.c > index 8e6aae5..ed78334 100644 > --- a/disk/part_dos.c > +++ b/disk/part_dos.c > @@ -209,35 +209,8 @@ static int part_get_info_extended(struct blk_desc > *dev_desc, > 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); > diff --git a/disk/part_iso.c b/disk/part_iso.c > index 78fc97e..bb8ed65 100644 > --- a/disk/part_iso.c > +++ b/disk/part_iso.c > @@ -137,30 +137,7 @@ int part_get_info_iso_verb(struct blk_desc *dev_desc, > int part_num, > 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) { > diff --git a/doc/README.android-fastboot b/doc/README.android-fastboot > index dea7066..b8afa15 100644 > --- a/doc/README.android-fastboot > +++ b/doc/README.android-fastboot > @@ -79,6 +79,7 @@ The device type is as follows: > * IDE, ATAPI and SATA disks: hd > * SCSI disks: sd > * USB media: usbd > + * MMC and SD cards: mmcsd > * Disk on chip: docd > * other: xx > > diff --git a/include/part.h b/include/part.h > index b17c219..0979005 100644 > --- a/include/part.h > +++ b/include/part.h > @@ -165,6 +165,20 @@ int blk_get_device_part_str(const char *ifname, const > char *dev_part_str, > 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) > -- > 2.7.4 > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot
Acked-by: Steve Rae <steve....@raedomain.com> _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot