1 /* 2 * arch/s390/kernel/s390dyn.h 3 * S/390 data definitions for dynamic device attachment 4 * 5 * S390 version 6 * Copyright (C) 2000 IBM Deutschland Entwicklung GmbH, IBM Corporation 7 * Author(s): Ingo Adlung (adlung@de.ibm.com) 8 */ 9 10 #ifndef __s390dyn_h 11 #define __s390dyn_h 12 13 #ifndef _LINUX_LIST_H 14 #include <linux/list.h> 15 #endif 16 17 struct _devreg; 18 19 typedef int (* oper_handler_func_t)( int irq, 20 struct _devreg *dreg); 21 22 typedef struct _devreg_hc_t { 23 __u16 ctype; 24 __u8 cmode; 25 __u16 dtype; 26 __u8 dmode; 27 } __attribute__ ((packed)) devreg_hc_t; 28 29 typedef struct _devreg { 30 struct list_head list; 31 union { 32 int devno; 33 devreg_hc_t hc; /* has controller info */ 34 } ci; 35 36 int flag; 37 oper_handler_func_t oper_func; 38 } devreg_t; 39 40 #define DEVREG_MATCH_CU_TYPE 0x00000001 41 #define DEVREG_MATCH_CU_MODEL 0x00000002 42 #define DEVREG_MATCH_DEV_TYPE 0x00000004 43 #define DEVREG_MATCH_DEV_MODEL 0x00000008 44 45 #define DEVREG_EXACT_MATCH (DEVREG_MATCH_CU_TYPE|DEVREG_MATCH_CU_MODEL|DEVREG_MATCH_DEV_TYPE|DEVREG_MATCH_DEV_MODEL) 46 #define DEVREG_NO_CU_INFO (DEVREG_MATCH_DEV_TYPE|DEVREG_MATCH_DEV_MODEL) 47 #define DEVREG_NO_DEV_INFO (DEVREG_MATCH_CU_TYPE|DEVREG_MATCH_CU_MODEL) 48 49 #define DEVREG_TYPE_DEVNO 0x80000000 50 #define DEVREG_TYPE_DEVCHARS 0x40000000 51 52 int s390_device_register ( devreg_t *drinfo ); 53 int s390_device_unregister( devreg_t *dreg ); 54 devreg_t * s390_search_devreg ( ioinfo_t *ioinfo ); 55 56 #endif /* __s390dyn */ 57