5 BOOLEAN
CheckIRQ(PDEVICE_EXTENSION Parameters
)
7 static CONST ULONG ValidIRQs
[] = VALID_IRQS
;
10 return TRUE
; // for now...
15 for (i
= 0; ValidIRQs
[i
] != 0xffff; i
++)
19 // OUTPORT(pHw, BOARD_CONFIG, bConfig);
20 // if (INPORT(pHEW, BOARD_ID) & 0x40)
21 // pHW->ValidInterrupts |= (1 << ThisIRQ);
23 // return (BOOLEAN)((pHw->ValidInterrupts & (1 << Interrupt)) &&
24 // (! ((INPORT(pHw, BOARD_ID) & 0x80) &&
25 // (Interrupt == 10 || Interrupt == 11)));
34 switch (Parameters
->IRQ
)
36 case 10 : Expected
= 0x10;
37 case 11 : Expected
= 0x20;
38 case 7 : Expected
= 0x30;
39 default : return FALSE
;
42 // CompaqPIDR = READ_PORT_UCHAR( ... )
50 IN PKINTERRUPT pInterrupt
,
53 DPRINT("*** Processing ISR ***\n");
55 // What do we do here then?
62 NTSTATUS
EnableIRQ(PDEVICE_OBJECT DeviceObject
)
64 PDEVICE_EXTENSION Parameters
= DeviceObject
->DeviceExtension
;
68 NTSTATUS Status
= STATUS_SUCCESS
;
70 Vector
= HalGetInterruptVector(Isa
, // FIX THIS
77 // Status = IoConnectInterrupt(Parameters->Interrupt, // Object
79 // DeviceObject, // Context
80 // (PKSPIN_LOCK) NULL,
84 // mode - Latched or Level sensitive?
85 // share - if irq can be shared
89 return Status
== STATUS_INVALID_PARAMETER
?
90 STATUS_DEVICE_CONFIGURATION_ERROR
: Status
;