af062818b47340eef15700d2f0211576ba3506eevboxsync; $Id$
af062818b47340eef15700d2f0211576ba3506eevboxsync;; @file
af062818b47340eef15700d2f0211576ba3506eevboxsync; TRPM - Internal header file.
af062818b47340eef15700d2f0211576ba3506eevboxsync;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync;
af062818b47340eef15700d2f0211576ba3506eevboxsync; Copyright (C) 2006-2012 Oracle Corporation
af062818b47340eef15700d2f0211576ba3506eevboxsync;
af062818b47340eef15700d2f0211576ba3506eevboxsync; This file is part of VirtualBox Open Source Edition (OSE), as
af062818b47340eef15700d2f0211576ba3506eevboxsync; available from http://www.virtualbox.org. This file is free software;
af062818b47340eef15700d2f0211576ba3506eevboxsync; you can redistribute it and/or modify it under the terms of the GNU
af062818b47340eef15700d2f0211576ba3506eevboxsync; General Public License (GPL) as published by the Free Software
af062818b47340eef15700d2f0211576ba3506eevboxsync; Foundation, in version 2 as it comes in the "COPYING" file of the
af062818b47340eef15700d2f0211576ba3506eevboxsync; VirtualBox OSE distribution. VirtualBox OSE is distributed in the
af062818b47340eef15700d2f0211576ba3506eevboxsync; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
af062818b47340eef15700d2f0211576ba3506eevboxsync;
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync%include "VBox/asmdefs.mac"
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync%include "VBox/vmm/stam.mac"
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync%define TRPM_TRAP_IN_OP_MASK 0xffff
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync%define TRPM_TRAP_IN_MOV_GS 1
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync%define TRPM_TRAP_IN_MOV_FS 2
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync%define TRPM_TRAP_IN_MOV_ES 3
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync%define TRPM_TRAP_IN_MOV_DS 4
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync%define TRPM_TRAP_IN_IRET 5
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync%define TRPM_TRAP_IN_V86 RT_BIT(30)
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsyncstruc TRPM
af062818b47340eef15700d2f0211576ba3506eevboxsync .offVM resd 1
af062818b47340eef15700d2f0211576ba3506eevboxsync .offTRPMCPU resd 1
af062818b47340eef15700d2f0211576ba3506eevboxsync .fSafeToDropGuestIDTMonitoring resb 1
af062818b47340eef15700d2f0211576ba3506eevboxsync .abPadding1 resb 7
af062818b47340eef15700d2f0211576ba3506eevboxsync .aIdt resd 512
af062818b47340eef15700d2f0211576ba3506eevboxsync .au32IdtPatched resd 8
af062818b47340eef15700d2f0211576ba3506eevboxsync .aTmpTrapHandlers RTRCPTR_RES 256
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync .pvMonShwIdtRC RTRCPTR_RES 1
af062818b47340eef15700d2f0211576ba3506eevboxsync .GuestIdtr resb 10
af062818b47340eef15700d2f0211576ba3506eevboxsync .au8Padding resb 2
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync .aGuestTrapHandler RTRCPTR_RES 256
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync .StatRCWriteGuestIDTFault resb STAMCOUNTER_size
af062818b47340eef15700d2f0211576ba3506eevboxsync .StatRCWriteGuestIDTHandled resb STAMCOUNTER_size
af062818b47340eef15700d2f0211576ba3506eevboxsync .StatSyncIDT resb STAMPROFILE_size
af062818b47340eef15700d2f0211576ba3506eevboxsync .aStatGCTraps resb STAMPROFILEADV_size * 0x14
af062818b47340eef15700d2f0211576ba3506eevboxsync
af062818b47340eef15700d2f0211576ba3506eevboxsync .StatForwardProfR3 resb STAMPROFILEADV_size
af062818b47340eef15700d2f0211576ba3506eevboxsync .StatForwardProfRZ resb STAMPROFILEADV_size
af062818b47340eef15700d2f0211576ba3506eevboxsync .StatForwardFailNoHandler resb STAMCOUNTER_size
af062818b47340eef15700d2f0211576ba3506eevboxsync .StatForwardFailPatchAddr resb STAMCOUNTER_size
af062818b47340eef15700d2f0211576ba3506eevboxsync .StatForwardFailR3 resb STAMCOUNTER_size
af062818b47340eef15700d2f0211576ba3506eevboxsync .StatForwardFailRZ resb STAMCOUNTER_size
.StatTrap0dDisasm resb STAMPROFILE_size
.StatTrap0dRdTsc resb STAMCOUNTER_size
%ifdef VBOX_WITH_STATISTICS
.paStatForwardedIRQR3 RTR3PTR_RES 1
.paStatForwardedIRQRC RTRCPTR_RES 1
.paStatHostIrqRC RTRCPTR_RES 1
.paStatHostIrqR3 RTR3PTR_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
.cbInstr resb 1
.cbSavedInstr resb 1
.au8Padding resb 2
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