Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / drivers / multimedia / audio / sndblst.old / irq.c
diff --git a/drivers/multimedia/audio/sndblst.old/irq.c b/drivers/multimedia/audio/sndblst.old/irq.c
new file mode 100644 (file)
index 0000000..2dcad5e
--- /dev/null
@@ -0,0 +1,93 @@
+#include <ntddk.h>
+#include "sndblst.h"
+
+#if 0
+BOOLEAN CheckIRQ(PDEVICE_EXTENSION Parameters)
+{
+    static CONST ULONG ValidIRQs[] = VALID_IRQS;
+    int i;
+
+    return TRUE;    // for now...
+
+    // Check for Compaq!
+    // if ...
+
+    for (i = 0; ValidIRQs[i] != 0xffff; i ++)
+    {
+        // Consult the card
+
+//        OUTPORT(pHw, BOARD_CONFIG, bConfig);
+//        if (INPORT(pHEW, BOARD_ID) & 0x40)
+//            pHW->ValidInterrupts |= (1 << ThisIRQ);
+
+//        return (BOOLEAN)((pHw->ValidInterrupts & (1 << Interrupt)) &&
+//                        (! ((INPORT(pHw, BOARD_ID) & 0x80) &&
+//                        (Interrupt == 10 || Interrupt == 11)));
+
+    }
+
+    // else
+    // Compaq stuff?
+    {
+        UCHAR Expected;
+
+        switch (Parameters->IRQ)
+        {
+            case 10 :   Expected = 0x10;
+            case 11 :   Expected = 0x20;
+            case 7 :    Expected = 0x30;
+            default :   return FALSE;
+        }
+
+//        CompaqPIDR = READ_PORT_UCHAR( ... )
+        // ...
+    }
+}
+
+
+
+BOOLEAN ISR(
+    IN PKINTERRUPT pInterrupt,
+    IN PVOID Context)
+{
+    DPRINT("*** Processing ISR ***\n");
+
+    // What do we do here then?
+
+    return FALSE;
+}
+
+
+
+NTSTATUS EnableIRQ(PDEVICE_OBJECT DeviceObject)
+{
+    PDEVICE_EXTENSION Parameters = DeviceObject->DeviceExtension;
+    ULONG Vector;
+    KIRQL IRQ_Level;
+    KAFFINITY Affinity;
+    NTSTATUS Status = STATUS_SUCCESS;
+
+    Vector = HalGetInterruptVector(Isa,     // FIX THIS
+                                   0,       // FIX THIS
+                                   Parameters->IRQ,
+                                   Parameters->IRQ,
+                                   &IRQ_Level,
+                                   &Affinity);
+
+//    Status = IoConnectInterrupt(Parameters->Interrupt,  // Object
+//                                ISR,    // Function
+//                                DeviceObject,   // Context
+//                                (PKSPIN_LOCK) NULL,
+//                                Vector,
+//                                IRQ_Level,
+//                                IRQ_Level,
+                                // mode - Latched or Level sensitive?
+                                // share - if irq can be shared
+//                                Affinity,
+//                                FALSE);
+
+    return Status == STATUS_INVALID_PARAMETER ?
+                     STATUS_DEVICE_CONFIGURATION_ERROR : Status;
+}
+#endif
+