Changeset 375


Ignore:
Timestamp:
Sep 26, 2008, 9:16:38 PM (17 years ago)
Author:
rjerant
Message:

Change interrupt handler to run with interrupts enabled

Location:
GPL/branches/uniaud32-2.0/drv32
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • GPL/branches/uniaud32-2.0/drv32/irq.cpp

    r362 r375  
    9393    ULONG       ulIrqNo;
    9494
    95     if( process_interrupt(ulSlotNo, &ulIrqNo) ) {
    96         cli();
    97         // We've cleared all service requests.  Send EOI and clear
    98         // the carry flag (tells OS/2 kernel that Int was handled).
    99         DevEOI( (WORD16)ulIrqNo );
    100         return TRUE;
     95   // enable interrupts that have higher priority we should
     96   // allow higher priority interrupts
     97   sti();
     98   if( process_interrupt(ulSlotNo, &ulIrqNo) ) {
     99       // We've cleared all service requests. 
     100       // Clear (disable) Interrupts, Send EOI
     101       // and clear the carry flag (tells OS/2 kernel that Int was handled).
     102       // Note carry flag is handled in setup.asm
     103       cli();
     104       DevEOI( (WORD16)ulIrqNo );
     105       return TRUE;
    101106   }
    102107   // Indicate Interrupt not serviced by setting carry flag before
  • GPL/branches/uniaud32-2.0/drv32/startup.asm

    r63 r375  
    13161316
    13171317        pushfd
    1318         cli
     1318        ; At this point a cli is redundant
     1319        ; we enter the interrupt handler with interrupts disabled.
     1320        ;cli
    13191321
    13201322IFDEF FLATSTACK
Note: See TracChangeset for help on using the changeset viewer.