45 KeInitializeTimer (&cbmTimer);
47 li.QuadPart = - (LONG) Howlong;
50 ntStatus = KeWaitForSingleObject(&cbmTimer, UserRequest,
51 KernelMode, FALSE, &li);
74 KeStallExecutionProcessor(Howlong);
76 li.QuadPart = - (LONG) Howlong;
79 ntStatus = KeDelayExecutionThread(KernelMode, FALSE, &li);
102 DBGDO(
DBG_ASSERT(InterlockedIncrement(&Pdx->IecBlockIrqUsageCount)==1));
104 KeRaiseIrql(HIGH_LEVEL, &irql);
105 Pdx->IecBlockIrqPreviousIrql = irql;
124 KeLowerIrql(Pdx->IecBlockIrqPreviousIrql);
126 DBGDO(
DBG_ASSERT(InterlockedDecrement(&Pdx->IecBlockIrqUsageCount)==0));
VOID CLI(VOID)
Stop interrupts with CLI assembler command.
VOID cbmiec_release_irq(PDEVICE_EXTENSION Pdx)
Release the interrupts.
VOID cbmiec_udelay(IN ULONG Howlong)
Wait for a timeout.
Internal functions and definitions of the libiec library.
VOID cbmiec_schedule_timeout(IN ULONG Howlong)
Schedule a timeout.
VOID STI(VOID)
Restart interrupts with STI assembler command.
Definitions for the opencbm driver.
VOID cbmiec_block_irq(PDEVICE_EXTENSION Pdx)
Block all interrupts.