19#if defined(SHOW_INCLUDE_FILE)
20#pragma message ("#include "__FILE__)
24#if defined(_IM_COMP_MICROSOFT)
26#if defined(_IM_HOST_OS_NT_KERNEL)
27#define DISABLE_INTERRUPT() ;
28#define ENABLE_INTERRUPT() ;
29#elif defined(_IM_HOST_OS_NT)
31#define OUTP(adr, data) _outp(adr, data)
32#define INP(adr) _inp(adr)
33#define DISABLE_INTERRUPT() ;
34#define ENABLE_INTERRUPT() ;
35#define IRQ_STACKSIZE 512
37#error ERROR: __IM_IRQIO_H__ for _IM_COMP_MICROSOFT
42#elif defined(_IM_COMP_WATCOM)
45#define OUTP(adr, data) outp(adr, data)
46#define INP(adr) inp(adr)
47#define DISABLE_INTERRUPT() _disable()
48#define ENABLE_INTERRUPT() _enable()
49#define IRQ_STACKSIZE 512
55#elif defined(_IM_COMP_GNUC) && defined(_IM_HOST_OS_LINUX_DRIVER)
57#define OUTP(adr,data) outb(adr, data)
58#define INP(adr) inb(adr)
59#define DISABLE_INTERRUPT() cli()
60#define ENABLE_INTERRUPT() sti()
61#define IRQ_STACKSIZE 512
66#define INTERRUPT_SUB_QUEUE_SIZE 256
68#if defined(_IM_HOST_OS_NT_KERNEL)
69#define INTERRUPT_CIRCULAR_QUEUE_SIZE 256
71#define INTERRUPT_CIRCULAR_QUEUE_SIZE 512
74#if defined(_IM_COMP_GNUC)
80#if defined(_IM_HOST_OS_NT_KERNEL)
81typedef struct _ODYSSEY_ISR_QUEUE
91#if !defined(_IM_HOST_OS_NT_KERNEL)
103#if defined(_IM_HOST_OS_LINUX) && !defined(_IM_HOST_OS_LINUX_DRIVER)
121#if defined(_IM_HOST_OS_NT)
123#elif defined(_IM_HOST_OS_NTO) || defined(_IM_HOST_OS_LINUX)
125 sem_t * hEventTerminateThread;
126 sem_t * hEventStartedThread;
127 sem_t * hEventInterruptThreadCompleted;
128 pthread_t hInterruptThread;
134#if defined(_IM_HOST_OS_NT)
135 HANDLE hEventTerminateThread;
136 HANDLE hEventStartedThread;
138 unsigned InterruptThreadId;
139 HANDLE hInterruptThread;
140 HANDLE hEventInterruptThreadCompleted;
151#if defined(_IM_HOST_OS_LINUX)
165#if !defined(_IM_DRIVER_CODE)
167#if defined(_IM_HOST_OS_NT)
168IM_EXTC HANDLE IM_FTYPE OdysseyGetHandleEvent(
PODYSSEY_HOOK_LIST pOdysseyHookFunction) IM_LFTYPE;
169#elif defined(_IM_HOST_OS_NTO) || defined(_IM_HOST_OS_LINUX)
170IM_EXTC sem_t* IM_FTYPE OdysseyGetHandleEvent(
PODYSSEY_HOOK_LIST pOdysseyHookFunction) IM_LFTYPE;
175#if !defined(_IM_HOST_OS_NT_KERNEL)
181#if defined(_IM_HOST_OS_NT)
188#if defined(_IM_HOST_OS_LINUX)
195 unsigned long InterruptType;
200#if defined(_IM_COMP_GNUC)
MFTYPE32 long void MPTYPE * UserDataPtr
Definition: Milproto.h:645
IM_EXTC ODYSSEYHOOKFCTPTR IM_FTYPE OdysseyGetFuncPtr(PODYSSEY_HOOK_LIST pOdysseyHookFunction) IM_LFTYPE
IM_EXTC long IM_FTYPE OdysseyHookInterruptFunction(long NodeId, ODYSSEYHOOKFCTPTR InterruptFunctionPtr, unsigned long InterruptType, sem_t *hSema, void *UserDataPtr) IM_LFTYPE
struct _ODYSSEY_HOOK_LIST * PODYSSEY_HOOK_LIST
Definition: im_irqio.h:95
IM_EXTC PODYSSEY_HOOK_LIST IM_FTYPE OdysseyGetHookList(long NodeId, long InterruptType) IM_LFTYPE
#define INTERRUPT_CIRCULAR_QUEUE_SIZE
Definition: im_irqio.h:71
struct _ODYSSEY_ISR_INFO * PODYSSEY_ISR_INFO
Definition: im_irqio.h:98
long(IM_FTYPE * ODYSSEYHOOKFCTPTR)(PODYSSEY_HOOK_LIST pHookList) IM_LFTYPE
Definition: im_irqio.h:101
IM_EXTC void *IM_FTYPE OdysseyGetUsrDataPtr(PODYSSEY_HOOK_LIST pOdysseyHookFunction) IM_LFTYPE
IM_EXTC long IM_FTYPE OdysseyGetInterruptType(PODYSSEY_HOOK_LIST pOdysseyHookFunction) IM_LFTYPE
HANDLE PID_HANDLE
Definition: im_nt.h:100
MFTYPE32 long(MFTYPE MPTYPE *MOCRHOOKFCTPTR)(long HookType
Definition: milocr.h:32
int event
Definition: shower_tr.C:25
Definition: im_irqio.h:114
PODYSSEY_ISR_INFO pOdysseyIsrInfo
Definition: im_irqio.h:115
PODYSSEY_HOOK_LIST previous
Definition: im_irqio.h:133
ODYSSEYHOOKFCTPTR InterruptFunctionPtr
Definition: im_irqio.h:119
unsigned long InterruptType
Definition: im_irqio.h:117
void * UserDataPtr
Definition: im_irqio.h:120
PODYSSEY_HOOK_LIST next
Definition: im_irqio.h:132
Definition: im_irqio.h:147
PODYSSEY_ISR_INFO previous
Definition: im_irqio.h:158
PODYSSEY_HOOK_LIST pOdysseyHookList
Definition: im_irqio.h:149
long NodeId
Definition: im_irqio.h:148
PODYSSEY_ISR_INFO next
Definition: im_irqio.h:157