diff options
Diffstat (limited to 'include/asm-s390/s390dyn.h')
-rw-r--r-- | include/asm-s390/s390dyn.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/include/asm-s390/s390dyn.h b/include/asm-s390/s390dyn.h new file mode 100644 index 000000000..960a81b43 --- /dev/null +++ b/include/asm-s390/s390dyn.h @@ -0,0 +1,60 @@ +/* + * arch/s390/kernel/s390dyn.h + * S/390 data definitions for dynamic device attachment + * + * S390 version + * Copyright (C) 2000 IBM Deutschland Entwicklung GmbH, IBM Corporation + * Author(s): Ingo Adlung (adlung@de.ibm.com) + */ + +#ifndef __s390dyn_h +#define __s390dyn_h + +struct _devreg; + +typedef int (* oper_handler_func_t)( int irq, + struct _devreg *dreg); +typedef void (* io_handler_func_t) ( int irq, + __u32 intparm ); +typedef void ( * not_oper_handler_func_t)( int irq, + int status ); + +typedef struct _devreg { + union { + struct _hc { + __u16 ctype; + __u8 cmode; + __u16 dtype; + __u8 dmode; + } hc; /* has controller info */ + + struct _hnc { + __u16 dtype; + __u8 dmode; + __u16 res1; + __u8 res2; + } hnc; /* has no controller info */ + } ci; + + int flag; + oper_handler_func_t oper_func; + struct _devreg *prev; + struct _devreg *next; +} devreg_t; + +#define DEVREG_EXACT_MATCH 0x00000001 +#define DEVREG_MATCH_DEV_TYPE 0x00000002 +#define DEVREG_MATCH_CU_TYPE 0x00000004 +#define DEVREG_NO_CU_INFO 0x00000008 + + +int s390_device_register ( devreg_t *drinfo ); +int s390_device_deregister ( devreg_t *dreg ); +int s390_request_irq_special( int irq, + io_handler_func_t io_handler, + not_oper_handler_func_t not_oper_handler, + unsigned long irqflags, + const char *devname, + void *dev_id); + +#endif /* __s390dyn */ |