/* * 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"struct kmem_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. */struct dasd_devmap {struct list_head list;char bus_id[DASD_BUS_ID_SIZE];unsigned int devindex;unsigned short features;struct dasd_device *device;};/* * Parameter parsing functions for dasd= parameter. The syntax is: * <devno> : (0x)?[0-9a-fA-F]+ * <busid> : [0-0a-f]\.[0-9a-f]\.(0x)?[0-9a-fA-F]+ * <feature> : ro * <feature_list> : \(<feature>(:<feature>)*\) * <devno-range> : <devno>(-<devno>)?<feature_list>? * <busid-range> : <busid>(-<busid>)?<feature_list>? * <devices> : <devno-range>|<busid-range> * <dasd_module> : dasd_diag_mod|dasd_eckd_mod|dasd_fba_mod * * <dasd> : autodetect|probeonly|<devices>(,<devices>)* */int dasd_probeonly =0;/* is true, when probeonly mode is active */int dasd_autodetect =0;/* is true, when autodetection is active */int dasd_nopav =0;/* is true, when PAV is disabled */EXPORT_SYMBOL_GPL(dasd_nopav);int dasd_nofcx;/* disable High Performance Ficon */EXPORT_SYMBOL_GPL(dasd_nofcx);/* * char *dasd[] is intended to hold the ranges supplied by the dasd= statement * it is named 'dasd' to directly be filled by insmod with the comma separated * strings when running as a module.