summaryrefslogtreecommitdiffstats
path: root/drivers/s390/s390mach.h
diff options
context:
space:
mode:
authorCornelia Huck <cornelia.huck@de.ibm.com>2008-07-14 09:58:46 +0200
committerHeiko Carstens <heiko.carstens@de.ibm.com>2008-07-14 10:02:06 +0200
commitc11561897ab57a3c11e0a284ba17795d580589ab (patch)
tree53224c4e8062a85b1794a3cabe81a86317538dfa /drivers/s390/s390mach.h
parentc820de39bd083222f5be2563181c87493e436f7c (diff)
downloadlinux-c11561897ab57a3c11e0a284ba17795d580589ab.tar.bz2
[S390] cio: Cleanup crw interface.
Eliminate the need for the machine check handler to call into the common I/O layer directly by introducing an interface to register handlers for crws per rsc. Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Diffstat (limited to 'drivers/s390/s390mach.h')
-rw-r--r--drivers/s390/s390mach.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/s390/s390mach.h b/drivers/s390/s390mach.h
index ca681f9b67fc..f11e574076d8 100644
--- a/drivers/s390/s390mach.h
+++ b/drivers/s390/s390mach.h
@@ -72,6 +72,13 @@ struct crw {
__u32 rsid : 16; /* reporting-source ID */
} __attribute__ ((packed));
+typedef void (*crw_handler_t)(struct crw *, struct crw *, int);
+
+extern int s390_register_crw_handler(int rsc, crw_handler_t handler);
+extern void s390_unregister_crw_handler(int rsc);
+
+#define NR_RSCS 16
+
#define CRW_RSC_MONITOR 0x2 /* monitoring facility */
#define CRW_RSC_SCH 0x3 /* subchannel */
#define CRW_RSC_CPATH 0x4 /* channel path */