|
|
1.1 ! root 1: #ifndef _IRQMAN_DOT_H ! 2: #define _IRQMAN_DOT_H ! 3: ! 4: /* ! 5: * _IRQ88.H 5.20A June 8, 1995 ! 6: * ! 7: * The Greenleaf Comm Library ! 8: * ! 9: * Copyright (C) 1984-1995 Greenleaf Software Inc. All Rights Reserved. ! 10: * ! 11: * NOTES ! 12: * ! 13: * This file contains all the structures and constants used by ! 14: * the IRQ Manager internal functions. End users should never ! 15: * have to include this file in any of their source modules. ! 16: * ! 17: * MODIFICATIONS ! 18: * ! 19: * December 12, 1992 4.00A : Initial release ! 20: * December 1, 1994 5.10A : All of the DOS Extender stuff has been ! 21: * yanked from here. The extended versions ! 22: * of the IRQ manager haver their own header ! 23: * files now. ! 24: */ ! 25: ! 26: #define MAXIMUM_HANDLERS 10 ! 27: ! 28: /* ! 29: * Note that real far pointers are saved as unsigned longs. This ! 30: * prevents protected mode code from accidentally choking if and ! 31: * when it treats a real mode address as a pointer. ! 32: * ! 33: * All of the 16 bit DOS Extender remnants here could get trashed. ! 34: * The only problem right now is that we need to match the structure ! 35: * up exactly with the structure used in PowerComm. So, to avoid ! 36: * problems, all this stuff is being left alone right now. ! 37: */ ! 38: ! 39: typedef struct _tag_irqdata { ! 40: void ( GF_FAR *old_handler )( void ); ! 41: unsigned long old_real_handler; ! 42: void ( GF_CDECL GF_FAR *handler )( void GF_FAR *data ); ! 43: unsigned long real_handler; ! 44: ! 45: #ifndef VGFD ! 46: void GF_FAR *data; ! 47: #else /* ifndef VGFD */ ! 48: void GF_FAR *data_PM; ! 49: void GF_FAR *data_V86; ! 50: #endif ! 51: ! 52: unsigned long real_data; ! 53: void ( GF_CONV *tear_down_function )( void GF_FAR *data ); ! 54: #ifndef _LCODE ! 55: int dummy_place_holder; /* I keep this struc constant size for ISR ease */ ! 56: #endif ! 57: int interrupt_number; ! 58: int saved_8259_bit; ! 59: int primary_8259; ! 60: int secondary_8259; ! 61: int mask_8259; ! 62: int int_count; ! 63: int real_int_count; ! 64: #ifdef VGFD ! 65: unsigned task_handle_irq; /* VGFD task handle */ ! 66: int vm_id_irq; /* VGFD VM id */ ! 67: #endif ! 68: } IRQDATA; ! 69: ! 70: #ifdef __cplusplus ! 71: extern "C" { ! 72: #endif ! 73: ! 74: int GF_CONV HookInterrupt( int interrupt_number, ! 75: #ifndef VGFD ! 76: void ( GF_CDECL GF_FAR *handler )( void GF_FAR *data ), ! 77: #else ! 78: long handler, ! 79: #endif ! 80: void ( GF_CDECL GF_FAR *real_handler )( void GF_FAR *data ), ! 81: void GF_FAR *data, ! 82: void ( GF_CONV *tear_down_function ) ( void GF_FAR *data ), ! 83: int primary_8259, ! 84: int secondary_8259, ! 85: int mask_8259 ); ! 86: ! 87: int GF_CONV UnHookInterrupt( int interrupt_number ); ! 88: IRQDATA GF_FAR * GF_CONV _GetInterruptData( int interrupt_number ); ! 89: ! 90: #if !defined( VGFD ) ! 91: extern IRQDATA GF_FAR _irqtable[ MAXIMUM_HANDLERS ]; ! 92: #else ! 93: extern IRQDATA GF_FAR *_irqtable; ! 94: #endif ! 95: ! 96: ! 97: extern void GF_FAR *_dispatcher_stubs[ MAXIMUM_HANDLERS ] ; ! 98: ! 99: #ifdef __cplusplus ! 100: } ! 101: #endif ! 102: ! 103: #endif /* #ifndef _IRQMAN_DOT_H */ ! 104:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.