VirtualBox

source: vbox/trunk/src/VBox/VMM/TRPMInternal.mac@ 400

Last change on this file since 400 was 347, checked in by vboxsync, 18 years ago

Rewrote and simplified interrupt handler patching.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 3.3 KB
Line 
1; $Id: TRPMInternal.mac 347 2007-01-26 09:36:22Z vboxsync $
2;; @file
3; TRPM - Internal header file.
4;
5
6;
7; Copyright (C) 2006 InnoTek Systemberatung GmbH
8;
9; This file is part of VirtualBox Open Source Edition (OSE), as
10; available from http://www.virtualbox.org. This file is free software;
11; you can redistribute it and/or modify it under the terms of the GNU
12; General Public License as published by the Free Software Foundation,
13; in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
14; distribution. VirtualBox OSE is distributed in the hope that it will
15; be useful, but WITHOUT ANY WARRANTY of any kind.
16;
17; If you received this file as part of a commercial VirtualBox
18; distribution, then only the terms of your commercial VirtualBox
19; license agreement apply instead of the previous paragraph.
20;
21
22%include "VBox/stam.mac"
23
24%define TRPM_TRAP_IN_OP_MASK 0xffff
25%define TRPM_TRAP_IN_MOV_GS 1
26%define TRPM_TRAP_IN_MOV_FS 2
27%define TRPM_TRAP_IN_MOV_ES 3
28%define TRPM_TRAP_IN_MOV_DS 4
29%define TRPM_TRAP_IN_IRET 5
30%define TRPM_TRAP_IN_V86 BIT(30)
31%define TRPM_TRAP_IN_HYPER BIT(31)
32
33
34struc TRPM
35 .offVM resd 1
36 .uActiveVector resd 1
37 .fActiveSoftwareInterrupt resd 1
38 .uActiveErrorCode resd 1
39 .uActiveCR2 resd 1
40 .uSavedVector resd 1
41 .fSavedSoftwareInterrupt resd 1
42 .uSavedErrorCode resd 1
43 .uSavedCR2 resd 1
44 .uPrevVector resd 1
45 .fDisableMonitoring resd 1
46 .achPadding1 resb 4
47 .aIdt resd 512
48 .au32IdtPatched resd 8
49 .aTmpTrapHandlers resd 256
50
51 .GCPtrIdt resd 1
52 .GuestIdtr resb 6
53 .au8Padding resb 2
54
55 .aGuestTrapHandler resd 256
56
57 .StatGCWriteGuestIDT resb STAMCOUNTER_size
58 .StatSyncIDT resb STAMPROFILE_size
59 .aStatGCTraps resb STAMPROFILEADV_size * 0x14
60
61 .StatForwardFailNoHandler resb STAMCOUNTER_size
62 .StatForwardFailPatchAddr resb STAMCOUNTER_size
63 .StatForwardFailGC resb STAMCOUNTER_size
64 .StatForwardFailHC resb STAMCOUNTER_size
65
66 .paStatForwardedIRQR3 RTR3PTR_RES 1
67 .paStatForwardedIRQR0 RTR0PTR_RES 1
68 .paStatForwardedIRQGC RTGCPTR_RES 1
69endstruc
70
71struc VBOXTSS
72 .selPrev resw 1
73 .padding1 resw 1
74 .esp0 resd 1
75 .ss0 resw 1
76 .padding_ss0 resw 1
77 .esp1 resd 1
78 .ss1 resw 1
79 .padding_ss1 resw 1
80 .esp2 resd 1
81 .ss2 resw 1
82 .padding_ss2 resw 1
83 .cr3 resd 1
84 .eip resd 1
85 .eflags resd 1
86 .eax resd 1
87 .ecx resd 1
88 .edx resd 1
89 .ebx resd 1
90 .esp resd 1
91 .ebp resd 1
92 .esi resd 1
93 .edi resd 1
94 .es resw 1
95 .padding_es resw 1
96 .cs resw 1
97 .padding_cs resw 1
98 .ss resw 1
99 .padding_ss resw 1
100 .ds resw 1
101 .padding_ds resw 1
102 .fs resw 1
103 .padding_fs resw 1
104 .gs resw 1
105 .padding_gs resw 1
106 .selLdt resw 1
107 .padding_ldt resw 1
108 .fDebugTrap resw 1
109 .offIoBitmap resw 1
110endstruc
111
Note: See TracBrowser for help on using the repository browser.

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