Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | #ifndef _S390_EXTINT_H |
| 2 | #define _S390_EXTINT_H |
| 3 | |
| 4 | /* |
| 5 | * include/asm-s390/s390_ext.h |
| 6 | * |
| 7 | * S390 version |
| 8 | * Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation |
| 9 | * Author(s): Holger Smolinski (Holger.Smolinski@de.ibm.com), |
| 10 | * Martin Schwidefsky (schwidefsky@de.ibm.com) |
| 11 | */ |
| 12 | |
| 13 | typedef void (*ext_int_handler_t)(struct pt_regs *regs, __u16 code); |
| 14 | |
| 15 | /* |
| 16 | * Warning: if you change ext_int_info_t you have to change the |
| 17 | * external interrupt handler in entry.S too. |
| 18 | */ |
| 19 | typedef struct ext_int_info_t { |
| 20 | struct ext_int_info_t *next; |
| 21 | ext_int_handler_t handler; |
| 22 | __u16 code; |
| 23 | } __attribute__ ((packed)) ext_int_info_t; |
| 24 | |
| 25 | extern ext_int_info_t *ext_int_hash[]; |
| 26 | |
| 27 | int register_external_interrupt(__u16 code, ext_int_handler_t handler); |
| 28 | int register_early_external_interrupt(__u16 code, ext_int_handler_t handler, |
| 29 | ext_int_info_t *info); |
| 30 | int unregister_external_interrupt(__u16 code, ext_int_handler_t handler); |
| 31 | int unregister_early_external_interrupt(__u16 code, ext_int_handler_t handler, |
| 32 | ext_int_info_t *info); |
| 33 | |
| 34 | #endif |