51 lines
1.3 KiB
C
51 lines
1.3 KiB
C
/*
|
|
* nt_eoi.h
|
|
*
|
|
* Visible Ica host functionality and typedefs
|
|
*
|
|
* The types used in this file must be compatible with softpc base
|
|
* as the Ica includes this file directly
|
|
*
|
|
* 30-Oct-1993 Jonle , wrote it
|
|
*
|
|
*/
|
|
|
|
typedef VOID (*EOIHOOKPROC)(int IrqLine, int CallCount);
|
|
|
|
// from nt_eoi.c
|
|
BOOL RegisterEOIHook(int IrqLine, EOIHOOKPROC EoiHookProc);
|
|
BOOL RemoveEOIHook(int IrqLine, EOIHOOKPROC EoiHookProc);
|
|
void host_EOI_hook(int IrqLine, int CallCount);
|
|
BOOL host_DelayHwInterrupt(int IrqLine, int CallCount, ULONG Delay);
|
|
void host_ica_lock(void);
|
|
void host_ica_unlock(void);
|
|
void InitializeIcaLock(void);
|
|
void WaitIcaLockFullyInitialized(VOID);
|
|
VOID ica_RestartInterrupts(ULONG IrqLine);
|
|
BOOL ica_restart_interrupts(int adapter);
|
|
|
|
extern ULONG DelayIrqLine;
|
|
extern ULONG UndelayIrqLine;
|
|
|
|
|
|
extern VDMVIRTUALICA VirtualIca[];
|
|
|
|
#ifdef MONITOR
|
|
extern ULONG iretHookActive;
|
|
extern ULONG iretHookMask;
|
|
extern ULONG AddrIretBopTable; // seg:offset
|
|
extern IU32 host_iret_bop_table_addr(IU32 line);
|
|
#endif
|
|
|
|
//from base ica.c
|
|
LONG ica_intack(ULONG *hook_addr);
|
|
VOID host_clear_hw_int(VOID);
|
|
void ica_eoi(ULONG adapter, LONG *line, int rotate);
|
|
void ica_reset_interrupt_state(void);
|
|
void ica_hw_interrupt(ULONG adapter, ULONG line_no, LONG call_count);
|
|
|
|
extern VOID WOWIdle(BOOL bForce);
|
|
|
|
#define ICA_SLAVE 1
|
|
#define ICA_MASTER 0
|