/*************************************************************************** (C) Copyright DELTA TAU DATA SYSTEMS Inc., 1992 Title: intr.h Version: 1.00 Date: 12/11/1992 Author(s): Dennis Smith Header file for PMAC NT interrupt worker thread. Note(s): ---------------------------------------------------------------------------- Change log: Date Rev Who Description --------- ----- ----- -------------------------------------------- ***************************************************************************/ #ifndef _INTR_H #define _INTR_H #include "private.h" #include /****************************************************************************** * data streaming. * * Call PmacInitInterrupts to prepare for interrupts. * The callback function specified in PmacInitInterrupts will be called * with the interrupt that has completed. * * Finally call PmacTermInterrupts to tidy up. ******************************************************************************/ /* * these are the parameters we need to issue a DriverCallback. A * pointer to one of these structs is passed on InterruptInit * If the pointer is null, we don't need callbacks. */ typedef struct _MCCALLBACK { DWORD dwCallback; DWORD dwFlags; DWORD dwDevice; DWORD dwUser; DWORD dwMask; } MCCALLBACK, *PMCCALLBACK; // Callback function pointer typedef void (FAR WINAPI * PMACINTRPROC) ( DWORD msg, PINTRBUFFER pBuffer ); // Functions -------------------------------------------------------------- #ifdef __cplusplus extern "C" { #endif // Functions exported BOOL CALLBACK PmacINTRWndMsgInit( DWORD dwDevice, HWND hWnd, UINT msg, ULONG ulMask ); BOOL CALLBACK PmacINTRFuncCallInit( DWORD dwDevice, PMACINTRPROC pFunc, DWORD msg, ULONG ulMask ); BOOL CALLBACK PmacINTRFireEventInit( DWORD dwDevice, HANDLE hEvent, ULONG ulMask ); BOOL CALLBACK PmacINTRRunThreadInit( DWORD dwDevice, LPTHREAD_START_ROUTINE pFunc, UINT msg, ULONG ulMask ); BOOL CALLBACK PmacINTRTerminate( DWORD dwDevice ); // Functions not exported BOOL CALLBACK PmacINTRInit( DWORD dwDevice, DWORD dwCallback, DWORD dwFlags, DWORD dwUser, ULONG mask ); VOID CALLBACK PmacINTRCallback( DWORD dwDevice ); // VOID CALLBACK PmacINTRQueue( DWORD dwDevice, DWORD dwEvent ); VOID CALLBACK PmacINTRComplete( DWORD dwDevice, DWORD dwEvent ); BOOL CALLBACK PmacINTRProcessFunction( DWORD dwDevice, MCFUNC Func, DWORD Param, LPDWORD pResult ); UINT CALLBACK PmacINTRThreadInit( DWORD * dwDev ); VOID PmacAddINTRCallback( DWORD dwDevice, DWORD dwCallback, DWORD dwFlags, DWORD dwUser, ULONG ulMask ); BOOL CALLBACK PmacINTRSetupMask(DWORD dwDevice, ULONG ulMask); BOOL CALLBACK PmacINTRSetupInterruptEvent(DWORD dwDevice,CHAR *szName); #ifdef __cplusplus } #endif #endif // _INTR_H