儲存庫 vbox 的更動 45955
- 時間撮記:
- 2013-5-8 下午06:04:10 (12 年 以前)
- 位置:
- trunk/src/VBox/VMM
- 檔案:
-
- 修改 4 筆資料
圖例:
- 未更動
- 新增
- 刪除
-
trunk/src/VBox/VMM/VMMR0/HMR0A.asm
r45875 r45955 5 5 6 6 ; 7 ; Copyright (C) 2006-201 2Oracle Corporation7 ; Copyright (C) 2006-2013 Oracle Corporation 8 8 ; 9 9 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 971 971 ; * @param pIdtr Where to store the 64-bit IDTR. 972 972 ; */ 973 ;DECLASM(void) hmR0Get64bitGdtrAndIdtr(PX86XDTR64 pGdtr, PX86XDTR64 pIdtr);974 ALIGNCODE(16) 975 BEGINPROC hmR0Get64bitGdtrAndIdtr973 ;DECLASM(void) HMR0Get64bitGdtrAndIdtr(PX86XDTR64 pGdtr, PX86XDTR64 pIdtr); 974 ALIGNCODE(16) 975 BEGINPROC HMR0Get64bitGdtrAndIdtr 976 976 db 0xea ; jmp far .sixtyfourbit_mode 977 977 dd .sixtyfourbit_mode, NAME(SUPR0Abs64bitKernelCS) … … 991 991 dd .the_end, NAME(SUPR0AbsKernelCS) 992 992 BITS 32 993 ENDPROC hmR0Get64bitGdtrAndIdtr993 ENDPROC HMR0Get64bitGdtrAndIdtr 994 994 995 995 … … 998 998 ; * @returns CR3 999 999 ; */ 1000 ;DECLASM(uint64_t) hmR0Get64bitCR3(void);1001 ALIGNCODE(16) 1002 BEGINPROC hmR0Get64bitCR31000 ;DECLASM(uint64_t) HMR0Get64bitCR3(void); 1001 ALIGNCODE(16) 1002 BEGINPROC HMR0Get64bitCR3 1003 1003 db 0xea ; jmp far .sixtyfourbit_mode 1004 1004 dd .sixtyfourbit_mode, NAME(SUPR0Abs64bitKernelCS) … … 1016 1016 dd .the_end, NAME(SUPR0AbsKernelCS) 1017 1017 BITS 32 1018 ENDPROC hmR0Get64bitCR31018 ENDPROC HMR0Get64bitCR3 1019 1019 1020 1020 %endif ; VBOX_WITH_HYBRID_32BIT_KERNEL … … 1026 1026 ; load the guest ones when necessary. 1027 1027 ; 1028 ; @cproto DECLASM(int) hmR0VMXStartVMWrapXMM(RTHCUINT fResume, PCPUMCTX pCtx, PVMCSCACHE pCache, PVM pVM, PVMCPU pVCpu, PFNHMVMXSTARTVM pfnStartVM);1028 ; @cproto DECLASM(int) HMR0VMXStartVMWrapXMM(RTHCUINT fResume, PCPUMCTX pCtx, PVMCSCACHE pCache, PVM pVM, PVMCPU pVCpu, PFNHMVMXSTARTVM pfnStartVM); 1029 1029 ; 1030 1030 ; @returns eax … … 1037 1037 ; @param pfnStartVM msc:[rbp+38h] 1038 1038 ; 1039 ; @remarks This is essentially the same code as hmR0SVMRunWrapXMM, only the parameters differ a little bit.1039 ; @remarks This is essentially the same code as HMR0SVMRunWrapXMM, only the parameters differ a little bit. 1040 1040 ; 1041 1041 ; ASSUMING 64-bit and windows for now. 1042 1042 ALIGNCODE(16) 1043 BEGINPROC hmR0VMXStartVMWrapXMM1043 BEGINPROC HMR0VMXStartVMWrapXMM 1044 1044 push xBP 1045 1045 mov xBP, xSP … … 1148 1148 leave 1149 1149 ret 1150 ENDPROC hmR0VMXStartVMWrapXMM1150 ENDPROC HMR0VMXStartVMWrapXMM 1151 1151 1152 1152 ;; … … 1154 1154 ; load the guest ones when necessary. 1155 1155 ; 1156 ; @cproto DECLASM(int) hmR0SVMRunWrapXMM(RTHCPHYS pVMCBHostPhys, RTHCPHYS pVMCBPhys, PCPUMCTX pCtx, PVM pVM, PVMCPU pVCpu, PFNHMSVMVMRUN pfnVMRun);1156 ; @cproto DECLASM(int) HMR0SVMRunWrapXMM(RTHCPHYS pVMCBHostPhys, RTHCPHYS pVMCBPhys, PCPUMCTX pCtx, PVM pVM, PVMCPU pVCpu, PFNHMSVMVMRUN pfnVMRun); 1157 1157 ; 1158 1158 ; @returns eax … … 1165 1165 ; @param pfnVMRun msc:[rbp+38h] 1166 1166 ; 1167 ; @remarks This is essentially the same code as hmR0VMXStartVMWrapXMM, only the parameters differ a little bit.1167 ; @remarks This is essentially the same code as HMR0VMXStartVMWrapXMM, only the parameters differ a little bit. 1168 1168 ; 1169 1169 ; ASSUMING 64-bit and windows for now. 1170 1170 ALIGNCODE(16) 1171 BEGINPROC hmR0SVMRunWrapXMM1171 BEGINPROC HMR0SVMRunWrapXMM 1172 1172 push xBP 1173 1173 mov xBP, xSP … … 1276 1276 leave 1277 1277 ret 1278 ENDPROC hmR0SVMRunWrapXMM1278 ENDPROC HMR0SVMRunWrapXMM 1279 1279 1280 1280 %endif ; VBOX_WITH_KERNEL_USING_XMM -
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r45954 r45955 2064 2064 if (HMVMX_IS_64BIT_HOST_MODE()) 2065 2065 { 2066 uint64_t uRegCR3 = hmR0Get64bitCR3();2066 uint64_t uRegCR3 = HMR0Get64bitCR3(); 2067 2067 rc = VMXWriteVmcs64(VMX_VMCS_HOST_CR3, uRegCR3); 2068 2068 } … … 2168 2168 X86XDTR64 Gdtr64; 2169 2169 X86XDTR64 Idtr64; 2170 hmR0Get64bitGdtrAndIdtr(&Gdtr64, &Idtr64);2170 HMR0Get64bitGdtrAndIdtr(&Gdtr64, &Idtr64); 2171 2171 rc = VMXWriteVmcs64(VMX_VMCS_HOST_GDTR_BASE, Gdtr64.uAddr); AssertRCReturn(rc, rc); 2172 2172 rc = VMXWriteVmcs64(VMX_VMCS_HOST_IDTR_BASE, Idtr64.uAddr); AssertRCReturn(rc, rc); … … 3804 3804 */ 3805 3805 #ifdef VBOX_WITH_KERNEL_USING_XMM 3806 return hmR0VMXStartVMWrapXMM(pVCpu->hm.s.fResumeVM, pCtx, &pVCpu->hm.s.vmx.VMCSCache, pVM, pVCpu, pVCpu->hm.s.vmx.pfnStartVM);3806 return HMR0VMXStartVMWrapXMM(pVCpu->hm.s.fResumeVM, pCtx, &pVCpu->hm.s.vmx.VMCSCache, pVM, pVCpu, pVCpu->hm.s.vmx.pfnStartVM); 3807 3807 #else 3808 3808 return pVCpu->hm.s.vmx.pfnStartVM(pVCpu->hm.s.fResumeVM, pCtx, &pVCpu->hm.s.vmx.VMCSCache, pVM, pVCpu); -
trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp
r45947 r45955 1326 1326 if (VMX_IS_64BIT_HOST_MODE()) 1327 1327 { 1328 cr3 = hmR0Get64bitCR3();1328 cr3 = HMR0Get64bitCR3(); 1329 1329 rc |= VMXWriteVmcs64(VMX_VMCS_HOST_CR3, cr3); 1330 1330 } … … 1391 1391 { 1392 1392 X86XDTR64 gdtr64, idtr64; 1393 hmR0Get64bitGdtrAndIdtr(&gdtr64, &idtr64);1393 HMR0Get64bitGdtrAndIdtr(&gdtr64, &idtr64); 1394 1394 rc = VMXWriteVmcs64(VMX_VMCS_HOST_GDTR_BASE, gdtr64.uAddr); 1395 1395 rc |= VMXWriteVmcs64(VMX_VMCS_HOST_IDTR_BASE, idtr64.uAddr); … … 3358 3358 3359 3359 #ifdef VBOX_WITH_KERNEL_USING_XMM 3360 rc = hmR0VMXStartVMWrapXMM(pVCpu->hm.s.fResumeVM, pCtx, &pVCpu->hm.s.vmx.VMCSCache, pVM, pVCpu, pVCpu->hm.s.vmx.pfnStartVM);3360 rc = HMR0VMXStartVMWrapXMM(pVCpu->hm.s.fResumeVM, pCtx, &pVCpu->hm.s.vmx.VMCSCache, pVM, pVCpu, pVCpu->hm.s.vmx.pfnStartVM); 3361 3361 #else 3362 3362 rc = pVCpu->hm.s.vmx.pfnStartVM(pVCpu->hm.s.fResumeVM, pCtx, &pVCpu->hm.s.vmx.VMCSCache, pVM, pVCpu); -
trunk/src/VBox/VMM/include/HMInternal.h
r45947 r45955 929 929 930 930 # ifdef VBOX_WITH_KERNEL_USING_XMM 931 DECLASM(int) hmR0VMXStartVMWrapXMM(RTHCUINT fResume, PCPUMCTX pCtx, PVMCSCACHE pCache, PVM pVM, PVMCPU pVCpu, PFNHMVMXSTARTVM pfnStartVM);932 DECLASM(int) hmR0SVMRunWrapXMM(RTHCPHYS pVMCBHostPhys, RTHCPHYS pVMCBPhys, PCPUMCTX pCtx, PVM pVM, PVMCPU pVCpu, PFNHMSVMVMRUN pfnVMRun);931 DECLASM(int) HMR0VMXStartVMWrapXMM(RTHCUINT fResume, PCPUMCTX pCtx, PVMCSCACHE pCache, PVM pVM, PVMCPU pVCpu, PFNHMVMXSTARTVM pfnStartVM); 932 DECLASM(int) HMR0SVMRunWrapXMM(RTHCPHYS pVMCBHostPhys, RTHCPHYS pVMCBPhys, PCPUMCTX pCtx, PVM pVM, PVMCPU pVCpu, PFNHMSVMVMRUN pfnVMRun); 933 933 # endif 934 934 … … 939 939 * @param pIdtr Where to store the 64-bit IDTR. 940 940 */ 941 DECLASM(void) hmR0Get64bitGdtrAndIdtr(PX86XDTR64 pGdtr, PX86XDTR64 pIdtr);941 DECLASM(void) HMR0Get64bitGdtrAndIdtr(PX86XDTR64 pGdtr, PX86XDTR64 pIdtr); 942 942 943 943 /** … … 945 945 * @returns CR3 946 946 */ 947 DECLASM(uint64_t) hmR0Get64bitCR3(void);947 DECLASM(uint64_t) HMR0Get64bitCR3(void); 948 948 # endif 949 949
注意:
瀏覽 TracChangeset
來幫助您使用更動檢視器