| #ifndef BIOSINT_H | |
| #define BIOSINT_H | |
| /** | |
| * @file BIOS interrupts | |
| * | |
| */ | |
| FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); | |
| #include <realmode.h> | |
| struct segoff; | |
| /** | |
| * Hooked interrupt count | |
| * | |
| * At exit, after unhooking all possible interrupts, this counter | |
| * should be examined. If it is non-zero, it means that we failed to | |
| * unhook at least one interrupt vector, and so must not free up the | |
| * memory we are using. (Note that this also implies that we should | |
| * re-hook INT 15 in order to hide ourselves from the memory map). | |
| */ | |
| extern uint16_t __text16 ( hooked_bios_interrupts ); | |
| #define hooked_bios_interrupts __use_text16 ( hooked_bios_interrupts ) | |
| extern void hook_bios_interrupt ( unsigned int interrupt, unsigned int handler, | |
| struct segoff *chain_vector ); | |
| extern int unhook_bios_interrupt ( unsigned int interrupt, | |
| unsigned int handler, | |
| struct segoff *chain_vector ); | |
| extern void check_bios_interrupts ( void ); | |
| #endif /* BIOSINT_H */ |