VirtualBox

Changeset 90379 in vbox for trunk/include/VBox/vmm


Ignore:
Timestamp:
Jul 28, 2021 8:00:43 PM (3 years ago)
Author:
vboxsync
Message:

VMM: Implementing blocking on critical sections in ring-0 HM context (actual code is disabled). bugref:6695

Location:
trunk/include/VBox/vmm
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/gvm.h

    r90189 r90379  
    109109        struct VMMR0PERVCPU s;
    110110#endif
    111         uint8_t             padding[64];
     111        uint8_t             padding[128];
    112112    } vmmr0;
    113113
    114114    /** Padding the structure size to page boundrary. */
    115115#ifdef VBOX_WITH_NEM_R0
    116     uint8_t                 abPadding2[4096 - 64 - 64 - 1024 - 64 - 64];
     116    uint8_t                 abPadding2[4096 - 64 - 64 - 1024 - 64 - 128];
    117117#else
    118     uint8_t                 abPadding2[4096 - 64 - 64 - 1024 - 64];
     118    uint8_t                 abPadding2[4096 - 64 - 64 - 1024 - 128];
    119119#endif
    120120} GVMCPU;
  • trunk/include/VBox/vmm/gvm.mac

    r87792 r90379  
    4646        .nemr0              resb 64
    4747%endif
     48        alignb 64
     49        .vmmr0              resb 128
    4850        alignb 4096
    4951endstruc
  • trunk/include/VBox/vmm/vmm.h

    r89912 r90379  
    473473
    474474#if defined(IN_RING0) || defined(DOXYGEN_RUNNING)
     475
     476/**
     477 * Structure VMMR0EmtPrepareToBlock uses to pass info to
     478 * VMMR0EmtResumeAfterBlocking.
     479 */
     480typedef struct VMMR0EMTBLOCKCTX
     481{
     482    /** Magic value (VMMR0EMTBLOCKCTX_MAGIC). */
     483    uint32_t    uMagic;
     484    /** Set if we were in HM context, clear if not. */
     485    bool        fWasInHmContext;
     486} VMMR0EMTBLOCKCTX;
     487/** Pointer to a VMMR0EmtPrepareToBlock context structure. */
     488typedef VMMR0EMTBLOCKCTX *PVMMR0EMTBLOCKCTX;
     489/** Magic value for VMMR0EMTBLOCKCTX::uMagic (Paul Desmond). */
     490#define VMMR0EMTBLOCKCTX_MAGIC          UINT32_C(0x19261125)
     491/** Magic value for VMMR0EMTBLOCKCTX::uMagic when its out of context. */
     492#define VMMR0EMTBLOCKCTX_MAGIC_DEAD     UINT32_C(0x19770530)
     493
    475494VMMR0DECL(void)      VMMR0EntryFast(PGVM pGVM, PVMCC pVM, VMCPUID idCpu, VMMR0OPERATION enmOperation);
    476495VMMR0DECL(int)       VMMR0EntryEx(PGVM pGVM, PVMCC pVM, VMCPUID idCpu, VMMR0OPERATION enmOperation,
    477496                                  PSUPVMMR0REQHDR pReq, uint64_t u64Arg, PSUPDRVSESSION);
     497VMMR0_INT_DECL(void) VMMR0InitPerVMData(PGVM pGVM);
    478498VMMR0_INT_DECL(int)  VMMR0TermVM(PGVM pGVM, VMCPUID idCpu);
    479499VMMR0_INT_DECL(bool) VMMR0IsLongJumpArmed(PVMCPUCC pVCpu);
     
    483503VMMR0_INT_DECL(void) VMMR0ThreadCtxHookDisable(PVMCPUCC pVCpu);
    484504VMMR0_INT_DECL(bool) VMMR0ThreadCtxHookIsEnabled(PVMCPUCC pVCpu);
     505VMMR0_INT_DECL(int)  VMMR0EmtPrepareToBlock(PVMCPUCC pVCpu, int rcBusy, const char *pszCaller, void *pvLock,
     506                                            PVMMR0EMTBLOCKCTX pCtx);
     507VMMR0_INT_DECL(void) VMMR0EmtResumeAfterBlocking(PVMCPUCC pVCpu, PVMMR0EMTBLOCKCTX pCtx);
    485508VMMR0_INT_DECL(PRTLOGGER) VMMR0GetReleaseLogger(PVMCPUCC pVCpu);
    486509
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