Changeset 9223 in vbox
- Timestamp:
- May 29, 2008 1:47:32 PM (17 years ago)
- Location:
- trunk
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/cpum.h
r9212 r9223 930 930 * 931 931 */ 932 DECLASM(void) CPUMGCCallGuestTrapHandler(PCPUMCTXCORE pRegFrame, uint32_t selCS, RT GCPTR32 pHandler, uint32_t eflags, uint32_t selSS, RTGCPTR32pEsp);932 DECLASM(void) CPUMGCCallGuestTrapHandler(PCPUMCTXCORE pRegFrame, uint32_t selCS, RTRCPTR pHandler, uint32_t eflags, uint32_t selSS, RTRCPTR pEsp); 933 933 934 934 /** -
trunk/include/iprt/asmdefs.mac
r9212 r9223 449 449 450 450 451 ;; @def RTRCPTR_DEF 452 ; The pesudo-instruction used to declare an initialized pointer variable in the raw mode context. 453 %define RTRCPTR_DEF dd 454 455 ;; @def RTRCPTR_RES 456 ; The pesudo-instruction used to declare (=reserve space for) an uninitialized pointer 457 ; variable of the raw mode context. 458 %define RTRCPTR_RES resd 459 460 ;; @def RTRCPTR_PRE 461 ; The memory operand prefix used for a pointer in the raw mode context. 462 %define RTRCPTR_PRE dword 463 464 ;; @def RTRCPTR_CB 465 ; The size in bytes of a pointer in the raw mode context. 466 %define RTRCPTR_CB 4 467 451 468 452 469 ;; @def RT_CCPTR_DEF … … 464 481 465 482 %ifdef IN_GC 466 %define RTCCPTR_DEF RT GCPTR_DEF467 %define RTCCPTR_RES RT GCPTR_RES468 %define RTCCPTR_PRE RT GCPTR_PRE469 %define RTCCPTR_CB RT GCPTR_CB483 %define RTCCPTR_DEF RTRCPTR_DEF 484 %define RTCCPTR_RES RTRCPTR_RES 485 %define RTCCPTR_PRE RTRCPTR_PRE 486 %define RTCCPTR_CB RTRCPTR_CB 470 487 %else 471 488 %ifdef IN_RING0 -
trunk/include/iprt/cdefs.h
r9212 r9223 237 237 238 238 /** @def RCPTRTYPE 239 * Declare a pointer which is used in GCbut appears in structure(s) used by240 * both HC and GC. The main purpose is to make sure structures have the same239 * Declare a pointer which is used in the raw mode context but appears in structure(s) used by 240 * both HC and RC. The main purpose is to make sure structures have the same 241 241 * size when built for different architectures. 242 242 * 243 * @param GCType The GC type.244 */ 245 #define RCPTRTYPE( GCType) CTXTYPE(GCType, RTGCPTR32, RTGCPTR32)243 * @param RCType The RC type. 244 */ 245 #define RCPTRTYPE(RCType) CTXTYPE(RCType, RTRCPTR, RTRCPTR) 246 246 247 247 /** @def R3R0PTRTYPE -
trunk/include/iprt/types.h
r9212 r9223 891 891 /** @} */ 892 892 893 /** @defgroup grp_rt_types_rc Raw mode Context Basic Types 894 * @ingroup grp_rt_types 895 * @{ 896 */ 897 898 /** Raw mode context pointer; a 32 bits guest context pointer 899 * Keep in mind that this type is an unsigned integer in 900 * HC and void pointer in GC. 901 */ 902 #ifdef IN_GC 903 typedef void * RTRCPTR; 904 #else 905 typedef uint32_t RTRCPTR; 906 #endif 907 /** Pointer to a raw mode context pointer. */ 908 typedef RTRCPTR *PRTRCPTR; 909 /** Pointer to a const raw mode context pointer. */ 910 typedef const RTRCPTR *PCRTRCPTR; 911 /** @def NIL_RTGCPTR 912 * NIL RC pointer. 913 */ 914 #define NIL_RTRCPTR ((RTRCPTR)0) 915 /** @} */ 916 893 917 894 918 /** @defgroup grp_rt_types_cc Current Context Basic Types -
trunk/src/VBox/VMM/TRPMInternal.h
r9212 r9223 152 152 /** Temporary Hypervisor trap handlers. 153 153 * NULL means default action. */ 154 R TGCPTR32aTmpTrapHandlers[256];154 RCPTRTYPE(void *) aTmpTrapHandlers[256]; 155 155 156 156 /** GC Pointer to the IDT shadow area (aIdt) placed in Hypervisor memory arena. */ 157 R TGCPTR32GCPtrIdt;157 RCPTRTYPE(void *) GCPtrIdt; 158 158 /** Current (last) Guest's IDTR. */ 159 159 VBOXIDTR GuestIdtr; … … 163 163 164 164 /** Checked trap & interrupt handler array */ 165 R TGCPTR32aGuestTrapHandler[256];165 RCPTRTYPE(void *) aGuestTrapHandler[256]; 166 166 167 167 /** GC: The number of times writes to the Guest IDT were detected. */ -
trunk/src/VBox/VMM/TRPMInternal.mac
r9212 r9223 52 52 .aIdt resd 512 53 53 .au32IdtPatched resd 8 54 .aTmpTrapHandlers RT GCPTR32_RES 25654 .aTmpTrapHandlers RTRCPTR_RES 256 55 55 56 .GCPtrIdt RT GCPTR32_RES 156 .GCPtrIdt RTRCPTR_RES 1 57 57 .GuestIdtr resb 6 58 58 .au8Padding resb 2 59 59 60 .aGuestTrapHandler resd25660 .aGuestTrapHandler RTRCPTR_RES 256 61 61 62 62 .StatGCWriteGuestIDTFault resb STAMCOUNTER_size -
trunk/src/VBox/VMM/VMMAll/TRPMAll.cpp
r9212 r9223 694 694 STAM_PROFILE_ADV_STOP(&pVM->trpm.s.aStatGCTraps[iOrgTrap], o); 695 695 696 CPUMGCCallGuestTrapHandler(pRegFrame, GuestIdte.Gen.u16SegSel | 1, pVM->trpm.s.aGuestTrapHandler[iGate], eflags.u32, ss_r0, (RT GCPTR32)esp_r0);696 CPUMGCCallGuestTrapHandler(pRegFrame, GuestIdte.Gen.u16SegSel | 1, pVM->trpm.s.aGuestTrapHandler[iGate], eflags.u32, ss_r0, (RTRCPTR)esp_r0); 697 697 /* does not return */ 698 698 #else -
trunk/src/VBox/VMM/VMMGC/TRPMGC.cpp
r9212 r9223 69 69 * Install handler. 70 70 */ 71 pVM->trpm.s.aTmpTrapHandlers[iTrap] = (RT GCPTR32)(RTGCUINTPTR)pfnHandler;71 pVM->trpm.s.aTmpTrapHandlers[iTrap] = (RTRCPTR)pfnHandler; 72 72 return VINF_SUCCESS; 73 73 }
Note:
See TracChangeset
for help on using the changeset viewer.