+public:
+ virtual IOReturn registerInterrupt(IOService *nub, int source,
+ void *target,
+ IOInterruptHandler handler,
+ void *refCon);
+ virtual IOReturn unregisterInterrupt(IOService *nub, int source);
+
+ virtual IOReturn getInterruptType(IOService *nub, int source,
+ int *interruptType);
+
+ virtual IOReturn enableInterrupt(IOService *nub, int source);
+ virtual IOReturn disableInterrupt(IOService *nub, int source);
+ virtual IOReturn causeInterrupt(IOService *nub, int source);
+
+ virtual IOInterruptAction getInterruptHandlerAddress(void);
+ virtual IOReturn handleInterrupt(void *refCon, IOService *nub,
+ int source);
+
+// Methods to be overridden for simplifed interrupt controller subclasses.
+
+ virtual bool vectorCanBeShared(IOInterruptVectorNumber vectorNumber, IOInterruptVector *vector);
+ virtual void initVector(IOInterruptVectorNumber vectorNumber, IOInterruptVector *vector);
+ virtual int getVectorType(IOInterruptVectorNumber vectorNumber, IOInterruptVector *vector);
+ virtual void disableVectorHard(IOInterruptVectorNumber vectorNumber, IOInterruptVector *vector);
+ virtual void enableVector(IOInterruptVectorNumber vectorNumber, IOInterruptVector *vector);
+ virtual void causeVector(IOInterruptVectorNumber vectorNumber, IOInterruptVector *vector);
+
+ OSMetaClassDeclareReservedUnused(IOInterruptController, 0);
+ OSMetaClassDeclareReservedUnused(IOInterruptController, 1);
+ OSMetaClassDeclareReservedUnused(IOInterruptController, 2);
+ OSMetaClassDeclareReservedUnused(IOInterruptController, 3);
+ OSMetaClassDeclareReservedUnused(IOInterruptController, 4);
+ OSMetaClassDeclareReservedUnused(IOInterruptController, 5);