aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2016-03-04 01:09:56 +0100
committerTom Rini <trini@konsulko.com>2016-03-15 15:19:22 -0400
commitd96a98045aa5aadba473d89872a987ac50a023ea (patch)
tree7db2dd1b04ded93afd7dc3046ac20959a0c2a766 /include
parent19503c3117ace4bfab86d317ee459812387e983b (diff)
downloadu-boot-d96a98045aa5aadba473d89872a987ac50a023ea.zip
u-boot-d96a98045aa5aadba473d89872a987ac50a023ea.tar.gz
u-boot-d96a98045aa5aadba473d89872a987ac50a023ea.tar.bz2
disk/part.c: Expose list of available block drivers
We have a pretty nice and generic interface to ask for a specific block device. However, that one is still based around the magic notion that we know the driver name. In order to be able to write fully generic disk access code, expose the currently internal list to other source files so that they can scan through all available block drivers. Signed-off-by: Alexander Graf <agraf@suse.de> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'include')
-rw-r--r--include/part.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/part.h b/include/part.h
index 6d8f520..dc8e72e 100644
--- a/include/part.h
+++ b/include/part.h
@@ -10,6 +10,12 @@
#include <blk.h>
#include <ide.h>
+struct block_drvr {
+ char *name;
+ struct blk_desc* (*get_dev)(int dev);
+ int (*select_hwpart)(int dev_num, int hwpart);
+};
+
#define LOG2(x) (((x & 0xaaaaaaaa) ? 1 : 0) + ((x & 0xcccccccc) ? 2 : 0) + \
((x & 0xf0f0f0f0) ? 4 : 0) + ((x & 0xff00ff00) ? 8 : 0) + \
((x & 0xffff0000) ? 16 : 0))
@@ -165,6 +171,7 @@ int blk_get_device_by_str(const char *ifname, const char *dev_str,
int blk_get_device_part_str(const char *ifname, const char *dev_part_str,
struct blk_desc **dev_desc,
disk_partition_t *info, int allow_whole_dev);
+extern const struct block_drvr block_drvr[];
#else
static inline struct blk_desc *blk_get_dev(const char *ifname, int dev)
{ return NULL; }