|
|
1.1 ! root 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 */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.