VirtualBox

Changeset 277 in vbox


Ignore:
Timestamp:
Jan 24, 2007 2:43:42 PM (18 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
17819
Message:

Changed detection of pending guest interrupts & event in generated iret code.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/PATM/PATMA.asm

    r181 r277  
    10991099    ; @@todo fix this properly, so we can dispatch pending interrupts in GC
    11001100    test    dword [ss:PATM_VM_FORCEDACTIONS], VM_FF_INTERRUPT_APIC | VM_FF_INTERRUPT_PIC | VM_FF_TIMER | VM_FF_REQUEST
    1101     jnz     iret_fault
    1102 
     1101    jz      iret_continue
     1102
     1103    ; Go to our hypervisor trap handler to dispatch the pending irq
     1104    mov     dword [ss:PATM_TEMP_EAX], eax
     1105    mov     dword [ss:PATM_TEMP_ECX], ecx
     1106    mov     dword [ss:PATM_TEMP_EDI], edi
     1107    mov     dword [ss:PATM_TEMP_RESTORE_FLAGS], PATM_RESTORE_EAX | PATM_RESTORE_ECX | PATM_RESTORE_EDI
     1108    mov     eax, PATM_ACTION_PENDING_IRQ_AFTER_IRET
     1109    lock    or dword [ss:PATM_PENDINGACTION], eax
     1110    mov     ecx, PATM_ACTION_MAGIC
     1111    mov     edi, PATM_CURINSTRADDR
     1112
     1113    popfd
     1114
     1115    db      0fh, 0bh        ; illegal instr (hardcoded assumption in PATMHandleIllegalInstrTrap)
     1116    ; does not return
     1117
     1118iret_continue:
    11031119    or      dword [esp+8], 1
    11041120iret_notring0:
     
    11461162    DD      PATMIretEnd- PATMIretStart
    11471163%ifdef PATM_LOG_IF_CHANGES
    1148     DD      11
     1164    DD      17
    11491165%else
    1150     DD      10
     1166    DD      16
    11511167%endif
    11521168    DD      PATM_INTERRUPTFLAG
     
    11571173%endif
    11581174    DD      PATM_VM_FORCEDACTIONS
     1175    DD      0
     1176    DD      PATM_TEMP_EAX
     1177    DD      0
     1178    DD      PATM_TEMP_ECX
     1179    DD      0
     1180    DD      PATM_TEMP_EDI
     1181    DD      0
     1182    DD      PATM_TEMP_RESTORE_FLAGS
     1183    DD      0
     1184    DD      PATM_PENDINGACTION
     1185    DD      0
     1186    DD      PATM_CURINSTRADDR
    11591187    DD      0
    11601188    DD      PATM_VMFLAGS
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette