TRPMInternal.mac revision 3e6c6998d1dfeded8b9a23f5aa94ad63e9a681d9
; $Id$
;; @file
; TRPM - Internal header file.
;
;
; Copyright (C) 2006-2007 innotek GmbH
;
; This file is part of VirtualBox Open Source Edition (OSE), as
; available from http://www.virtualbox.org. This file is free software;
; you can redistribute it and/or modify it under the terms of the GNU
; General Public License as published by the Free Software Foundation,
; in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
; distribution. VirtualBox OSE is distributed in the hope that it will
; be useful, but WITHOUT ANY WARRANTY of any kind.
%include "VBox/stam.mac"
%define TRPM_TRAP_IN_OP_MASK 0xffff
%define TRPM_TRAP_IN_MOV_GS 1
%define TRPM_TRAP_IN_MOV_FS 2
%define TRPM_TRAP_IN_MOV_ES 3
%define TRPM_TRAP_IN_MOV_DS 4
%define TRPM_TRAP_IN_IRET 5
%define TRPM_TRAP_IN_V86 RT_BIT(30)
%define TRPM_TRAP_IN_HYPER RT_BIT(31)
struc TRPM
.offVM resd 1
.uActiveVector resd 1
.enmActiveType resd 1
.uActiveErrorCode resd 1
.uActiveCR2 resd 1
.uSavedVector resd 1
.enmSavedType resd 1
.uSavedErrorCode resd 1
.uSavedCR2 resd 1
.uPrevVector resd 1
.fDisableMonitoring resb 1
.fSafeToDropGuestIDTMonitoring resb 1
.abPadding1 resb 6
.aIdt resd 512
.au32IdtPatched resd 8
.aTmpTrapHandlers resd 256
.GCPtrIdt resd 1
.GuestIdtr resb 6
.au8Padding resb 2
.aGuestTrapHandler resd 256
.StatGCWriteGuestIDTFault resb STAMCOUNTER_size
.StatGCWriteGuestIDTHandled resb STAMCOUNTER_size
.StatSyncIDT resb STAMPROFILE_size
.aStatGCTraps resb STAMPROFILEADV_size * 0x14
.StatForwardFailNoHandler resb STAMCOUNTER_size
.StatForwardFailPatchAddr resb STAMCOUNTER_size
.StatForwardFailGC resb STAMCOUNTER_size
.StatForwardFailHC resb STAMCOUNTER_size
.StatForwardProfGC resb STAMPROFILEADV_size
.StatForwardProfHC resb STAMPROFILEADV_size
.StatTrap0dDisasm resb STAMPROFILE_size
.StatTrap0dRdTsc resb STAMCOUNTER_size
.paStatForwardedIRQR3 RTR3PTR_RES 1
.paStatForwardedIRQR0 RTR0PTR_RES 1
.paStatForwardedIRQGC RTGCPTR_RES 1
endstruc
struc VBOXTSS
.selPrev resw 1
.padding1 resw 1
.esp0 resd 1
.ss0 resw 1
.padding_ss0 resw 1
.esp1 resd 1
.ss1 resw 1
.padding_ss1 resw 1
.esp2 resd 1
.ss2 resw 1
.padding_ss2 resw 1
.cr3 resd 1
.eip resd 1
.eflags resd 1
.eax resd 1
.ecx resd 1
.edx resd 1
.ebx resd 1
.esp resd 1
.ebp resd 1
.esi resd 1
.edi resd 1
.es resw 1
.padding_es resw 1
.cs resw 1
.padding_cs resw 1
.ss resw 1
.padding_ss resw 1
.ds resw 1
.padding_ds resw 1
.fs resw 1
.padding_fs resw 1
.gs resw 1
.padding_gs resw 1
.selLdt resw 1
.padding_ldt resw 1
.fDebugTrap resw 1
.offIoBitmap resw 1
.IntRedirBitmap resb 32
endstruc