disk: convert CONFIG_MAC_PARTITION to Kconfig
[platform/kernel/u-boot.git] / disk / part.c
index 3039f5f..cb9b861 100644 (file)
@@ -190,13 +190,13 @@ void dev_print (struct blk_desc *dev_desc)
                        printf ("            Supports 48-bit addressing\n");
 #endif
 #if defined(CONFIG_SYS_64BIT_LBA)
-               printf ("            Capacity: %ld.%ld MB = %ld.%ld GB (%Ld x %ld)\n",
+               printf ("            Capacity: %lu.%lu MB = %lu.%lu GB (%llu x %lu)\n",
                        mb_quot, mb_rem,
                        gb_quot, gb_rem,
                        lba,
                        dev_desc->blksz);
 #else
-               printf ("            Capacity: %ld.%ld MB = %ld.%ld GB (%ld x %ld)\n",
+               printf ("            Capacity: %lu.%lu MB = %lu.%lu GB (%lu x %lu)\n",
                        mb_quot, mb_rem,
                        gb_quot, gb_rem,
                        (ulong)lba,
@@ -234,7 +234,7 @@ void part_init(struct blk_desc *dev_desc)
 
 static void print_part_header(const char *type, struct blk_desc *dev_desc)
 {
-#if defined(CONFIG_MAC_PARTITION) || \
+#if CONFIG_IS_ENABLED(MAC_PARTITION) || \
        defined(CONFIG_DOS_PARTITION) || \
        defined(CONFIG_ISO_PARTITION) || \
        defined(CONFIG_AMIGA_PARTITION) || \
@@ -350,7 +350,7 @@ int blk_get_device_by_str(const char *ifname, const char *dev_hwpart_str,
        if (*ep) {
                printf("** Bad device specification %s %s **\n",
                       ifname, dev_str);
-               dev = -1;
+               dev = -EINVAL;
                goto cleanup;
        }
 
@@ -359,7 +359,7 @@ int blk_get_device_by_str(const char *ifname, const char *dev_hwpart_str,
                if (*ep) {
                        printf("** Bad HW partition specification %s %s **\n",
                            ifname, hwpart_str);
-                       dev = -1;
+                       dev = -EINVAL;
                        goto cleanup;
                }
        }
@@ -367,7 +367,7 @@ int blk_get_device_by_str(const char *ifname, const char *dev_hwpart_str,
        *dev_desc = get_dev_hwpart(ifname, dev, hwpart);
        if (!(*dev_desc) || ((*dev_desc)->type == DEV_TYPE_UNKNOWN)) {
                printf("** Bad device %s %s **\n", ifname, dev_hwpart_str);
-               dev = -1;
+               dev = -ENOENT;
                goto cleanup;
        }
 
@@ -615,3 +615,61 @@ cleanup:
        free(dup_str);
        return ret;
 }
+
+int part_get_info_by_name(struct blk_desc *dev_desc, const char *name,
+       disk_partition_t *info)
+{
+       struct part_driver *first_drv =
+               ll_entry_start(struct part_driver, part_driver);
+       const int n_drvs = ll_entry_count(struct part_driver, part_driver);
+       struct part_driver *part_drv;
+
+       for (part_drv = first_drv; part_drv != first_drv + n_drvs; part_drv++) {
+               int ret;
+               int i;
+               for (i = 1; i < part_drv->max_entries; i++) {
+                       ret = part_drv->get_info(dev_desc, i, info);
+                       if (ret != 0) {
+                               /* no more entries in table */
+                               break;
+                       }
+                       if (strcmp(name, (const char *)info->name) == 0) {
+                               /* matched */
+                               return 0;
+                       }
+               }
+       }
+       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);
+}