Changeset 1143 in vbox
- Timestamp:
- Mar 2, 2007 8:28:55 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PATM/PATMA.asm
r1125 r1143 1143 1143 jz iret_clearIF 1144 1144 1145 ; if interrupts are pending, then we must go back to the host context to handle them! 1146 ; @@todo fix this properly, so we can dispatch pending interrupts in GC 1147 test dword [ss:PATM_VM_FORCEDACTIONS], VM_FF_INTERRUPT_APIC | VM_FF_INTERRUPT_PIC | VM_FF_TIMER | VM_FF_REQUEST 1148 jz iret_continue 1149 1150 ; Go to our hypervisor trap handler to dispatch the pending irq 1151 mov dword [ss:PATM_TEMP_EAX], eax 1152 mov dword [ss:PATM_TEMP_ECX], ecx 1153 mov dword [ss:PATM_TEMP_EDI], edi 1154 mov dword [ss:PATM_TEMP_RESTORE_FLAGS], PATM_RESTORE_EAX | PATM_RESTORE_ECX | PATM_RESTORE_EDI 1155 mov eax, PATM_ACTION_PENDING_IRQ_AFTER_IRET 1156 lock or dword [ss:PATM_PENDINGACTION], eax 1157 mov ecx, PATM_ACTION_MAGIC 1158 mov edi, PATM_CURINSTRADDR 1159 1160 popfd 1161 1162 db 0fh, 0bh ; illegal instr (hardcoded assumption in PATMHandleIllegalInstrTrap) 1163 ; does not return 1164 1165 iret_continue: 1145 ; force ring 1 CS RPL 1166 1146 or dword [esp+8], 1 1167 1147 iret_notring0: … … 1278 1258 DD PATMIretEnd- PATMIretStart 1279 1259 %ifdef PATM_LOG_PATCHIRET 1280 DD 261260 DD 19 1281 1261 %else 1282 DD 251262 DD 18 1283 1263 %endif 1284 1264 DD PATM_INTERRUPTFLAG … … 1288 1268 DD 0 1289 1269 %endif 1290 DD PATM_VM_FORCEDACTIONS1291 DD 01292 DD PATM_TEMP_EAX1293 DD 01294 DD PATM_TEMP_ECX1295 DD 01296 DD PATM_TEMP_EDI1297 DD 01298 DD PATM_TEMP_RESTORE_FLAGS1299 DD 01300 DD PATM_PENDINGACTION1301 DD 01302 DD PATM_CURINSTRADDR1303 DD 01304 1270 DD PATM_VMFLAGS 1305 1271 DD 0
Note:
See TracChangeset
for help on using the changeset viewer.