Changeset 18927 in vbox for trunk/include/VBox
- Timestamp:
- Apr 16, 2009 11:41:38 AM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 46003
- Location:
- trunk/include/VBox
- Files:
-
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/cpum.h
r17035 r18927 620 620 /** @name Guest Register Getters. 621 621 * @{ */ 622 VMMDECL(void) CPUMGetGuestGDTR(PVM pVM, PVBOXGDTR pGDTR);623 VMMDECL(RTGCPTR) CPUMGetGuestIDTR(PVM pVM, uint16_t *pcbLimit);624 VMMDECL(RTSEL) CPUMGetGuestTR(PVM pVM, PCPUMSELREGHID pHidden);625 VMMDECL(RTSEL) CPUMGetGuestLDTR(PVM pVM);626 VMMDECL(uint64_t) CPUMGetGuestCR0(PVM pVM);627 VMMDECL(uint64_t) CPUMGetGuestCR2(PVM pVM);628 VMMDECL(uint64_t) CPUMGetGuestCR3(PVM pVM);629 VMMDECL(uint64_t) CPUMGetGuestCR4(PVM pVM);630 VMMDECL(int) CPUMGetGuestCRx(PVM pVM, unsigned iReg, uint64_t *pValue);631 VMMDECL(uint32_t) CPUMGetGuestEFlags(PVM pVM);632 VMMDECL(uint32_t) CPUMGetGuestEIP(PVM pVM);633 VMMDECL(uint64_t) CPUMGetGuestRIP(PVM pVM);634 VMMDECL(uint32_t) CPUMGetGuestEAX(PVM pVM);635 VMMDECL(uint32_t) CPUMGetGuestEBX(PVM pVM);636 VMMDECL(uint32_t) CPUMGetGuestECX(PVM pVM);637 VMMDECL(uint32_t) CPUMGetGuestEDX(PVM pVM);638 VMMDECL(uint32_t) CPUMGetGuestESI(PVM pVM);639 VMMDECL(uint32_t) CPUMGetGuestEDI(PVM pVM);640 VMMDECL(uint32_t) CPUMGetGuestESP(PVM pVM);641 VMMDECL(uint32_t) CPUMGetGuestEBP(PVM pVM);642 VMMDECL(RTSEL) CPUMGetGuestCS(PVM pVM);643 VMMDECL(RTSEL) CPUMGetGuestDS(PVM pVM);644 VMMDECL(RTSEL) CPUMGetGuestES(PVM pVM);645 VMMDECL(RTSEL) CPUMGetGuestFS(PVM pVM);646 VMMDECL(RTSEL) CPUMGetGuestGS(PVM pVM);647 VMMDECL(RTSEL) CPUMGetGuestSS(PVM pVM);648 VMMDECL(uint64_t) CPUMGetGuestDR0(PVM pVM);649 VMMDECL(uint64_t) CPUMGetGuestDR1(PVM pVM);650 VMMDECL(uint64_t) CPUMGetGuestDR2(PVM pVM);651 VMMDECL(uint64_t) CPUMGetGuestDR3(PVM pVM);652 VMMDECL(uint64_t) CPUMGetGuestDR6(PVM pVM);653 VMMDECL(uint64_t) CPUMGetGuestDR7(PVM pVM);654 VMMDECL(int) CPUMGetGuestDRx(PVM pVM, uint32_t iReg, uint64_t *pValue);622 VMMDECL(void) CPUMGetGuestGDTR(PVMCPU pVCpu, PVBOXGDTR pGDTR); 623 VMMDECL(RTGCPTR) CPUMGetGuestIDTR(PVMCPU pVCpu, uint16_t *pcbLimit); 624 VMMDECL(RTSEL) CPUMGetGuestTR(PVMCPU pVCpu, PCPUMSELREGHID pHidden); 625 VMMDECL(RTSEL) CPUMGetGuestLDTR(PVMCPU pVCpu); 626 VMMDECL(uint64_t) CPUMGetGuestCR0(PVMCPU pVCpu); 627 VMMDECL(uint64_t) CPUMGetGuestCR2(PVMCPU pVCpu); 628 VMMDECL(uint64_t) CPUMGetGuestCR3(PVMCPU pVCpu); 629 VMMDECL(uint64_t) CPUMGetGuestCR4(PVMCPU pVCpu); 630 VMMDECL(int) CPUMGetGuestCRx(PVMCPU pVCpu, unsigned iReg, uint64_t *pValue); 631 VMMDECL(uint32_t) CPUMGetGuestEFlags(PVMCPU pVCpu); 632 VMMDECL(uint32_t) CPUMGetGuestEIP(PVMCPU pVCpu); 633 VMMDECL(uint64_t) CPUMGetGuestRIP(PVMCPU pVCpu); 634 VMMDECL(uint32_t) CPUMGetGuestEAX(PVMCPU pVCpu); 635 VMMDECL(uint32_t) CPUMGetGuestEBX(PVMCPU pVCpu); 636 VMMDECL(uint32_t) CPUMGetGuestECX(PVMCPU pVCpu); 637 VMMDECL(uint32_t) CPUMGetGuestEDX(PVMCPU pVCpu); 638 VMMDECL(uint32_t) CPUMGetGuestESI(PVMCPU pVCpu); 639 VMMDECL(uint32_t) CPUMGetGuestEDI(PVMCPU pVCpu); 640 VMMDECL(uint32_t) CPUMGetGuestESP(PVMCPU pVCpu); 641 VMMDECL(uint32_t) CPUMGetGuestEBP(PVMCPU pVCpu); 642 VMMDECL(RTSEL) CPUMGetGuestCS(PVMCPU pVCpu); 643 VMMDECL(RTSEL) CPUMGetGuestDS(PVMCPU pVCpu); 644 VMMDECL(RTSEL) CPUMGetGuestES(PVMCPU pVCpu); 645 VMMDECL(RTSEL) CPUMGetGuestFS(PVMCPU pVCpu); 646 VMMDECL(RTSEL) CPUMGetGuestGS(PVMCPU pVCpu); 647 VMMDECL(RTSEL) CPUMGetGuestSS(PVMCPU pVCpu); 648 VMMDECL(uint64_t) CPUMGetGuestDR0(PVMCPU pVCpu); 649 VMMDECL(uint64_t) CPUMGetGuestDR1(PVMCPU pVCpu); 650 VMMDECL(uint64_t) CPUMGetGuestDR2(PVMCPU pVCpu); 651 VMMDECL(uint64_t) CPUMGetGuestDR3(PVMCPU pVCpu); 652 VMMDECL(uint64_t) CPUMGetGuestDR6(PVMCPU pVCpu); 653 VMMDECL(uint64_t) CPUMGetGuestDR7(PVMCPU pVCpu); 654 VMMDECL(int) CPUMGetGuestDRx(PVMCPU pVCpu, uint32_t iReg, uint64_t *pValue); 655 655 VMMDECL(void) CPUMGetGuestCpuId(PVM pVM, uint32_t iLeaf, uint32_t *pEax, uint32_t *pEbx, uint32_t *pEcx, uint32_t *pEdx); 656 656 VMMDECL(RCPTRTYPE(PCCPUMCPUID)) CPUMGetGuestCpuIdStdRCPtr(PVM pVM); … … 661 661 VMMDECL(uint32_t) CPUMGetGuestCpuIdExtMax(PVM pVM); 662 662 VMMDECL(uint32_t) CPUMGetGuestCpuIdCentaurMax(PVM pVM); 663 VMMDECL(uint64_t) CPUMGetGuestEFER(PVM pVM);664 VMMDECL(uint64_t) CPUMGetGuestMsr(PVM pVM, unsigned idMsr);665 VMMDECL(void) CPUMSetGuestMsr(PVM pVM, unsigned idMsr, uint64_t valMsr);663 VMMDECL(uint64_t) CPUMGetGuestEFER(PVMCPU pVCpu); 664 VMMDECL(uint64_t) CPUMGetGuestMsr(PVMCPU pVCpu, unsigned idMsr); 665 VMMDECL(void) CPUMSetGuestMsr(PVMCPU pVCpu, unsigned idMsr, uint64_t valMsr); 666 666 /** @} */ 667 667 668 668 /** @name Guest Register Setters. 669 669 * @{ */ 670 VMMDECL(int) CPUMSetGuestGDTR(PVM pVM, uint32_t addr, uint16_t limit);671 VMMDECL(int) CPUMSetGuestIDTR(PVM pVM, uint32_t addr, uint16_t limit);672 VMMDECL(int) CPUMSetGuestTR(PVM pVM, uint16_t tr);673 VMMDECL(int) CPUMSetGuestLDTR(PVM pVM, uint16_t ldtr);674 VMMDECL(int) CPUMSetGuestCR0(PVM pVM, uint64_t cr0);675 VMMDECL(int) CPUMSetGuestCR2(PVM pVM, uint64_t cr2);676 VMMDECL(int) CPUMSetGuestCR3(PVM pVM, uint64_t cr3);677 VMMDECL(int) CPUMSetGuestCR4(PVM pVM, uint64_t cr4);678 VMMDECL(int) CPUMSetGuestDR0(PVM pVM, uint64_t uDr0);679 VMMDECL(int) CPUMSetGuestDR1(PVM pVM, uint64_t uDr1);680 VMMDECL(int) CPUMSetGuestDR2(PVM pVM, uint64_t uDr2);681 VMMDECL(int) CPUMSetGuestDR3(PVM pVM, uint64_t uDr3);682 VMMDECL(int) CPUMSetGuestDR6(PVM pVM, uint64_t uDr6);683 VMMDECL(int) CPUMSetGuestDR7(PVM pVM, uint64_t uDr7);684 VMMDECL(int) CPUMSetGuestDRx(PVM pVM, uint32_t iReg, uint64_t Value);685 VMMDECL(int) CPUMSetGuestEFlags(PVM pVM, uint32_t eflags);686 VMMDECL(int) CPUMSetGuestEIP(PVM pVM, uint32_t eip);687 VMMDECL(int) CPUMSetGuestEAX(PVM pVM, uint32_t eax);688 VMMDECL(int) CPUMSetGuestEBX(PVM pVM, uint32_t ebx);689 VMMDECL(int) CPUMSetGuestECX(PVM pVM, uint32_t ecx);690 VMMDECL(int) CPUMSetGuestEDX(PVM pVM, uint32_t edx);691 VMMDECL(int) CPUMSetGuestESI(PVM pVM, uint32_t esi);692 VMMDECL(int) CPUMSetGuestEDI(PVM pVM, uint32_t edi);693 VMMDECL(int) CPUMSetGuestESP(PVM pVM, uint32_t esp);694 VMMDECL(int) CPUMSetGuestEBP(PVM pVM, uint32_t ebp);695 VMMDECL(int) CPUMSetGuestCS(PVM pVM, uint16_t cs);696 VMMDECL(int) CPUMSetGuestDS(PVM pVM, uint16_t ds);697 VMMDECL(int) CPUMSetGuestES(PVM pVM, uint16_t es);698 VMMDECL(int) CPUMSetGuestFS(PVM pVM, uint16_t fs);699 VMMDECL(int) CPUMSetGuestGS(PVM pVM, uint16_t gs);700 VMMDECL(int) CPUMSetGuestSS(PVM pVM, uint16_t ss);701 VMMDECL(void) CPUMSetGuestEFER(PVM pVM, uint64_t val);670 VMMDECL(int) CPUMSetGuestGDTR(PVMCPU pVCpu, uint32_t addr, uint16_t limit); 671 VMMDECL(int) CPUMSetGuestIDTR(PVMCPU pVCpu, uint32_t addr, uint16_t limit); 672 VMMDECL(int) CPUMSetGuestTR(PVMCPU pVCpu, uint16_t tr); 673 VMMDECL(int) CPUMSetGuestLDTR(PVMCPU pVCpu, uint16_t ldtr); 674 VMMDECL(int) CPUMSetGuestCR0(PVMCPU pVCpu, uint64_t cr0); 675 VMMDECL(int) CPUMSetGuestCR2(PVMCPU pVCpu, uint64_t cr2); 676 VMMDECL(int) CPUMSetGuestCR3(PVMCPU pVCpu, uint64_t cr3); 677 VMMDECL(int) CPUMSetGuestCR4(PVMCPU pVCpu, uint64_t cr4); 678 VMMDECL(int) CPUMSetGuestDR0(PVMCPU pVCpu, uint64_t uDr0); 679 VMMDECL(int) CPUMSetGuestDR1(PVMCPU pVCpu, uint64_t uDr1); 680 VMMDECL(int) CPUMSetGuestDR2(PVMCPU pVCpu, uint64_t uDr2); 681 VMMDECL(int) CPUMSetGuestDR3(PVMCPU pVCpu, uint64_t uDr3); 682 VMMDECL(int) CPUMSetGuestDR6(PVMCPU pVCpu, uint64_t uDr6); 683 VMMDECL(int) CPUMSetGuestDR7(PVMCPU pVCpu, uint64_t uDr7); 684 VMMDECL(int) CPUMSetGuestDRx(PVMCPU pVCpu, uint32_t iReg, uint64_t Value); 685 VMMDECL(int) CPUMSetGuestEFlags(PVMCPU pVCpu, uint32_t eflags); 686 VMMDECL(int) CPUMSetGuestEIP(PVMCPU pVCpu, uint32_t eip); 687 VMMDECL(int) CPUMSetGuestEAX(PVMCPU pVCpu, uint32_t eax); 688 VMMDECL(int) CPUMSetGuestEBX(PVMCPU pVCpu, uint32_t ebx); 689 VMMDECL(int) CPUMSetGuestECX(PVMCPU pVCpu, uint32_t ecx); 690 VMMDECL(int) CPUMSetGuestEDX(PVMCPU pVCpu, uint32_t edx); 691 VMMDECL(int) CPUMSetGuestESI(PVMCPU pVCpu, uint32_t esi); 692 VMMDECL(int) CPUMSetGuestEDI(PVMCPU pVCpu, uint32_t edi); 693 VMMDECL(int) CPUMSetGuestESP(PVMCPU pVCpu, uint32_t esp); 694 VMMDECL(int) CPUMSetGuestEBP(PVMCPU pVCpu, uint32_t ebp); 695 VMMDECL(int) CPUMSetGuestCS(PVMCPU pVCpu, uint16_t cs); 696 VMMDECL(int) CPUMSetGuestDS(PVMCPU pVCpu, uint16_t ds); 697 VMMDECL(int) CPUMSetGuestES(PVMCPU pVCpu, uint16_t es); 698 VMMDECL(int) CPUMSetGuestFS(PVMCPU pVCpu, uint16_t fs); 699 VMMDECL(int) CPUMSetGuestGS(PVMCPU pVCpu, uint16_t gs); 700 VMMDECL(int) CPUMSetGuestSS(PVMCPU pVCpu, uint16_t ss); 701 VMMDECL(void) CPUMSetGuestEFER(PVMCPU pVCpu, uint64_t val); 702 702 VMMDECL(void) CPUMSetGuestCpuIdFeature(PVM pVM, CPUMCPUIDFEATURE enmFeature); 703 703 VMMDECL(void) CPUMClearGuestCpuIdFeature(PVM pVM, CPUMCPUIDFEATURE enmFeature); 704 704 VMMDECL(bool) CPUMGetGuestCpuIdFeature(PVM pVM, CPUMCPUIDFEATURE enmFeature); 705 VMMDECL(void) CPUMSetGuestCtx(PVM pVM, const PCPUMCTX pCtx);705 VMMDECL(void) CPUMSetGuestCtx(PVMCPU pVCpu, const PCPUMCTX pCtx); 706 706 /** @} */ 707 707 … … 710 710 711 711 712 VMMDECL(bool) CPUMIsGuestIn16BitCode(PVM pVM);713 VMMDECL(bool) CPUMIsGuestIn32BitCode(PVM pVM);712 VMMDECL(bool) CPUMIsGuestIn16BitCode(PVMCPU pVCpu); 713 VMMDECL(bool) CPUMIsGuestIn32BitCode(PVMCPU pVCpu); 714 714 VMMDECL(CPUMCPUVENDOR) CPUMGetCPUVendor(PVM pVM); 715 715 … … 720 720 * @param pVM The VM handle. 721 721 */ 722 DECLINLINE(bool) CPUMIsGuestInRealMode(PVM pVM)723 { 724 return !(CPUMGetGuestCR0(pV M) & X86_CR0_PE);722 DECLINLINE(bool) CPUMIsGuestInRealMode(PVMCPU pVCpu) 723 { 724 return !(CPUMGetGuestCR0(pVCpu) & X86_CR0_PE); 725 725 } 726 726 … … 742 742 * @param pVM The VM handle. 743 743 */ 744 DECLINLINE(bool) CPUMIsGuestInProtectedMode(PVM pVM)745 { 746 return !!(CPUMGetGuestCR0(pV M) & X86_CR0_PE);744 DECLINLINE(bool) CPUMIsGuestInProtectedMode(PVMCPU pVCpu) 745 { 746 return !!(CPUMGetGuestCR0(pVCpu) & X86_CR0_PE); 747 747 } 748 748 … … 753 753 * @param pVM The VM handle. 754 754 */ 755 DECLINLINE(bool) CPUMIsGuestInPagedProtectedMode(PVM pVM)756 { 757 return (CPUMGetGuestCR0(pV M) & (X86_CR0_PE | X86_CR0_PG)) == (X86_CR0_PE | X86_CR0_PG);755 DECLINLINE(bool) CPUMIsGuestInPagedProtectedMode(PVMCPU pVCpu) 756 { 757 return (CPUMGetGuestCR0(pVCpu) & (X86_CR0_PE | X86_CR0_PG)) == (X86_CR0_PE | X86_CR0_PG); 758 758 } 759 759 … … 775 775 * @param pVM The VM handle. 776 776 */ 777 DECLINLINE(bool) CPUMIsGuestInLongMode(PVM pVM)778 { 779 return (CPUMGetGuestEFER(pV M) & MSR_K6_EFER_LMA) == MSR_K6_EFER_LMA;777 DECLINLINE(bool) CPUMIsGuestInLongMode(PVMCPU pVCpu) 778 { 779 return (CPUMGetGuestEFER(pVCpu) & MSR_K6_EFER_LMA) == MSR_K6_EFER_LMA; 780 780 } 781 781 … … 798 798 * @param pCtx Current CPU context 799 799 */ 800 DECLINLINE(bool) CPUMIsGuestIn64BitCode(PVM pVM, PCCPUMCTXCORE pCtx)801 { 802 if (!CPUMIsGuestInLongMode(pV M))800 DECLINLINE(bool) CPUMIsGuestIn64BitCode(PVMCPU pVCpu, PCCPUMCTXCORE pCtx) 801 { 802 if (!CPUMIsGuestInLongMode(pVCpu)) 803 803 return false; 804 804 … … 827 827 * @param pVM The VM handle. 828 828 */ 829 DECLINLINE(bool) CPUMIsGuestInPAEMode(PVM pVM)830 { 831 return ( CPUMIsGuestInPagedProtectedMode(pV M)832 && (CPUMGetGuestCR4(pV M) & X86_CR4_PAE)833 && !CPUMIsGuestInLongMode(pV M));829 DECLINLINE(bool) CPUMIsGuestInPAEMode(PVMCPU pVCpu) 830 { 831 return ( CPUMIsGuestInPagedProtectedMode(pVCpu) 832 && (CPUMGetGuestCR4(pVCpu) & X86_CR4_PAE) 833 && !CPUMIsGuestInLongMode(pVCpu)); 834 834 } 835 835 … … 852 852 /** @name Hypervisor Register Getters. 853 853 * @{ */ 854 VMMDECL(RTSEL) CPUMGetHyperCS(PVM pVM);855 VMMDECL(RTSEL) CPUMGetHyperDS(PVM pVM);856 VMMDECL(RTSEL) CPUMGetHyperES(PVM pVM);857 VMMDECL(RTSEL) CPUMGetHyperFS(PVM pVM);858 VMMDECL(RTSEL) CPUMGetHyperGS(PVM pVM);859 VMMDECL(RTSEL) CPUMGetHyperSS(PVM pVM);854 VMMDECL(RTSEL) CPUMGetHyperCS(PVMCPU pVCpu); 855 VMMDECL(RTSEL) CPUMGetHyperDS(PVMCPU pVCpu); 856 VMMDECL(RTSEL) CPUMGetHyperES(PVMCPU pVCpu); 857 VMMDECL(RTSEL) CPUMGetHyperFS(PVMCPU pVCpu); 858 VMMDECL(RTSEL) CPUMGetHyperGS(PVMCPU pVCpu); 859 VMMDECL(RTSEL) CPUMGetHyperSS(PVMCPU pVCpu); 860 860 #if 0 /* these are not correct. */ 861 VMMDECL(uint32_t) CPUMGetHyperCR0(PVM pVM);862 VMMDECL(uint32_t) CPUMGetHyperCR2(PVM pVM);863 VMMDECL(uint32_t) CPUMGetHyperCR3(PVM pVM);864 VMMDECL(uint32_t) CPUMGetHyperCR4(PVM pVM);861 VMMDECL(uint32_t) CPUMGetHyperCR0(PVMCPU pVCpu); 862 VMMDECL(uint32_t) CPUMGetHyperCR2(PVMCPU pVCpu); 863 VMMDECL(uint32_t) CPUMGetHyperCR3(PVMCPU pVCpu); 864 VMMDECL(uint32_t) CPUMGetHyperCR4(PVMCPU pVCpu); 865 865 #endif 866 866 /** This register is only saved on fatal traps. */ 867 VMMDECL(uint32_t) CPUMGetHyperEAX(PVM pVM);868 VMMDECL(uint32_t) CPUMGetHyperEBX(PVM pVM);867 VMMDECL(uint32_t) CPUMGetHyperEAX(PVMCPU pVCpu); 868 VMMDECL(uint32_t) CPUMGetHyperEBX(PVMCPU pVCpu); 869 869 /** This register is only saved on fatal traps. */ 870 VMMDECL(uint32_t) CPUMGetHyperECX(PVM pVM);870 VMMDECL(uint32_t) CPUMGetHyperECX(PVMCPU pVCpu); 871 871 /** This register is only saved on fatal traps. */ 872 VMMDECL(uint32_t) CPUMGetHyperEDX(PVM pVM);873 VMMDECL(uint32_t) CPUMGetHyperESI(PVM pVM);874 VMMDECL(uint32_t) CPUMGetHyperEDI(PVM pVM);875 VMMDECL(uint32_t) CPUMGetHyperEBP(PVM pVM);876 VMMDECL(uint32_t) CPUMGetHyperESP(PVM pVM);877 VMMDECL(uint32_t) CPUMGetHyperEFlags(PVM pVM);878 VMMDECL(uint32_t) CPUMGetHyperEIP(PVM pVM);879 VMMDECL(uint64_t) CPUMGetHyperRIP(PVM pVM);880 VMMDECL(uint32_t) CPUMGetHyperIDTR(PVM pVM, uint16_t *pcbLimit);881 VMMDECL(uint32_t) CPUMGetHyperGDTR(PVM pVM, uint16_t *pcbLimit);882 VMMDECL(RTSEL) CPUMGetHyperLDTR(PVM pVM);883 VMMDECL(RTGCUINTREG) CPUMGetHyperDR0(PVM pVM);884 VMMDECL(RTGCUINTREG) CPUMGetHyperDR1(PVM pVM);885 VMMDECL(RTGCUINTREG) CPUMGetHyperDR2(PVM pVM);886 VMMDECL(RTGCUINTREG) CPUMGetHyperDR3(PVM pVM);887 VMMDECL(RTGCUINTREG) CPUMGetHyperDR6(PVM pVM);888 VMMDECL(RTGCUINTREG) CPUMGetHyperDR7(PVM pVM);889 VMMDECL(void) CPUMGetHyperCtx(PVM pVM, PCPUMCTX pCtx);890 VMMDECL(uint32_t) CPUMGetHyperCR3(PVM pVM);872 VMMDECL(uint32_t) CPUMGetHyperEDX(PVMCPU pVCpu); 873 VMMDECL(uint32_t) CPUMGetHyperESI(PVMCPU pVCpu); 874 VMMDECL(uint32_t) CPUMGetHyperEDI(PVMCPU pVCpu); 875 VMMDECL(uint32_t) CPUMGetHyperEBP(PVMCPU pVCpu); 876 VMMDECL(uint32_t) CPUMGetHyperESP(PVMCPU pVCpu); 877 VMMDECL(uint32_t) CPUMGetHyperEFlags(PVMCPU pVCpu); 878 VMMDECL(uint32_t) CPUMGetHyperEIP(PVMCPU pVCpu); 879 VMMDECL(uint64_t) CPUMGetHyperRIP(PVMCPU pVCpu); 880 VMMDECL(uint32_t) CPUMGetHyperIDTR(PVMCPU pVCpu, uint16_t *pcbLimit); 881 VMMDECL(uint32_t) CPUMGetHyperGDTR(PVMCPU pVCpu, uint16_t *pcbLimit); 882 VMMDECL(RTSEL) CPUMGetHyperLDTR(PVMCPU pVCpu); 883 VMMDECL(RTGCUINTREG) CPUMGetHyperDR0(PVMCPU pVCpu); 884 VMMDECL(RTGCUINTREG) CPUMGetHyperDR1(PVMCPU pVCpu); 885 VMMDECL(RTGCUINTREG) CPUMGetHyperDR2(PVMCPU pVCpu); 886 VMMDECL(RTGCUINTREG) CPUMGetHyperDR3(PVMCPU pVCpu); 887 VMMDECL(RTGCUINTREG) CPUMGetHyperDR6(PVMCPU pVCpu); 888 VMMDECL(RTGCUINTREG) CPUMGetHyperDR7(PVMCPU pVCpu); 889 VMMDECL(void) CPUMGetHyperCtx(PVMCPU pVCpu, PCPUMCTX pCtx); 890 VMMDECL(uint32_t) CPUMGetHyperCR3(PVMCPU pVCpu); 891 891 /** @} */ 892 892 893 893 /** @name Hypervisor Register Setters. 894 894 * @{ */ 895 VMMDECL(void) CPUMSetHyperGDTR(PVM pVM, uint32_t addr, uint16_t limit);896 VMMDECL(void) CPUMSetHyperLDTR(PVM pVM, RTSEL SelLDTR);897 VMMDECL(void) CPUMSetHyperIDTR(PVM pVM, uint32_t addr, uint16_t limit);898 VMMDECL(void) CPUMSetHyperCR3(PVM pVM, uint32_t cr3);899 VMMDECL(void) CPUMSetHyperTR(PVM pVM, RTSEL SelTR);900 VMMDECL(void) CPUMSetHyperCS(PVM pVM, RTSEL SelCS);901 VMMDECL(void) CPUMSetHyperDS(PVM pVM, RTSEL SelDS);902 VMMDECL(void) CPUMSetHyperES(PVM pVM, RTSEL SelDS);903 VMMDECL(void) CPUMSetHyperFS(PVM pVM, RTSEL SelDS);904 VMMDECL(void) CPUMSetHyperGS(PVM pVM, RTSEL SelDS);905 VMMDECL(void) CPUMSetHyperSS(PVM pVM, RTSEL SelSS);906 VMMDECL(void) CPUMSetHyperESP(PVM pVM, uint32_t u32ESP);907 VMMDECL(int) CPUMSetHyperEFlags(PVM pVM, uint32_t Efl);908 VMMDECL(void) CPUMSetHyperEIP(PVM pVM, uint32_t u32EIP);909 VMMDECL(void) CPUMSetHyperDR0(PVM pVM, RTGCUINTREG uDr0);910 VMMDECL(void) CPUMSetHyperDR1(PVM pVM, RTGCUINTREG uDr1);911 VMMDECL(void) CPUMSetHyperDR2(PVM pVM, RTGCUINTREG uDr2);912 VMMDECL(void) CPUMSetHyperDR3(PVM pVM, RTGCUINTREG uDr3);913 VMMDECL(void) CPUMSetHyperDR6(PVM pVM, RTGCUINTREG uDr6);914 VMMDECL(void) CPUMSetHyperDR7(PVM pVM, RTGCUINTREG uDr7);915 VMMDECL(void) CPUMSetHyperCtx(PVM pVM, const PCPUMCTX pCtx);916 VMMDECL(int) CPUMRecalcHyperDRx(PVM pVM);895 VMMDECL(void) CPUMSetHyperGDTR(PVMCPU pVCpu, uint32_t addr, uint16_t limit); 896 VMMDECL(void) CPUMSetHyperLDTR(PVMCPU pVCpu, RTSEL SelLDTR); 897 VMMDECL(void) CPUMSetHyperIDTR(PVMCPU pVCpu, uint32_t addr, uint16_t limit); 898 VMMDECL(void) CPUMSetHyperCR3(PVMCPU pVCpu, uint32_t cr3); 899 VMMDECL(void) CPUMSetHyperTR(PVMCPU pVCpu, RTSEL SelTR); 900 VMMDECL(void) CPUMSetHyperCS(PVMCPU pVCpu, RTSEL SelCS); 901 VMMDECL(void) CPUMSetHyperDS(PVMCPU pVCpu, RTSEL SelDS); 902 VMMDECL(void) CPUMSetHyperES(PVMCPU pVCpu, RTSEL SelDS); 903 VMMDECL(void) CPUMSetHyperFS(PVMCPU pVCpu, RTSEL SelDS); 904 VMMDECL(void) CPUMSetHyperGS(PVMCPU pVCpu, RTSEL SelDS); 905 VMMDECL(void) CPUMSetHyperSS(PVMCPU pVCpu, RTSEL SelSS); 906 VMMDECL(void) CPUMSetHyperESP(PVMCPU pVCpu, uint32_t u32ESP); 907 VMMDECL(int) CPUMSetHyperEFlags(PVMCPU pVCpu, uint32_t Efl); 908 VMMDECL(void) CPUMSetHyperEIP(PVMCPU pVCpu, uint32_t u32EIP); 909 VMMDECL(void) CPUMSetHyperDR0(PVMCPU pVCpu, RTGCUINTREG uDr0); 910 VMMDECL(void) CPUMSetHyperDR1(PVMCPU pVCpu, RTGCUINTREG uDr1); 911 VMMDECL(void) CPUMSetHyperDR2(PVMCPU pVCpu, RTGCUINTREG uDr2); 912 VMMDECL(void) CPUMSetHyperDR3(PVMCPU pVCpu, RTGCUINTREG uDr3); 913 VMMDECL(void) CPUMSetHyperDR6(PVMCPU pVCpu, RTGCUINTREG uDr6); 914 VMMDECL(void) CPUMSetHyperDR7(PVMCPU pVCpu, RTGCUINTREG uDr7); 915 VMMDECL(void) CPUMSetHyperCtx(PVMCPU pVCpu, const PCPUMCTX pCtx); 916 VMMDECL(int) CPUMRecalcHyperDRx(PVMCPU pVCpu); 917 917 /** @} */ 918 918 919 VMMDECL(void) CPUMPushHyper(PVM pVM, uint32_t u32); 920 VMMDECL(void) CPUMHyperSetCtxCore(PVM pVM, PCPUMCTXCORE pCtxCore); 921 VMMDECL(PCPUMCTX) CPUMQueryGuestCtxPtr(PVM pVM); 922 VMMDECL(PCPUMCTX) CPUMQueryGuestCtxPtrEx(PVM pVM, PVMCPU pVCpu); 923 VMMDECL(int) CPUMQueryHyperCtxPtr(PVM pVM, PCPUMCTX *ppCtx); 924 VMMDECL(PCCPUMCTXCORE) CPUMGetGuestCtxCore(PVM pVM); 925 VMMDECL(PCCPUMCTXCORE) CPUMGetGuestCtxCoreEx(PVM pVM, PVMCPU pVCpu); 926 VMMDECL(PCCPUMCTXCORE) CPUMGetHyperCtxCore(PVM pVM); 927 VMMDECL(void) CPUMSetGuestCtxCore(PVM pVM, PCCPUMCTXCORE pCtxCore); 928 VMMDECL(int) CPUMRawEnter(PVM pVM, PCPUMCTXCORE pCtxCore); 929 VMMDECL(int) CPUMRawLeave(PVM pVM, PCPUMCTXCORE pCtxCore, int rc); 930 VMMDECL(uint32_t) CPUMRawGetEFlags(PVM pVM, PCPUMCTXCORE pCtxCore); 931 VMMDECL(void) CPUMRawSetEFlags(PVM pVM, PCPUMCTXCORE pCtxCore, uint32_t eflags); 932 VMMDECL(int) CPUMHandleLazyFPU(PVM pVM, PVMCPU pVCpu); 919 VMMDECL(void) CPUMPushHyper(PVMCPU pVCpu, uint32_t u32); 920 VMMDECL(void) CPUMHyperSetCtxCore(PVMCPU pVCpu, PCPUMCTXCORE pCtxCore); 921 VMMDECL(int) CPUMQueryHyperCtxPtr(PVMCPU pVCpu, PCPUMCTX *ppCtx); 922 VMMDECL(PCCPUMCTXCORE) CPUMGetHyperCtxCore(PVMCPU pVCpu); 923 VMMDECL(PCPUMCTX) CPUMQueryGuestCtxPtr(PVMCPU pVCpu); 924 VMMDECL(PCCPUMCTXCORE) CPUMGetGuestCtxCore(PVMCPU pVCpu); 925 VMMDECL(void) CPUMSetGuestCtxCore(PVMCPU pVCpu, PCCPUMCTXCORE pCtxCore); 926 VMMDECL(int) CPUMRawEnter(PVMCPU pVCpu, PCPUMCTXCORE pCtxCore); 927 VMMDECL(int) CPUMRawLeave(PVMCPU pVCpu, PCPUMCTXCORE pCtxCore, int rc); 928 VMMDECL(uint32_t) CPUMRawGetEFlags(PVMCPU pVCpu, PCPUMCTXCORE pCtxCore); 929 VMMDECL(void) CPUMRawSetEFlags(PVMCPU pVCpu, PCPUMCTXCORE pCtxCore, uint32_t eflags); 930 VMMDECL(int) CPUMHandleLazyFPU(PVMCPU pVCpu); 933 931 934 932 /** @name Changed flags … … 953 951 /** @} */ 954 952 955 VMMDECL(unsigned) CPUMGetAndClearChangedFlagsREM(PVM pVM);956 VMMDECL(void) CPUMSetChangedFlags(PVM pVM, uint32_t fChangedFlags);953 VMMDECL(unsigned) CPUMGetAndClearChangedFlagsREM(PVMCPU pVCpu); 954 VMMDECL(void) CPUMSetChangedFlags(PVMCPU pVCpu, uint32_t fChangedFlags); 957 955 VMMDECL(bool) CPUMSupportsFXSR(PVM pVM); 958 956 VMMDECL(bool) CPUMIsHostUsingSysEnter(PVM pVM); 959 957 VMMDECL(bool) CPUMIsHostUsingSysCall(PVM pVM); 960 958 VMMDECL(bool) CPUMIsGuestFPUStateActive(PVMCPU pVCPU); 961 VMMDECL(void) CPUMDeactivateGuestFPUState(PVM pVM); 962 VMMDECL(bool) CPUMIsGuestDebugStateActive(PVM pVM); 963 VMMDECL(void) CPUMDeactivateGuestDebugState(PVM pVM); 959 VMMDECL(void) CPUMDeactivateGuestFPUState(PVMCPU pVCpu); 960 VMMDECL(bool) CPUMIsGuestDebugStateActive(PVMCPU pVCpu); 961 VMMDECL(void) CPUMDeactivateGuestDebugState(PVMCPU pVCpu); 962 VMMDECL(uint32_t) CPUMGetGuestCPL(PVMCPU pVCpu, PCPUMCTXCORE pCtxCore); 964 963 VMMDECL(bool) CPUMAreHiddenSelRegsValid(PVM pVM); 965 VMMDECL(void) CPUMSetHiddenSelRegsValid(PVM pVM, bool fValid);966 VMMDECL(uint32_t) CPUMGetGuestCPL(PVM pVM, PCPUMCTXCORE pCtxCore);967 964 968 965 /** … … 981 978 } CPUMMODE; 982 979 983 VMMDECL(CPUMMODE) CPUMGetGuestMode(PVM pVM);980 VMMDECL(CPUMMODE) CPUMGetGuestMode(PVMCPU pVCpu); 984 981 985 982 -
trunk/include/VBox/cpumdis.h
r12989 r18927 44 44 45 45 #ifdef IN_RING3 46 VMMR3DECL(int) CPUMR3DisasmInstrCPU(PVM pVM, PCPUMCTX pCtx, RTGCPTR GCPtrPC, PDISCPUSTATE pCpu, const char *pszPrefix);46 VMMR3DECL(int) CPUMR3DisasmInstrCPU(PVM pVM, PVMCPU pVCpu, PCPUMCTX pCtx, RTGCPTR GCPtrPC, PDISCPUSTATE pCpu, const char *pszPrefix); 47 47 48 48 # ifdef DEBUG 49 49 /** @deprecated Use DBGFR3DisasInstrCurrentLog(). */ 50 VMMR3DECL(void) CPUMR3DisasmInstr(PVM pVM, PCPUMCTX pCtx, RTGCPTR pc, const char *pszPrefix); 51 /** @deprecated Create new DBGFR3Disas function to do this. */ 52 VMMR3DECL(void) CPUMR3DisasmBlock(PVM pVM, PCPUMCTX pCtx, RTGCPTR pc, const char *pszPrefix, int nrInstructions); 50 VMMR3DECL(void) CPUMR3DisasmInstr(PVM pVM, PVMCPU pVCpu, PCPUMCTX pCtx, RTGCPTR pc, const char *pszPrefix); 53 51 # else 54 52 /** @deprecated Use DBGFR3DisasInstrCurrentLog(). */ 55 # define CPUMR3DisasmInstr(pVM, pCtx, pc, pszPrefix) do {} while (0) 56 /** @deprecated Create new DBGFR3Disas function to do this. */ 57 # define CPUMR3DisasmBlock(pVM, pCtx, pc, pszPrefix, nrInstructions) do {} while (0) 53 # define CPUMR3DisasmInstr(pVM, pVCpu, pCtx, pc, pszPrefix) do {} while (0) 58 54 # endif 59 55 -
trunk/include/VBox/dbgf.h
r14072 r18927 766 766 #define DBGF_SEL_FLAT 1 767 767 768 VMMR3DECL(int) DBGFR3DisasInstrEx(PVM pVM, RTSEL Sel, RTGCPTR GCPtr, unsigned fFlags, char *pszOutput, uint32_t cchOutput, uint32_t *pcbInstr);769 VMMR3DECL(int) DBGFR3DisasInstr(PVM pVM, RTSEL Sel, RTGCPTR GCPtr, char *pszOutput, uint32_t cbOutput);768 VMMR3DECL(int) DBGFR3DisasInstrEx(PVM pVM, PVMCPU pVCpu, RTSEL Sel, RTGCPTR GCPtr, unsigned fFlags, char *pszOutput, uint32_t cchOutput, uint32_t *pcbInstr); 769 VMMR3DECL(int) DBGFR3DisasInstr(PVM pVM, PVMCPU pVCpu, RTSEL Sel, RTGCPTR GCPtr, char *pszOutput, uint32_t cbOutput); 770 770 VMMR3DECL(int) DBGFR3DisasInstrCurrent(PVM pVM, char *pszOutput, uint32_t cbOutput); 771 771 VMMR3DECL(int) DBGFR3DisasInstrCurrentLogInternal(PVM pVM, const char *pszPrefix); … … 785 785 #endif 786 786 787 VMMR3DECL(int) DBGFR3DisasInstrLogInternal(PVM pVM, RTSEL Sel, RTGCPTR GCPtr);787 VMMR3DECL(int) DBGFR3DisasInstrLogInternal(PVM pVM, PVMCPU pVCpu, RTSEL Sel, RTGCPTR GCPtr); 788 788 789 789 /** @def DBGFR3DisasInstrLog … … 805 805 VMMR3DECL(int) DBGFR3MemRead(PVM pVM, PCDBGFADDRESS pAddress, void *pvBuf, size_t cbRead); 806 806 VMMR3DECL(int) DBGFR3MemReadString(PVM pVM, PCDBGFADDRESS pAddress, char *pszBuf, size_t cbBuf); 807 VMMR3DECL(int) DBGFR3ReadGCVirt(PVM pVM, PVMCPU pVCpu, void *pvDst, RTGCPTR GCPtr, size_t cb); 808 VMMR3DECL(int) DBGFR3WriteGCVirt(PVM pVM, PVMCPU pVCpu, RTGCPTR GCPtrDst, const void *pvSrc, size_t cb); 807 809 808 810 -
trunk/include/VBox/em.h
r18770 r18927 80 80 } EMSTATE; 81 81 82 VMMDECL(EMSTATE) EMGetState(PVM pVM);82 VMMDECL(EMSTATE) EMGetState(PVMCPU pVCpu); 83 83 84 84 /** @name Callback handlers for instruction emulation functions. … … 117 117 #define EMIsRawRing0Enabled(pVM) ((pVM)->fRawR0Enabled) 118 118 119 VMMDECL(void) EMSetInhibitInterruptsPC(PVM pVM, RTGCUINTPTR PC);120 VMMDECL(RTGCUINTPTR) EMGetInhibitInterruptsPC(PVM pVM );121 VMMDECL(int) EMInterpretDisasOne(PVM pVM, P CCPUMCTXCORE pCtxCore, PDISCPUSTATE pCpu, unsigned *pcbInstr);122 VMMDECL(int) EMInterpretDisasOneEx(PVM pVM, RTGCUINTPTR GCPtrInstr, PCCPUMCTXCORE pCtxCore,123 PDISCPUSTATE pCpu, unsigned *pcbInstr);124 VMMDECL(int) EMInterpretInstruction(PVM pVM, P CPUMCTXCORE pRegFrame, RTGCPTR pvFault, uint32_t *pcbSize);125 VMMDECL(int) EMInterpretInstructionCPU(PVM pVM, P DISCPUSTATE pCpu, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, uint32_t *pcbSize);126 VMMDECL(int) EMInterpretCpuId(PVM pVM, P CPUMCTXCORE pRegFrame);127 VMMDECL(int) EMInterpretRdtsc(PVM pVM, P CPUMCTXCORE pRegFrame);128 VMMDECL(int) EMInterpretRdpmc(PVM pVM, P CPUMCTXCORE pRegFrame);129 VMMDECL(int) EMInterpretRdtscp(PVM pVM, P CPUMCTX pCtx);130 VMMDECL(int) EMInterpretInvlpg(PVM pVM, P CPUMCTXCORE pRegFrame, RTGCPTR pAddrGC);131 VMMDECL(int) EMInterpretIret(PVM pVM, P CPUMCTXCORE pRegFrame);132 VMMDECL(int) EMInterpretDRxWrite(PVM pVM, P CPUMCTXCORE pRegFrame, uint32_t DestRegDrx, uint32_t SrcRegGen);133 VMMDECL(int) EMInterpretDRxRead(PVM pVM, P CPUMCTXCORE pRegFrame, uint32_t DestRegGen, uint32_t SrcRegDrx);134 VMMDECL(int) EMInterpretCRxWrite(PVM pVM, P CPUMCTXCORE pRegFrame, uint32_t DestRegCrx, uint32_t SrcRegGen);135 VMMDECL(int) EMInterpretCRxRead(PVM pVM, P CPUMCTXCORE pRegFrame, uint32_t DestRegGen, uint32_t SrcRegCrx);136 VMMDECL(int) EMInterpretLMSW(PVM pVM, P CPUMCTXCORE pRegFrame, uint16_t u16Data);137 VMMDECL(int) EMInterpretCLTS(PVM pVM );138 VMMDECL(int) EMInterpretPortIO(PVM pVM, P CPUMCTXCORE pCtxCore, PDISCPUSTATE pCpu, uint32_t cbOp);139 VMMDECL(int) EMInterpretRdmsr(PVM pVM, P CPUMCTXCORE pRegFrame);140 VMMDECL(int) EMInterpretWrmsr(PVM pVM, P CPUMCTXCORE pRegFrame);119 VMMDECL(void) EMSetInhibitInterruptsPC(PVM pVM, PVMCPU pVCpu, RTGCUINTPTR PC); 120 VMMDECL(RTGCUINTPTR) EMGetInhibitInterruptsPC(PVM pVM, PVMCPU pVCpu); 121 VMMDECL(int) EMInterpretDisasOne(PVM pVM, PVMCPU pVCpu, PCCPUMCTXCORE pCtxCore, PDISCPUSTATE pCpu, unsigned *pcbInstr); 122 VMMDECL(int) EMInterpretDisasOneEx(PVM pVM, PVMCPU pVCpu, RTGCUINTPTR GCPtrInstr, PCCPUMCTXCORE pCtxCore, 123 PDISCPUSTATE pDISState, unsigned *pcbInstr); 124 VMMDECL(int) EMInterpretInstruction(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, uint32_t *pcbSize); 125 VMMDECL(int) EMInterpretInstructionCPU(PVM pVM, PVMCPU pVCpu, PDISCPUSTATE pDISState, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault, uint32_t *pcbSize); 126 VMMDECL(int) EMInterpretCpuId(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame); 127 VMMDECL(int) EMInterpretRdtsc(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame); 128 VMMDECL(int) EMInterpretRdpmc(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame); 129 VMMDECL(int) EMInterpretRdtscp(PVM pVM, PVMCPU pVCpu, PCPUMCTX pCtx); 130 VMMDECL(int) EMInterpretInvlpg(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, RTGCPTR pAddrGC); 131 VMMDECL(int) EMInterpretIret(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame); 132 VMMDECL(int) EMInterpretDRxWrite(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, uint32_t DestRegDrx, uint32_t SrcRegGen); 133 VMMDECL(int) EMInterpretDRxRead(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, uint32_t DestRegGen, uint32_t SrcRegDrx); 134 VMMDECL(int) EMInterpretCRxWrite(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, uint32_t DestRegCrx, uint32_t SrcRegGen); 135 VMMDECL(int) EMInterpretCRxRead(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, uint32_t DestRegGen, uint32_t SrcRegCrx); 136 VMMDECL(int) EMInterpretLMSW(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, uint16_t u16Data); 137 VMMDECL(int) EMInterpretCLTS(PVM pVM, PVMCPU pVCpu); 138 VMMDECL(int) EMInterpretPortIO(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pCtxCore, PDISCPUSTATE pCpu, uint32_t cbOp); 139 VMMDECL(int) EMInterpretRdmsr(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame); 140 VMMDECL(int) EMInterpretWrmsr(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame); 141 141 142 142 /** @name Assembly routines … … 173 173 VMMR3DECL(int) EMR3Term(PVM pVM); 174 174 VMMR3DECL(int) EMR3TermCPU(PVM pVM); 175 VMMR3DECL(DECLNORETURN(void)) EMR3FatalError(PVM pVM, int rc);176 VMMR3DECL(int) EMR3ExecuteVM(PVM pVM, RTCPUID idCpu);177 VMMR3DECL(int) EMR3CheckRawForcedActions(PVM pVM );175 VMMR3DECL(DECLNORETURN(void)) EMR3FatalError(PVMCPU pVCpu, int rc); 176 VMMR3DECL(int) EMR3ExecuteVM(PVM pVM, PVMCPU pVCpu); 177 VMMR3DECL(int) EMR3CheckRawForcedActions(PVM pVM, PVMCPU pVCpu); 178 178 VMMR3DECL(int) EMR3Interpret(PVM pVM); 179 179 -
trunk/include/VBox/err.h
r18566 r18927 74 74 /** Page directory pointer not present. */ 75 75 #define VERR_PAGE_DIRECTORY_PTR_NOT_PRESENT (-1014) 76 /** Raw mode doesn't support SMP. */ 77 #define VERR_RAW_MODE_INVALID_SMP (-1015) 76 78 /** @} */ 77 79 -
trunk/include/VBox/hwaccm.h
r17328 r18927 73 73 * @param pCtx CPU context 74 74 */ 75 #define HWACCMCanEmulateIoBlock(pV M) (!CPUMIsGuestInPagedProtectedMode(pVM))75 #define HWACCMCanEmulateIoBlock(pVCpu) (!CPUMIsGuestInPagedProtectedMode(pVCpu)) 76 76 #define HWACCMCanEmulateIoBlockEx(pCtx) (!CPUMIsGuestInPagedProtectedModeEx(pCtx)) 77 77 … … 127 127 VMMR3DECL(bool) HWACCMR3IsNestedPagingActive(PVM pVM); 128 128 VMMR3DECL(bool) HWACCMR3IsAllowed(PVM pVM); 129 VMMR3DECL(void) HWACCMR3PagingModeChanged(PVM pVM, P GMMODE enmShadowMode, PGMMODE enmGuestMode);129 VMMR3DECL(void) HWACCMR3PagingModeChanged(PVM pVM, PVMCPU pVCpu, PGMMODE enmShadowMode, PGMMODE enmGuestMode); 130 130 VMMR3DECL(bool) HWACCMR3IsVPIDActive(PVM pVM); 131 131 VMMR3DECL(int) HWACCMR3InjectNMI(PVM pVM); -
trunk/include/VBox/mm.h
r18792 r18927 252 252 253 253 VMMR3DECL(int) MMR3HCPhys2HCVirt(PVM pVM, RTHCPHYS HCPhys, void **ppv); 254 VMMR3DECL(int) MMR3ReadGCVirt(PVM pVM, void *pvDst, RTGCPTR GCPtr, size_t cb);255 VMMR3DECL(int) MMR3WriteGCVirt(PVM pVM, RTGCPTR GCPtrDst, const void *pvSrc, size_t cb);256 254 257 255 -
trunk/include/VBox/pdmdev.h
r18660 r18927 2843 2843 DECLR3CALLBACKMEMBER(int, pfnUnregisterVMMDevHeap,(PPDMDEVINS pDevIns, RTGCPHYS GCPhys)); 2844 2844 2845 /** 2846 * Gets the VMCPU handle. Restricted API. 2847 * 2848 * @returns VMCPU Handle. 2849 * @param pDevIns Device instance. 2850 */ 2851 DECLR3CALLBACKMEMBER(PVMCPU, pfnGetVMCPU,(PPDMDEVINS pDevIns)); 2852 2845 2853 /** @} */ 2846 2854 … … 2984 2992 DECLRCCALLBACKMEMBER(PVM, pfnGetVM,(PPDMDEVINS pDevIns)); 2985 2993 2994 /** 2995 * Gets the VMCPU handle. Restricted API. 2996 * 2997 * @returns VMCPU Handle. 2998 * @param pDevIns Device instance. 2999 */ 3000 DECLRCCALLBACKMEMBER(PVMCPU, pfnGetVMCPU,(PPDMDEVINS pDevIns)); 3001 2986 3002 /** Just a safety precaution. */ 2987 3003 uint32_t u32TheEnd; … … 3129 3145 */ 3130 3146 DECLR0CALLBACKMEMBER(bool, pfnCanEmulateIoBlock,(PPDMDEVINS pDevIns)); 3147 3148 /** 3149 * Gets the VMCPU handle. Restricted API. 3150 * 3151 * @returns VMCPU Handle. 3152 * @param pDevIns Device instance. 3153 */ 3154 DECLR0CALLBACKMEMBER(PVMCPU, pfnGetVMCPU,(PPDMDEVINS pDevIns)); 3131 3155 3132 3156 /** Just a safety precaution. */ … … 3715 3739 } 3716 3740 3741 /** 3742 * @copydoc PDMDEVHLPR3::pfnGetVMCPU 3743 */ 3744 DECLINLINE(PVMCPU) PDMDevHlpGetVMCPU(PPDMDEVINS pDevIns) 3745 { 3746 return pDevIns->CTX_SUFF(pDevHlp)->pfnGetVMCPU(pDevIns); 3747 } 3748 3717 3749 #ifdef IN_RING0 3718 3750 /** -
trunk/include/VBox/pgm.h
r18677 r18927 286 286 VMMDECL(int) PGMRegisterStringFormatTypes(void); 287 287 VMMDECL(void) PGMDeregisterStringFormatTypes(void); 288 VMMDECL(RTHCPHYS) PGMGetHyperCR3(PVM pVM); 289 VMMDECL(RTHCPHYS) PGMGetNestedCR3(PVM pVM, PGMMODE enmShadowMode); 290 VMMDECL(RTHCPHYS) PGMGetHyper32BitCR3(PVM pVM); 291 VMMDECL(RTHCPHYS) PGMGetHyperPaeCR3(PVM pVM); 292 VMMDECL(RTHCPHYS) PGMGetHyperAmd64CR3(PVM pVM); 288 VMMDECL(RTHCPHYS) PGMGetHyperCR3(PVMCPU pVCpu); 289 VMMDECL(RTHCPHYS) PGMGetNestedCR3(PVMCPU pVCpu, PGMMODE enmShadowMode); 293 290 VMMDECL(RTHCPHYS) PGMGetInterHCCR3(PVM pVM); 294 VMMDECL(RTHCPHYS) PGMGetInterRCCR3(PVM pVM );291 VMMDECL(RTHCPHYS) PGMGetInterRCCR3(PVM pVM, PVMCPU pVCpu); 295 292 VMMDECL(RTHCPHYS) PGMGetInter32BitCR3(PVM pVM); 296 293 VMMDECL(RTHCPHYS) PGMGetInterPaeCR3(PVM pVM); 297 294 VMMDECL(RTHCPHYS) PGMGetInterAmd64CR3(PVM pVM); 298 VMMDECL(int) PGMTrap0eHandler(PVM pVM, RTGCUINT uErr, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault);299 VMMDECL(int) PGMPrefetchPage(PVM pVM, RTGCPTR GCPtrPage);300 VMMDECL(int) PGMVerifyAccess(PVM pVM, RTGCPTR Addr, uint32_t cbSize, uint32_t fAccess);301 VMMDECL(int) PGMIsValidAccess(PVM pVM, RTGCPTR Addr, uint32_t cbSize, uint32_t fAccess);302 VMMDECL(int) PGMInterpretInstruction(PVM pVM, P CPUMCTXCORE pRegFrame, RTGCPTR pvFault);295 VMMDECL(int) PGMTrap0eHandler(PVM pVM, PVMCPU pVCpu, RTGCUINT uErr, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault); 296 VMMDECL(int) PGMPrefetchPage(PVM pVM, PVMCPU pVCpu, RTGCPTR GCPtrPage); 297 VMMDECL(int) PGMVerifyAccess(PVM pVM, PVMCPU pVCpu, RTGCPTR Addr, uint32_t cbSize, uint32_t fAccess); 298 VMMDECL(int) PGMIsValidAccess(PVM pVM, PVMCPU pVCpu, RTGCPTR Addr, uint32_t cbSize, uint32_t fAccess); 299 VMMDECL(int) PGMInterpretInstruction(PVM pVM, PVMCPU pVCpu, PCPUMCTXCORE pRegFrame, RTGCPTR pvFault); 303 300 VMMDECL(int) PGMMap(PVM pVM, RTGCPTR GCPtr, RTHCPHYS HCPhys, uint32_t cbPages, unsigned fFlags); 304 301 VMMDECL(int) PGMMapSetPage(PVM pVM, RTGCPTR GCPtr, uint64_t cb, uint64_t fFlags); … … 311 308 VMMDECL(void) PGMMapCheck(PVM pVM); 312 309 #endif 313 VMMDECL(int) PGMShwGetPage(PVM pVM, RTGCPTR GCPtr, uint64_t *pfFlags, PRTHCPHYS pHCPhys);314 VMMDECL(int) PGMShwSetPage(PVM pVM, RTGCPTR GCPtr, size_t cb, uint64_t fFlags);315 VMMDECL(int) PGMShwModifyPage(PVM pVM, RTGCPTR GCPtr, size_t cb, uint64_t fFlags, uint64_t fMask);316 VMMDECL(int) PGMGstGetPage(PVM pVM, RTGCPTR GCPtr, uint64_t *pfFlags, PRTGCPHYS pGCPhys);317 VMMDECL(bool) PGMGstIsPagePresent(PVM pVM, RTGCPTR GCPtr);318 VMMDECL(int) PGMGstSetPage(PVM pVM, RTGCPTR GCPtr, size_t cb, uint64_t fFlags);319 VMMDECL(int) PGMGstModifyPage(PVM pVM, RTGCPTR GCPtr, size_t cb, uint64_t fFlags, uint64_t fMask);320 VMMDECL(X86PDPE) PGMGstGetPaePDPtr(PVM pVM, unsigned iPdPt);321 322 VMMDECL(int) PGMInvalidatePage(PVM pVM, RTGCPTR GCPtrPage);323 VMMDECL(int) PGMFlushTLB(PVM pVM, uint64_t cr3, bool fGlobal);324 VMMDECL(int) PGMSyncCR3(PVM pVM, uint64_t cr0, uint64_t cr3, uint64_t cr4, bool fGlobal);325 VMMDECL(int) PGMUpdateCR3(PVM pVM, uint64_t cr3);326 VMMDECL(int) PGMChangeMode(PVM pVM, uint64_t cr0, uint64_t cr4, uint64_t efer);327 VMMDECL(PGMMODE) PGMGetGuestMode(PVM pVM);328 VMMDECL(PGMMODE) PGMGetShadowMode(PVM pVM);310 VMMDECL(int) PGMShwGetPage(PVM pVM, PVMCPU pVCpu, RTGCPTR GCPtr, uint64_t *pfFlags, PRTHCPHYS pHCPhys); 311 VMMDECL(int) PGMShwSetPage(PVM pVM, PVMCPU pVCpu, RTGCPTR GCPtr, size_t cb, uint64_t fFlags); 312 VMMDECL(int) PGMShwModifyPage(PVM pVM, PVMCPU pVCpu, RTGCPTR GCPtr, size_t cb, uint64_t fFlags, uint64_t fMask); 313 VMMDECL(int) PGMGstGetPage(PVM pVM, PVMCPU pVCpu, RTGCPTR GCPtr, uint64_t *pfFlags, PRTGCPHYS pGCPhys); 314 VMMDECL(bool) PGMGstIsPagePresent(PVM pVM, PVMCPU pVCpu, RTGCPTR GCPtr); 315 VMMDECL(int) PGMGstSetPage(PVM pVM, PVMCPU pVCpu, RTGCPTR GCPtr, size_t cb, uint64_t fFlags); 316 VMMDECL(int) PGMGstModifyPage(PVM pVM, PVMCPU pVCpu, RTGCPTR GCPtr, size_t cb, uint64_t fFlags, uint64_t fMask); 317 VMMDECL(X86PDPE) PGMGstGetPaePDPtr(PVMCPU pVCpu, unsigned iPdPt); 318 319 VMMDECL(int) PGMInvalidatePage(PVM pVM, PVMCPU pVCpu, RTGCPTR GCPtrPage); 320 VMMDECL(int) PGMFlushTLB(PVM pVM, PVMCPU pVCpu, uint64_t cr3, bool fGlobal); 321 VMMDECL(int) PGMSyncCR3(PVM pVM, PVMCPU pVCpu, uint64_t cr0, uint64_t cr3, uint64_t cr4, bool fGlobal); 322 VMMDECL(int) PGMUpdateCR3(PVM pVM, PVMCPU pVCpu, uint64_t cr3); 323 VMMDECL(int) PGMChangeMode(PVM pVM, PVMCPU pVCpu, uint64_t cr0, uint64_t cr4, uint64_t efer); 324 VMMDECL(PGMMODE) PGMGetGuestMode(PVMCPU pVCpu); 325 VMMDECL(PGMMODE) PGMGetShadowMode(PVMCPU pVCpu); 329 326 VMMDECL(PGMMODE) PGMGetHostMode(PVM pVM); 330 327 VMMDECL(const char *) PGMGetModeName(PGMMODE enmMode); … … 348 345 VMMDECL(bool) PGMHandlerPhysicalIsRegistered(PVM pVM, RTGCPHYS GCPhys); 349 346 VMMDECL(bool) PGMHandlerVirtualIsRegistered(PVM pVM, RTGCPTR GCPtr); 350 VMMDECL(bool) PGMPhysIsA20Enabled(PVM pVM);347 VMMDECL(bool) PGMPhysIsA20Enabled(PVMCPU pVCpu); 351 348 VMMDECL(bool) PGMPhysIsGCPhysValid(PVM pVM, RTGCPHYS GCPhys); 352 349 VMMDECL(bool) PGMPhysIsGCPhysNormal(PVM pVM, RTGCPHYS GCPhys); 353 350 VMMDECL(int) PGMPhysGCPhys2HCPhys(PVM pVM, RTGCPHYS GCPhys, PRTHCPHYS pHCPhys); 354 VMMDECL(int) PGMPhysGCPtr2GCPhys(PVM pVM, RTGCPTR GCPtr, PRTGCPHYS pGCPhys);355 VMMDECL(int) PGMPhysGCPtr2HCPhys(PVM pVM, RTGCPTR GCPtr, PRTHCPHYS pHCPhys);351 VMMDECL(int) PGMPhysGCPtr2GCPhys(PVMCPU pVCpu, RTGCPTR GCPtr, PRTGCPHYS pGCPhys); 352 VMMDECL(int) PGMPhysGCPtr2HCPhys(PVMCPU pVCpu, RTGCPTR GCPtr, PRTHCPHYS pHCPhys); 356 353 VMMDECL(void) PGMPhysInvalidatePageGCMapTLB(PVM pVM); 357 354 VMMDECL(void) PGMPhysInvalidatePageR0MapTLB(PVM pVM); … … 360 357 VMMDECL(int) PGMPhysGCPhys2CCPtr(PVM pVM, RTGCPHYS GCPhys, void **ppv, PPGMPAGEMAPLOCK pLock); 361 358 VMMDECL(int) PGMPhysGCPhys2CCPtrReadOnly(PVM pVM, RTGCPHYS GCPhys, void const **ppv, PPGMPAGEMAPLOCK pLock); 362 VMMDECL(int) PGMPhysGCPtr2CCPtr(PVM pVM, RTGCPTR GCPtr, void **ppv, PPGMPAGEMAPLOCK pLock);363 VMMDECL(int) PGMPhysGCPtr2CCPtrReadOnly(PVM pVM, RTGCPTR GCPtr, void const **ppv, PPGMPAGEMAPLOCK pLock);359 VMMDECL(int) PGMPhysGCPtr2CCPtr(PVMCPU pVCpu, RTGCPTR GCPtr, void **ppv, PPGMPAGEMAPLOCK pLock); 360 VMMDECL(int) PGMPhysGCPtr2CCPtrReadOnly(PVMCPU pVCpu, RTGCPTR GCPtr, void const **ppv, PPGMPAGEMAPLOCK pLock); 364 361 VMMDECL(void) PGMPhysReleasePageMappingLock(PVM pVM, PPGMPAGEMAPLOCK pLock); 365 362 … … 384 381 VMMDECL(RTR3PTR) PGMPhysGCPhys2R3PtrAssert(PVM pVM, RTGCPHYS GCPhys, RTUINT cbRange); 385 382 #endif 386 VMMDECL(int) PGMPhysGCPtr2R3Ptr(PVM pVM, RTGCPTR GCPtr, PRTR3PTR pR3Ptr);383 VMMDECL(int) PGMPhysGCPtr2R3Ptr(PVMCPU pVCpu, RTGCPTR GCPtr, PRTR3PTR pR3Ptr); 387 384 VMMDECL(int) PGMPhysRead(PVM pVM, RTGCPHYS GCPhys, void *pvBuf, size_t cbRead); 388 385 VMMDECL(int) PGMPhysWrite(PVM pVM, RTGCPHYS GCPhys, const void *pvBuf, size_t cbWrite); … … 390 387 #ifndef IN_RC /* Only ring 0 & 3. */ 391 388 VMMDECL(int) PGMPhysSimpleWriteGCPhys(PVM pVM, RTGCPHYS GCPhysDst, const void *pvSrc, size_t cb); 392 VMMDECL(int) PGMPhysSimpleReadGCPtr(PVM pVM, void *pvDst, RTGCPTR GCPtrSrc, size_t cb);393 VMMDECL(int) PGMPhysSimpleWriteGCPtr(PVM pVM, RTGCPTR GCPtrDst, const void *pvSrc, size_t cb);394 VMMDECL(int) PGMPhysReadGCPtr(PVM pVM, void *pvDst, RTGCPTR GCPtrSrc, size_t cb);395 VMMDECL(int) PGMPhysWriteGCPtr(PVM pVM, RTGCPTR GCPtrDst, const void *pvSrc, size_t cb);396 VMMDECL(int) PGMPhysSimpleDirtyWriteGCPtr(PVM pVM, RTGCPTR GCPtrDst, const void *pvSrc, size_t cb);389 VMMDECL(int) PGMPhysSimpleReadGCPtr(PVMCPU pVCpu, void *pvDst, RTGCPTR GCPtrSrc, size_t cb); 390 VMMDECL(int) PGMPhysSimpleWriteGCPtr(PVMCPU pVCpu, RTGCPTR GCPtrDst, const void *pvSrc, size_t cb); 391 VMMDECL(int) PGMPhysReadGCPtr(PVMCPU pVCpu, void *pvDst, RTGCPTR GCPtrSrc, size_t cb); 392 VMMDECL(int) PGMPhysWriteGCPtr(PVMCPU pVCpu, RTGCPTR GCPtrDst, const void *pvSrc, size_t cb); 393 VMMDECL(int) PGMPhysSimpleDirtyWriteGCPtr(PVMCPU pVCpu, RTGCPTR GCPtrDst, const void *pvSrc, size_t cb); 397 394 #endif /* !IN_RC */ 398 VMMDECL(int) PGMPhysInterpretedRead(PVM pVM, PCPUMCTXCORE pCtxCore, void *pvDst, RTGCPTR GCPtrSrc, size_t cb);399 VMMDECL(int) PGMPhysInterpretedReadNoHandlers(PVM pVM, PCPUMCTXCORE pCtxCore, void *pvDst, RTGCUINTPTR GCPtrSrc, size_t cb, bool fRaiseTrap);400 VMMDECL(int) PGMPhysInterpretedWriteNoHandlers(PVM pVM, PCPUMCTXCORE pCtxCore, RTGCPTR GCPtrDst, void const *pvSrc, size_t cb, bool fRaiseTrap);395 VMMDECL(int) PGMPhysInterpretedRead(PVMCPU pVCpu, PCPUMCTXCORE pCtxCore, void *pvDst, RTGCPTR GCPtrSrc, size_t cb); 396 VMMDECL(int) PGMPhysInterpretedReadNoHandlers(PVMCPU pVCpu, PCPUMCTXCORE pCtxCore, void *pvDst, RTGCUINTPTR GCPtrSrc, size_t cb, bool fRaiseTrap); 397 VMMDECL(int) PGMPhysInterpretedWriteNoHandlers(PVMCPU pVCpu, PCPUMCTXCORE pCtxCore, RTGCPTR GCPtrDst, void const *pvSrc, size_t cb, bool fRaiseTrap); 401 398 #ifdef VBOX_STRICT 402 399 VMMDECL(unsigned) PGMAssertHandlerAndFlagsInSync(PVM pVM); 403 400 VMMDECL(unsigned) PGMAssertNoMappingConflicts(PVM pVM); 404 VMMDECL(unsigned) PGMAssertCR3(PVM pVM, uint64_t cr3, uint64_t cr4);401 VMMDECL(unsigned) PGMAssertCR3(PVM pVM, PVMCPU pVCpu, uint64_t cr3, uint64_t cr4); 405 402 #endif /* VBOX_STRICT */ 406 403 … … 440 437 */ 441 438 VMMR0DECL(int) PGMR0PhysAllocateHandyPages(PVM pVM); 442 VMMR0DECL(int) PGMR0Trap0eHandlerNestedPaging(PVM pVM, P GMMODE enmShwPagingMode, RTGCUINT uErr, PCPUMCTXCORE pRegFrame, RTGCPHYS pvFault);439 VMMR0DECL(int) PGMR0Trap0eHandlerNestedPaging(PVM pVM, PVMCPU pVCpu, PGMMODE enmShwPagingMode, RTGCUINT uErr, PCPUMCTXCORE pRegFrame, RTGCPHYS pvFault); 443 440 # ifdef VBOX_WITH_2X_4GB_ADDR_SPACE 444 441 VMMR0DECL(int) PGMR0DynMapInit(void); … … 467 464 VMMR3DECL(int) PGMR3TermCPU(PVM pVM); 468 465 VMMR3DECL(int) PGMR3LockCall(PVM pVM); 469 VMMR3DECL(int) PGMR3ChangeMode(PVM pVM, P GMMODE enmGuestMode);466 VMMR3DECL(int) PGMR3ChangeMode(PVM pVM, PVMCPU pVCpu, PGMMODE enmGuestMode); 470 467 471 468 VMMR3DECL(int) PGMR3PhysRegisterRam(PVM pVM, RTGCPHYS GCPhys, RTGCPHYS cb, const char *pszDesc); … … 497 494 VMMR3DECL(int) PGMR3PhysRomProtect(PVM pVM, RTGCPHYS GCPhys, RTGCPHYS cb, PGMROMPROT enmProt); 498 495 VMMR3DECL(int) PGMR3PhysRegister(PVM pVM, void *pvRam, RTGCPHYS GCPhys, size_t cb, unsigned fFlags, const SUPPAGE *paPages, const char *pszDesc); 499 VMMDECL(void) PGMR3PhysSetA20(PVM pVM, bool fEnable);496 VMMDECL(void) PGMR3PhysSetA20(PVMCPU pVCpu, bool fEnable); 500 497 /** @name PGMR3MapPT flags. 501 498 * @{ */ -
trunk/include/VBox/rem.h
r18660 r18927 65 65 REMR3DECL(int) REMR3Term(PVM pVM); 66 66 REMR3DECL(void) REMR3Reset(PVM pVM); 67 REMR3DECL(int) REMR3Run(PVM pVM );68 REMR3DECL(int) REMR3EmulateInstruction(PVM pVM );69 REMR3DECL(int) REMR3Step(PVM pVM );67 REMR3DECL(int) REMR3Run(PVM pVM, PVMCPU pVCpu); 68 REMR3DECL(int) REMR3EmulateInstruction(PVM pVM, PVMCPU pVCpu); 69 REMR3DECL(int) REMR3Step(PVM pVM, PVMCPU pVCpu); 70 70 REMR3DECL(int) REMR3BreakpointSet(PVM pVM, RTGCUINTPTR Address); 71 71 REMR3DECL(int) REMR3BreakpointClear(PVM pVM, RTGCUINTPTR Address); 72 REMR3DECL(int) REMR3State(PVM pVM );73 REMR3DECL(int) REMR3StateBack(PVM pVM );74 REMR3DECL(void) REMR3StateUpdate(PVM pVM );75 REMR3DECL(void) REMR3A20Set(PVM pVM, bool fEnable);72 REMR3DECL(int) REMR3State(PVM pVM, PVMCPU pVCpu); 73 REMR3DECL(int) REMR3StateBack(PVM pVM, PVMCPU pVCpu); 74 REMR3DECL(void) REMR3StateUpdate(PVM pVM, PVMCPU pVCpu); 75 REMR3DECL(void) REMR3A20Set(PVM pVM, PVMCPU pVCpu, bool fEnable); 76 76 REMR3DECL(int) REMR3DisasEnableStepping(PVM pVM, bool fEnable); 77 REMR3DECL(void) REMR3ReplayInvalidatedPages(PVM pVM );77 REMR3DECL(void) REMR3ReplayInvalidatedPages(PVM pVM, PVMCPU pVCpu); 78 78 REMR3DECL(void) REMR3ReplayHandlerNotifications(PVM pVM); 79 REMR3DECL(int) REMR3NotifyCodePageChanged(PVM pVM, RTGCPTR pvCodePage);79 REMR3DECL(int) REMR3NotifyCodePageChanged(PVM pVM, PVMCPU pVCpu, RTGCPTR pvCodePage); 80 80 REMR3DECL(void) REMR3NotifyPhysRamRegister(PVM pVM, RTGCPHYS GCPhys, RTGCPHYS cb, unsigned fFlags); 81 81 /** @name Flags for REMR3NotifyPhysRamRegister. … … 89 89 REMR3DECL(void) REMR3NotifyHandlerPhysicalDeregister(PVM pVM, PGMPHYSHANDLERTYPE enmType, RTGCPHYS GCPhys, RTGCPHYS cb, bool fHasHCHandler, bool fRestoreAsRAM); 90 90 REMR3DECL(void) REMR3NotifyHandlerPhysicalModify(PVM pVM, PGMPHYSHANDLERTYPE enmType, RTGCPHYS GCPhysOld, RTGCPHYS GCPhysNew, RTGCPHYS cb, bool fHasHCHandler, bool fRestoreAsRAM); 91 REMR3DECL(void) REMR3NotifyPendingInterrupt(PVM pVM, uint8_t u8Interrupt);92 REMR3DECL(uint32_t) REMR3QueryPendingInterrupt(PVM pVM );93 REMR3DECL(void) REMR3NotifyInterruptSet(PVM pVM );94 REMR3DECL(void) REMR3NotifyInterruptClear(PVM pVM );91 REMR3DECL(void) REMR3NotifyPendingInterrupt(PVM pVM, PVMCPU pVCpu, uint8_t u8Interrupt); 92 REMR3DECL(uint32_t) REMR3QueryPendingInterrupt(PVM pVM, PVMCPU pVCpu); 93 REMR3DECL(void) REMR3NotifyInterruptSet(PVM pVM, PVMCPU pVCpu); 94 REMR3DECL(void) REMR3NotifyInterruptClear(PVM pVM, PVMCPU pVCpu); 95 95 REMR3DECL(void) REMR3NotifyTimerPending(PVM pVM); 96 96 REMR3DECL(void) REMR3NotifyDmaPending(PVM pVM); -
trunk/include/VBox/selm.h
r17616 r18927 53 53 VMMDECL(RTSEL) SELMGetHyperTSSTrap08(PVM pVM); 54 54 VMMDECL(RTRCPTR) SELMGetHyperGDT(PVM pVM); 55 VMMDECL(int) SELMGetTSSInfo(PVM pVM, P RTGCUINTPTR pGCPtrTss, PRTGCUINTPTR pcbTss, bool *pfCanHaveIOBitmap);55 VMMDECL(int) SELMGetTSSInfo(PVM pVM, PVMCPU pVCpu, PRTGCUINTPTR pGCPtrTss, PRTGCUINTPTR pcbTss, bool *pfCanHaveIOBitmap); 56 56 VMMDECL(RTGCPTR) SELMToFlat(PVM pVM, DIS_SELREG SelReg, PCPUMCTXCORE pCtxCore, RTGCPTR Addr); 57 57 VMMDECL(RTGCPTR) SELMToFlatBySel(PVM pVM, RTSEL Sel, RTGCPTR Addr); 58 VMMDECL(void) SELMShadowCR3Changed(PVM pVM );58 VMMDECL(void) SELMShadowCR3Changed(PVM pVM, PVMCPU pVCpu); 59 59 60 60 /** Flags for SELMToFlatEx(). … … 138 138 VMMR3DECL(int) SELMR3Term(PVM pVM); 139 139 VMMR3DECL(void) SELMR3Reset(PVM pVM); 140 VMMR3DECL(int) SELMR3UpdateFromCPUM(PVM pVM );141 VMMR3DECL(int) SELMR3SyncTSS(PVM pVM );142 VMMR3DECL(int) SELMR3GetSelectorInfo(PVM pVM, RTSEL Sel, PSELMSELINFO pSelInfo);140 VMMR3DECL(int) SELMR3UpdateFromCPUM(PVM pVM, PVMCPU pVCpu); 141 VMMR3DECL(int) SELMR3SyncTSS(PVM pVM, PVMCPU pVCpu); 142 VMMR3DECL(int) SELMR3GetSelectorInfo(PVM pVM, PVMCPU pVCpu, RTSEL Sel, PSELMSELINFO pSelInfo); 143 143 VMMR3DECL(int) SELMR3GetShadowSelectorInfo(PVM pVM, RTSEL Sel, PSELMSELINFO pSelInfo); 144 144 VMMR3DECL(void) SELMR3DisableMonitoring(PVM pVM); -
trunk/include/VBox/trpm.h
r13833 r18927 106 106 VMMR3DECL(RTRCPTR) TRPMR3GetGuestTrapHandler(PVM pVM, unsigned iTrap); 107 107 VMMR3DECL(void) TRPMR3DisableMonitoring(PVM pVM); 108 VMMR3DECL(int) TRPMR3SyncIDT(PVM pVM );108 VMMR3DECL(int) TRPMR3SyncIDT(PVM pVM, PVMCPU pVCpu); 109 109 VMMR3DECL(bool) TRPMR3IsGateHandler(PVM pVM, RTRCPTR GCPtr); 110 110 VMMR3DECL(uint32_t) TRPMR3QueryGateByHandler(PVM pVM, RTRCPTR GCPtr); 111 VMMR3DECL(int) TRPMR3InjectEvent(PVM pVM, TRPMEVENT enmEvent);111 VMMR3DECL(int) TRPMR3InjectEvent(PVM pVM, PVMCPU pVCpu, TRPMEVENT enmEvent); 112 112 /** @} */ 113 113 #endif -
trunk/include/VBox/vm.h
r18617 r18927 113 113 struct CPUMCPU s; 114 114 #endif 115 char padding[ 2560]; /* multiple of 64 */115 char padding[4096]; /* multiple of 64 */ 116 116 } cpum; 117 117 /** VMM part. */ … … 130 130 struct PGMCPU s; 131 131 #endif 132 char padding[ 2048]; /* multiple of 64 */132 char padding[32*1024]; /* multiple of 64 */ 133 133 } pgm; 134 134 … … 148 148 struct EMCPU s; 149 149 #endif 150 char padding[ 64]; /* multiple of 64 */150 char padding[2048]; /* multiple of 64 */ 151 151 } em; 152 152 … … 619 619 struct CPUM s; 620 620 #endif 621 char padding[ 4096];/* multiple of 32 */621 char padding[2048]; /* multiple of 32 */ 622 622 } cpum; 623 623 … … 637 637 struct PGM s; 638 638 #endif 639 char padding[ 50*1024]; /* multiple of 32 */639 char padding[16*1024]; /* multiple of 32 */ 640 640 } pgm; 641 641 … … 736 736 struct EM s; 737 737 #endif 738 char padding[ 1344];/* multiple of 32 */738 char padding[64]; /* multiple of 32 */ 739 739 } em; 740 740 -
trunk/include/VBox/vm.mac
r14543 r18927 97 97 98 98 alignb 64 99 .cpum resb 409699 .cpum resb 2048 100 100 .vmm resb 1024 101 101 -
trunk/include/VBox/vmm.h
r18660 r18927 110 110 } VMMCALLHOST; 111 111 112 RTRCPTR VMMGetStackRC(PVM pVM); 113 VMCPUID VMMGetCpuId(PVM pVM); 114 PVMCPU VMMGetCpu(PVM pVM); 112 VMMDECL(RTRCPTR) VMMGetStackRC(PVM pVM); 113 VMMDECL(VMCPUID) VMMGetCpuId(PVM pVM); 114 VMMDECL(PVMCPU) VMMGetCpu(PVM pVM); 115 VMMDECL(PVMCPU) VMMGetCpu0(PVM pVM); 115 116 VMMDECL(PVMCPU) VMMGetCpuEx(PVM pVM, RTCPUID idCpu); 116 117 VMMDECL(uint32_t) VMMGetSvnRev(void); … … 148 149 VMMR3DECL(int) VMMR3DisableSwitcher(PVM pVM); 149 150 VMMR3DECL(RTR0PTR) VMMR3GetHostToGuestSwitcher(PVM pVM, VMMSWITCHER enmSwitcher); 150 VMMR3DECL(int) VMMR3RawRunGC(PVM pVM );151 VMMR3DECL(int) VMMR3HwAccRunGC(PVM pVM, RTCPUID idCpu);151 VMMR3DECL(int) VMMR3RawRunGC(PVM pVM, PVMCPU pVCpu); 152 VMMR3DECL(int) VMMR3HwAccRunGC(PVM pVM, PVMCPU pVCpu); 152 153 VMMR3DECL(int) VMMR3CallRC(PVM pVM, RTRCPTR RCPtrEntry, unsigned cArgs, ...); 153 154 VMMR3DECL(int) VMMR3CallRCV(PVM pVM, RTRCPTR RCPtrEntry, unsigned cArgs, va_list args); 154 155 VMMR3DECL(int) VMMR3CallR0(PVM pVM, uint32_t uOperation, uint64_t u64Arg, PSUPVMMR0REQHDR pReqHdr); 155 VMMR3DECL(int) VMMR3ResumeHyper(PVM pVM );156 VMMR3DECL(void) VMMR3FatalDump(PVM pVM, int rcErr);156 VMMR3DECL(int) VMMR3ResumeHyper(PVM pVM, PVMCPU pVCpu); 157 VMMR3DECL(void) VMMR3FatalDump(PVM pVM, PVMCPU pVCpu, int rcErr); 157 158 VMMR3DECL(int) VMMR3Lock(PVM pVM); 158 159 VMMR3DECL(int) VMMR3Unlock(PVM pVM);
Note:
See TracChangeset
for help on using the changeset viewer.