TRPMInternal.mac revision 2cf7b059a58c41e945cd3428ec1721835e398f5c
; $Id$
;; @file
; TRPM - Internal header file.
;
;
; Copyright (C) 2006-2012 Oracle Corporation
;
; 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 (GPL) 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/asmdefs.mac"
%include "VBox/vmm/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)
struc TRPM
.offVM resd 1
.offTRPMCPU resd 1
.fDisableMonitoring resb 1
.fSafeToDropGuestIDTMonitoring resb 1
.abPadding1 resb 6
.aIdt resd 512
.au32IdtPatched resd 8
.aTmpTrapHandlers RTRCPTR_RES 256
.pvMonShwIdtRC RTRCPTR_RES 1
.GuestIdtr resb 10
.au8Padding resb 2
.aGuestTrapHandler RTRCPTR_RES 256
.StatRCWriteGuestIDTFault resb STAMCOUNTER_size
.StatRCWriteGuestIDTHandled resb STAMCOUNTER_size
.StatSyncIDT resb STAMPROFILE_size
.aStatGCTraps resb STAMPROFILEADV_size * 0x14
.StatForwardProfR3 resb STAMPROFILEADV_size
.StatForwardProfRZ resb STAMPROFILEADV_size
.StatForwardFailNoHandler resb STAMCOUNTER_size
.StatForwardFailPatchAddr resb STAMCOUNTER_size
.StatForwardFailR3 resb STAMCOUNTER_size
.StatForwardFailRZ resb STAMCOUNTER_size
.StatTrap0dDisasm resb STAMPROFILE_size
.StatTrap0dRdTsc resb STAMCOUNTER_size
%ifdef VBOX_WITH_STATISTICS
.paStatForwardedIRQR3 RTR3PTR_RES 1
.paStatForwardedIRQR0 RTR0PTR_RES 1
.paStatForwardedIRQRC RTRCPTR_RES 1
.paStatHostIrqRC RTRCPTR_RES 1
.paStatHostIrqR3 RTR3PTR_RES 1
.paStatHostIrqR0 RTR0PTR_RES 1
%endif
endstruc
struc TRPMCPU
.offVM resd 1
.offVMCpu resd 1
.uActiveVector resd 1
.enmActiveType resd 1
.uActiveErrorCode RTGCPTR_RES 1
.uActiveCR2 RTGCPTR_RES 1
.uSavedVector RTGCPTR_RES 1
.enmSavedType resd 1
.uSavedErrorCode RTGCPTR_RES 1
.uSavedCR2 RTGCPTR_RES 1
.uPrevVector 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