1 #ifndef BIOSINT_H 2 #define BIOSINT_H 3 4 /** 5 * @file BIOS interrupts 6 * 7 */ 8 9 FILE_LICENCE ( GPL2_OR_LATER ); 10 11 #include <realmode.h> 12 13 struct segoff; 14 15 /** 16 * Hooked interrupt count 17 * 18 * At exit, after unhooking all possible interrupts, this counter 19 * should be examined. If it is non-zero, it means that we failed to 20 * unhook at least one interrupt vector, and so must not free up the 21 * memory we are using. (Note that this also implies that we should 22 * re-hook INT 15 in order to hide ourselves from the memory map). 23 */ 24 extern uint16_t __text16 ( hooked_bios_interrupts ); 25 #define hooked_bios_interrupts __use_text16 ( hooked_bios_interrupts ) 26 27 extern void hook_bios_interrupt ( unsigned int interrupt, unsigned int handler, 28 struct segoff *chain_vector ); 29 extern int unhook_bios_interrupt ( unsigned int interrupt, 30 unsigned int handler, 31 struct segoff *chain_vector ); 32 33 #endif /* BIOSINT_H */ 34