/* * Author(s)......: Holger Smolinski <Holger.Smolinski@de.ibm.com> * Horst Hummel <Horst.Hummel@de.ibm.com> * Carsten Otte <Cotte@de.ibm.com> * Martin Schwidefsky <schwidefsky@de.ibm.com> * Bugreports.to..: <Linux390@de.ibm.com> * Copyright IBM Corp. 1999,2001 * * Device mapping and dasd= parameter parsing functions. All devmap * functions may not be called from interrupt context. In particular * dasd_get_device is a no-no from interrupt context. * */#define KMSG_COMPONENT "dasd"#include<linux/ctype.h>#include<linux/init.h>#include<linux/module.h>#include<linux/slab.h>#include<asm/debug.h>#include<asm/uaccess.h>#include<asm/ipl.h>/* This is ugly... */#define PRINTK_HEADER "dasd_devmap:"#define DASD_BUS_ID_SIZE 20#include"dasd_int.h"structkmem_cache*dasd_page_cache;EXPORT_SYMBOL_GPL(dasd_page_cache);/* * dasd_devmap_t is used to store the features and the relation * between device number and device index. To find a dasd_devmap_t * that corresponds to a device number of a device index each * dasd_devmap_t is added to two linked lists, one to search by * the device number and one to search by the device index. As * soon as big minor numbers are available the device index list * can be removed since the device number will then be identical * to the device index. */structdasd_devmap{structlist_headlist;charbus_id[DASD_BUS_ID_SIZE];unsignedintdevindex;