diff options
author | Stephen Warren <swarren@nvidia.com> | 2012-09-21 09:50:56 +0000 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2012-09-25 14:49:33 -0700 |
commit | 2023e60861283ee808950a558e14b45be8776bf4 (patch) | |
tree | a8ddbbf0fdfd51fb59f26f460626eaa44d584a05 | |
parent | 650f36641ccfe1c2444277891da7c76cdde99f8b (diff) | |
download | u-boot-imx-2023e60861283ee808950a558e14b45be8776bf4.zip u-boot-imx-2023e60861283ee808950a558e14b45be8776bf4.tar.gz u-boot-imx-2023e60861283ee808950a558e14b45be8776bf4.tar.bz2 |
disk: introduce get_device()
This patch introduces function get_device(). This looks up a
block_dev_desc_t from an interface name (e.g. mmc) and device number
(e.g. 0). This function is essentially the non-partition-specific
prefix of get_device_and_partition().
Signed-off-by: Stephen Warren <swarren@nvidia.com>
-rw-r--r-- | disk/part.c | 22 | ||||
-rw-r--r-- | include/part.h | 5 |
2 files changed, 27 insertions, 0 deletions
diff --git a/disk/part.c b/disk/part.c index f0afd89..ed6bbe2 100644 --- a/disk/part.c +++ b/disk/part.c @@ -443,6 +443,28 @@ int get_partition_info(block_dev_desc_t *dev_desc, int part return -1; } +int get_device(const char *ifname, const char *dev_str, + block_dev_desc_t **dev_desc) +{ + char *ep; + int dev; + + dev = simple_strtoul(dev_str, &ep, 16); + if (*ep) { + printf("** Bad device specification %s %s **\n", + ifname, dev_str); + return -1; + } + + *dev_desc = get_dev(ifname, dev); + if (!(*dev_desc) || ((*dev_desc)->type == DEV_TYPE_UNKNOWN)) { + printf("** Bad device %s %s **\n", ifname, dev_str); + return -1; + } + + return dev; +} + int get_device_and_partition(const char *ifname, const char *dev_str, block_dev_desc_t **dev_desc, disk_partition_t *info) diff --git a/include/part.h b/include/part.h index a6d06f3..144df4e 100644 --- a/include/part.h +++ b/include/part.h @@ -112,6 +112,8 @@ int get_partition_info (block_dev_desc_t * dev_desc, int part, disk_partition_t void print_part (block_dev_desc_t *dev_desc); void init_part (block_dev_desc_t *dev_desc); void dev_print(block_dev_desc_t *dev_desc); +int get_device(const char *ifname, const char *dev_str, + block_dev_desc_t **dev_desc); int get_device_and_partition(const char *ifname, const char *dev_str, block_dev_desc_t **dev_desc, disk_partition_t *info); @@ -131,6 +133,9 @@ static inline int get_partition_info (block_dev_desc_t * dev_desc, int part, static inline void print_part (block_dev_desc_t *dev_desc) {} static inline void init_part (block_dev_desc_t *dev_desc) {} static inline void dev_print(block_dev_desc_t *dev_desc) {} +static inline int get_device(const char *ifname, const char *dev_str, + block_dev_desc_t **dev_desc) +{ return -1; } static inline int get_device_and_partition(const char *ifname, const char *dev_str, block_dev_desc_t **dev_desc, |