2025-04-27 07:49:33 -04:00

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