struct blk_driver *blk_driver_lookup_type(int if_type)
struct blk_driver *drv = ll_entry_start(struct blk_driver, blk_driver);
const int n_ents = ll_entry_count(struct blk_driver, blk_driver);
struct blk_driver *entry;
for (entry = drv; entry != drv + n_ents; entry++) {
if (if_type == entry->if_type)
static struct blk_driver *blk_driver_lookup_typename(const char *if_typename)
struct blk_driver *drv = ll_entry_start(struct blk_driver, blk_driver);
const int n_ents = ll_entry_count(struct blk_driver, blk_driver);
struct blk_driver *entry;
for (entry = drv; entry != drv + n_ents; entry++) {
if (!strcmp(if_typename, entry->if_typename))
const char *blk_get_if_type_name(enum if_type if_type)
struct blk_driver *drv = blk_driver_lookup_type(if_type);
return drv ? drv->if_typename : NULL;
static int get_desc(struct blk_driver *drv, int devnum, struct blk_desc **descp)
if (devnum < 0 || devnum >= drv->max_devs)
*descp = &drv->desc[devnum];