Defining an Interrupt Identifier (Windows CE 5.0)
An interrupt identifier is a unique value used by the kernel to identify a target device that raises an interrupt that requires processing.
The kernel then uses the interrupt identifier to indicate whether all handling is complete, or whether to launch an interrupt service thread (IST) that handles further processing by the device driver.
Platform Builder provides a set of predefined interrupt identifiers, or you can create your own.
Windows CE defines a set of interrupt identifiers in the Nkintr.h file. The following table shows the special-purpose interrupts used by the OS.
Interrupt identifier | Description |
---|---|
SYSINTR_NOP | Indicates that the kernel should complete processing of the exception handler without setting an event. |
SYSINTR_RESCHED | Indicates that the kernel should execute a reschedule. |
SYSINTR_BREAK | Breaks into the debugger after an external hardware breakpoint is detected. |
SYSINTR_CHAIN | Specifies that the ISR handler should continue to the next ISR in the chain.
Used for interrupt chains for installable ISRs. |
SYSINTR_DEVICES | Specifies the base value for device class identifiers not defined by your OAL. |
SYSINTR_PROFILE | Used by the system for profiling. It is defined relative to the value SYSINTR_DEVICES. |
SYSINTR_RTC_ALARM | Indicates a real-time clock alarm. It is defined relative to the value SYSINTR_DEVICES. |
SYSINTR_NETWORK_SHARED | Used by the hardware platform ISR when network interrupts are combined as one interrupt. |
SYSINTR_VMINI | Used by VBridge to communicate to VMini. It is defined as SYSINTR_DEVICES + 7. Verify that your hardware platform does not use this slot. |
SYSINTR_FIRMWARE | Specifies the base value for custom, OAL-defined interrupt identifiers. It is defined relative to SYSINTR_DEVICES. All OEM identifiers should be equal to, or greater than, this identifier. |
SYSINTR_MAX_DEVICES | Specifies the maximum number of allowable device interrupt identifiers. The default is 64.
|
SYSINTR_MAXIMUM | Specifies the maximum value for interrupt identifiers, which is defined as SYSINTR_DEVICES + SYSINTR_MAX_DEVICES. All interrupt identifiers must be less than, or equal to, this value. |
**Note **The kernel reserves all values below SYSINTR_FIRMWARE for future use. If you redefine the predefined interrupt identifiers, you risk breaking the model device driver (MDD) code in the hardware platform-independent layer for native device drivers.
See Also
How to Develop an OEM Adaptation Layer | Implementing an ISR
Send Feedback on this topic to the authors