summaryrefslogtreecommitdiffstats
path: root/include/asm-s390/s390dyn.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-s390/s390dyn.h')
-rw-r--r--include/asm-s390/s390dyn.h60
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 */