VirtualBox

Changeset 13960 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Nov 7, 2008 1:04:45 PM (16 years ago)
Author:
vboxsync
Message:

Moved guest and host CPU contexts into per-VCPU array.

Location:
trunk/include/VBox
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/cpum.h

    r13832 r13960  
    891891VMMDECL(void)           CPUMHyperSetCtxCore(PVM pVM, PCPUMCTXCORE pCtxCore);
    892892VMMDECL(PCPUMCTX)       CPUMQueryGuestCtxPtr(PVM pVM);
     893VMMDECL(PCPUMCTX)       CPUMQueryGuestCtxPtrEx(PVM pVM, PVMCPU pVCpu);
    893894VMMDECL(int)            CPUMQueryHyperCtxPtr(PVM pVM, PCPUMCTX *ppCtx);
    894895VMMDECL(PCCPUMCTXCORE)  CPUMGetGuestCtxCore(PVM pVM);
     
    899900VMMDECL(uint32_t)       CPUMRawGetEFlags(PVM pVM, PCPUMCTXCORE pCtxCore);
    900901VMMDECL(void)           CPUMRawSetEFlags(PVM pVM, PCPUMCTXCORE pCtxCore, uint32_t eflags);
    901 VMMDECL(int)            CPUMHandleLazyFPU(PVM pVM);
    902 VMMDECL(int)            CPUMRestoreHostFPUState(PVM pVM);
     902VMMDECL(int)            CPUMHandleLazyFPU(PVM pVM, PVMCPU pVCpu);
     903VMMDECL(int)            CPUMRestoreHostFPUState(PVM pVM, PVMCPU pVCpu);
    903904
    904905/** @name Changed flags
     
    928929VMMDECL(bool)           CPUMIsHostUsingSysEnter(PVM pVM);
    929930VMMDECL(bool)           CPUMIsHostUsingSysCall(PVM pVM);
    930 VMMDECL(bool)           CPUMIsGuestFPUStateActive(PVM pVM);
     931VMMDECL(bool)           CPUMIsGuestFPUStateActive(PVMCPU pVCPU);
    931932VMMDECL(void)           CPUMDeactivateGuestFPUState(PVM pVM);
    932933VMMDECL(bool)           CPUMIsGuestDebugStateActive(PVM pVM);
     
    966967VMMR3DECL(int)          CPUMR3TermCPU(PVM pVM);
    967968VMMR3DECL(void)         CPUMR3Reset(PVM pVM);
    968 VMMR3DECL(int)          CPUMR3QueryGuestCtxRCPtr(PVM pVM, RCPTRTYPE(PCPUMCTX) *ppCtx);
    969969# ifdef DEBUG
    970970VMMR3DECL(void)         CPUMR3SaveEntryCtx(PVM pVM);
     
    10061006 */
    10071007VMMR0DECL(int)          CPUMR0Init(PVM pVM);
    1008 VMMR0DECL(int)          CPUMR0LoadGuestFPU(PVM pVM, PCPUMCTX pCtx);
    1009 VMMR0DECL(int)          CPUMR0SaveGuestFPU(PVM pVM, PCPUMCTX pCtx);
    1010 VMMR0DECL(int)          CPUMR0SaveGuestDebugState(PVM pVM, PCPUMCTX pCtx, bool fDR6);
    1011 VMMR0DECL(int)          CPUMR0LoadGuestDebugState(PVM pVM, PCPUMCTX pCtx, bool fDR6);
     1008VMMR0DECL(int)          CPUMR0LoadGuestFPU(PVM pVM, PVMCPU pVCpu, PCPUMCTX pCtx);
     1009VMMR0DECL(int)          CPUMR0SaveGuestFPU(PVM pVM, PVMCPU pVCpu, PCPUMCTX pCtx);
     1010VMMR0DECL(int)          CPUMR0SaveGuestDebugState(PVM pVM, PVMCPU pVCpu, PCPUMCTX pCtx, bool fDR6);
     1011VMMR0DECL(int)          CPUMR0LoadGuestDebugState(PVM pVM, PVMCPU pVCpu, PCPUMCTX pCtx, bool fDR6);
    10121012
    10131013/** @} */
  • trunk/include/VBox/vm.h

    r13898 r13960  
    107107        struct CPUMCPU      s;
    108108#endif
    109         char                padding[4096];      /* multiple of 32 */
     109        char                padding[2048];      /* multiple of 32 */
    110110    } cpum;
    111111    /** VMM part. */
     
    570570    STAMPROFILEADV      StatSwitcherTSS;
    571571
    572 /** @todo Realign everything on 64 byte boundraries to better match the
     572/** @todo Realign everything on 64 byte boundaries to better match the
    573573 *        cache-line size. */
    574574    /* padding - the unions must be aligned on 32 bytes boundraries. */
     
    581581        struct CPUM s;
    582582#endif
    583         char        padding[4416];      /* multiple of 32 */
     583        char        padding[4096];      /* multiple of 32 */
    584584    } cpum;
    585585
  • trunk/include/VBox/vm.mac

    r13831 r13960  
    9595
    9696    alignb 64
    97     .cpum                 resb 4416
     97    .cpum                 resb 4096
    9898    .vmm                  resb 1024
    9999
    100100endstruc
    101101
     102;;
     103; This is part of  the VMCPU structure.
     104struc VMCPU
     105    .fForcedActions     resd 1
     106    .enmState           resd 1
     107    .pVMR3              RTR3PTR_RES 1
     108    .pVMR0              RTR0PTR_RES 1
     109    .pVMRC              RTRCPTR_RES 1
     110    .idCpu              resd 1
     111
     112    .hNativeThread      RTR0PTR_RES 1
     113
     114    alignb 64
     115
     116    .cpum               resb 2048
     117endstruc
     118
    102119
    103120%endif
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette