This section defines some data types and values that are fundamental to interrupt management.
 
typedef KernelID        InterruptSetID;
typedef long            InterruptMemberNumber;
 
enum {
kReturnToParentWhenComplete = 0x00000001,
kReturnToParentWhenNotComplete = 0x00000002
};
 
typedef struct InterruptSetMember {
    InterruptSetID                  set;
    InterruptMemberNumber           member;
} InterruptSetMember;
 
enum{
    kISTChipInterruptSource      = 0,
    kISTOutputDMAInterruptSource = 1,
    kISTInputDMAInterruptSource  = 2,
    kISTPropertyMemberCount      = 3
};
 
typedef InterruptSetMember ISTProperty[ kISTPropertyMemberCount ];
 
#define kISTPropertyName "driver-ist"
 
typedef long InterruptReturnValue;
enum
{
    kFirstMemberNumber          =   1,
    kIsrIsComplete              =   0
    kIsrIsNotComplete           = -1,
    kMemberNumberParent         = -2,
};
 
typedef Boolean InterruptSourceState;
enum
{
    kSourceWasEnabled           = true,
    kSourceWasDisabled          = false
};