VirtualBox

Ignore:
Timestamp:
Mar 19, 2023 4:40:06 PM (2 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
156416
Message:

VMM: More ARMv8 x86/amd64 separation work, VBoxVMMArm compiles and links now, bugref:10385

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/include/NEMInternal.h

    r98103 r99051  
    4242#include <iprt/critsect.h>
    4343#elif defined(RT_OS_DARWIN)
    44 # include "VMXInternal.h"
     44# if defined(VBOX_VMM_TARGET_ARMV8)
     45#  include <Hypervisor/Hypervisor.h>
     46# else
     47#  include "VMXInternal.h"
     48# endif
    4549#endif
    4650
     
    108112
    109113#ifdef RT_OS_DARWIN
     114# if !defined(VBOX_VMM_TARGET_ARMV8)
    110115/** vCPU ID declaration to avoid dragging in HV headers here. */
    111116typedef unsigned hv_vcpuid_t;
    112117/** The HV VM memory space ID (ASID). */
    113118typedef unsigned hv_vm_space_t;
     119# endif
    114120
    115121
     
    122128/** @} */
    123129
     130# if defined(VBOX_VMM_TARGET_ARMV8)
    124131/** The CPUMCTX_EXTRN_XXX mask for IEM. */
    125 # define NEM_DARWIN_CPUMCTX_EXTRN_MASK_FOR_IEM      (  IEM_CPUMCTX_EXTRN_MUST_MASK | CPUMCTX_EXTRN_INHIBIT_INT \
    126                                                      | CPUMCTX_EXTRN_INHIBIT_NMI )
     132#  define NEM_DARWIN_CPUMCTX_EXTRN_MASK_FOR_IEM      (  IEM_CPUMCTX_EXTRN_MUST_MASK )
     133# else
     134/** The CPUMCTX_EXTRN_XXX mask for IEM. */
     135#  define NEM_DARWIN_CPUMCTX_EXTRN_MASK_FOR_IEM      (  IEM_CPUMCTX_EXTRN_MUST_MASK | CPUMCTX_EXTRN_INHIBIT_INT \
     136                                                      | CPUMCTX_EXTRN_INHIBIT_NMI )
     137#endif
     138
    127139/** The CPUMCTX_EXTRN_XXX mask for IEM when raising exceptions. */
    128140# define NEM_DARWIN_CPUMCTX_EXTRN_MASK_FOR_IEM_XCPT (IEM_CPUMCTX_EXTRN_XCPT_MASK | NEM_DARWIN_CPUMCTX_EXTRN_MASK_FOR_IEM)
     
    274286    /** Set if hv_vm_create() was called successfully. */
    275287    bool                        fCreatedVm   : 1;
     288# if defined(VBOX_VMM_TARGET_ARMV8)
     289    /** @todo */
     290# else
    276291    /** Set if hv_vm_space_create() was called successfully. */
    277292    bool                        fCreatedAsid : 1;
     
    310325    /** The last valid host LBR info stack range. */
    311326    uint32_t                    idLbrInfoMsrLast;
     327# endif
    312328
    313329    STAMCOUNTER                 StatMapPage;
     
    460476
    461477#elif defined(RT_OS_DARWIN)
     478# if defined(VBOX_VMM_TARGET_ARMV8)
     479    /** The vCPU handle associated with the EMT executing this vCPU. */
     480    hv_vcpu_t                   hVCpu;
     481    /** Pointer to the exit information structure. */
     482    hv_vcpu_exit_t              *pHvExit;
     483    /** Flag whether an event is pending. */
     484    bool                        fEventPending;
     485# else
    462486    /** The vCPU handle associated with the EMT executing this vCPU. */
    463487    hv_vcpuid_t                 hVCpuId;
     
    530554    /** Pointer to the VMX statistics. */
    531555    PVMXSTATISTICS              pVmxStats;
     556# endif
    532557
    533558    /** @name Statistics
Note: See TracChangeset for help on using the changeset viewer.

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