1 #include <ntddk.h>
2 #include "sndblst.h"
3 
4 #if 0
5 BOOLEAN CheckIRQ(PDEVICE_EXTENSION Parameters)
6 {
7     static CONST ULONG ValidIRQs[] = VALID_IRQS;
8     int i;
9 
10     return TRUE;    // for now...
11 
12     // Check for Compaq!
13     // if ...
14 
15     for (i = 0; ValidIRQs[i] != 0xffff; i ++)
16     {
17         // Consult the card
18 
19 //        OUTPORT(pHw, BOARD_CONFIG, bConfig);
20 //        if (INPORT(pHEW, BOARD_ID) & 0x40)
21 //            pHW->ValidInterrupts |= (1 << ThisIRQ);
22 
23 //        return (BOOLEAN)((pHw->ValidInterrupts & (1 << Interrupt)) &&
24 //                        (! ((INPORT(pHw, BOARD_ID) & 0x80) &&
25 //                        (Interrupt == 10 || Interrupt == 11)));
26 
27     }
28 
29     // else
30     // Compaq stuff?
31     {
32         UCHAR Expected;
33 
34         switch (Parameters->IRQ)
35         {
36             case 10 :   Expected = 0x10;
37             case 11 :   Expected = 0x20;
38             case 7 :    Expected = 0x30;
39             default :   return FALSE;
40         }
41 
42 //        CompaqPIDR = READ_PORT_UCHAR( ... )
43         // ...
44     }
45 }
46 
47 
48 
49 BOOLEAN ISR(
50     IN PKINTERRUPT pInterrupt,
51     IN PVOID Context)
52 {
53     DPRINT("*** Processing ISR ***\n");
54 
55     // What do we do here then?
56 
57     return FALSE;
58 }
59 
60 
61 
62 NTSTATUS EnableIRQ(PDEVICE_OBJECT DeviceObject)
63 {
64     PDEVICE_EXTENSION Parameters = DeviceObject->DeviceExtension;
65     ULONG Vector;
66     KIRQL IRQ_Level;
67     KAFFINITY Affinity;
68     NTSTATUS Status = STATUS_SUCCESS;
69 
70     Vector = HalGetInterruptVector(Isa,     // FIX THIS
71                                    0,       // FIX THIS
72                                    Parameters->IRQ,
73                                    Parameters->IRQ,
74                                    &IRQ_Level,
75                                    &Affinity);
76 
77 //    Status = IoConnectInterrupt(Parameters->Interrupt,  // Object
78 //                                ISR,    // Function
79 //                                DeviceObject,   // Context
80 //                                (PKSPIN_LOCK) NULL,
81 //                                Vector,
82 //                                IRQ_Level,
83 //                                IRQ_Level,
84                                 // mode - Latched or Level sensitive?
85                                 // share - if irq can be shared
86 //                                Affinity,
87 //                                FALSE);
88 
89     return Status == STATUS_INVALID_PARAMETER ?
90                      STATUS_DEVICE_CONFIGURATION_ERROR : Status;
91 }
92 #endif
93 
94