Virtual Programmable Interrupt Controller

Notes to the numbers in the above figure:

  • 8259 PIC port accesses
     VPIC initialization entry point (VDDInit)
     VPIC VDM creation entry point (vpicCreateVDM)

  • Call when interrupts enabled service (VDHArmSTIHook)
     Return to VDM interrupt code service (VDHPushInt)

  • Set the global and the VDM context hook service (VDHArmContextHook)
     Start the timer service (VDHArmTimerHook)
     Set the VDM priority service (VDHSetPriority)

  • Set the IRET and EOI handlers service (VDHOpenVIRQ)
     Set the virtual IRR request service (VDHSetVIRR)
     Clear the virtual IRR request service (VDHClearVIRR)
     Get virtual IRQ status service (VDHQueryVIRQ)
     Send virtual EOI service (VDHSendEOI)
     Wait for simulated interrupt service (VDHWaitVIRRs)
     Wake up the VDM waiting for a simulated interrupt (VDHWakeVIRRs)

  • Physical PIC hardware interrupt requests and EOI
     VPIC requests an IRQ level will be dispatched to VPIC if no physical device driver services the interrupt (INTSetVDMIRQ)
     VPIC notifies the interrupt manager of the end of the interrupt processing (INTEOIVDMIRQ)

  • Hardware Interrupt dispatching
     The interrupt manager transfers control to the VPIC for hardware interrupts that the VPIC has set, and no physical device driver has serviced (VPICIntHdlr)


    [Back: Virtual Printer Device Driver Operation]
    [Next: General Overview of Different Types of Memory for DOS Applications]