VirtualBox

Changeset 99051 in vbox for trunk/src/VBox/VMM/include


Ignore:
Timestamp:
Mar 19, 2023 4:40:06 PM (22 months ago)
Author:
vboxsync
Message:

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

Location:
trunk/src/VBox/VMM/include
Files:
5 edited

Legend:

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

    r98103 r99051  
    113113            break;
    114114
     115#if !defined(VBOX_VMM_TARGET_ARMV8)
    115116        /*
    116117         * Execute pending I/O Port access.
     
    122123            rc = VBOXSTRICTRC_TODO(emR3ExecutePendingIoPortRead(pVM, pVCpu));
    123124            break;
     125#endif
    124126
    125127        /*
     
    167169            break;
    168170
     171#if !defined(VBOX_VMM_TARGET_ARMV8)
    169172        case VINF_EM_EMULATE_SPLIT_LOCK:
    170173            rc = VBOXSTRICTRC_TODO(emR3ExecuteSplitLockInstruction(pVM, pVCpu));
    171174            break;
     175#endif
    172176
    173177
  • trunk/src/VBox/VMM/include/IOMInternal.h

    r98103 r99051  
    574574
    575575#ifdef IN_RING3
     576# if !defined(VBOX_VMM_TARGET_ARMV8)
    576577DECLCALLBACK(void)  iomR3IoPortInfo(PVM pVM, PCDBGFINFOHLP pHlp, const char *pszArgs);
    577578void                iomR3IoPortRegStats(PVM pVM, PIOMIOPORTENTRYR3 pRegEntry);
     579# endif
    578580DECLCALLBACK(void)  iomR3MmioInfo(PVM pVM, PCDBGFINFOHLP pHlp, const char *pszArgs);
    579581void                iomR3MmioRegStats(PVM pVM, PIOMMMIOENTRYR3 pRegEntry);
  • 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
  • trunk/src/VBox/VMM/include/PGMInline.h

    r98103 r99051  
    374374
    375375
     376#ifndef VBOX_VMM_TARGET_ARMV8
    376377/**
    377378 * Checks if the no-execute (NX) feature is active (EFER.NXE=1).
     
    978979    return NULL;
    979980}
     981#endif /* !VBOX_VMM_TARGET_ARMV8 */
    980982
    981983
  • trunk/src/VBox/VMM/include/PGMInternal.h

    r98103 r99051  
    374374 * @param   GCVirt      The virtual address of the page to invalidate.
    375375 */
    376 #ifdef IN_RING0
    377 # define PGM_INVL_PG_ALL_VCPU(pVM, GCVirt)      HMInvalidatePageOnAllVCpus(pVM, (RTGCPTR)(GCVirt))
     376#if defined(VBOX_VMM_TARGET_ARMV8)
     377# define PGM_INVL_PG_ALL_VCPU(pVM, GCVirt)      do { } while(0)
    378378#else
    379379# define PGM_INVL_PG_ALL_VCPU(pVM, GCVirt)      HMInvalidatePageOnAllVCpus(pVM, (RTGCPTR)(GCVirt))
     
    386386 * @param   GCVirt      The virtual address within the page directory to invalidate.
    387387 */
    388 #ifdef IN_RING0
    389 # define PGM_INVL_BIG_PG(pVCpu, GCVirt)         HMFlushTlb(pVCpu)
     388#if defined(VBOX_VMM_TARGET_ARMV8)
     389# define PGM_INVL_BIG_PG(pVCpu, GCVirt)         do { } while(0)
    390390#else
    391391# define PGM_INVL_BIG_PG(pVCpu, GCVirt)         HMFlushTlb(pVCpu)
     
    397397 * @param   pVCpu       The cross context virtual CPU structure.
    398398 */
    399 #ifdef IN_RING0
    400 # define PGM_INVL_VCPU_TLBS(pVCpu)             HMFlushTlb(pVCpu)
     399#if defined(VBOX_VMM_TARGET_ARMV8)
     400# define PGM_INVL_VCPU_TLBS(pVCpu)             do { } while(0)
    401401#else
    402402# define PGM_INVL_VCPU_TLBS(pVCpu)             HMFlushTlb(pVCpu)
     
    408408 * @param   pVM         The cross context VM structure.
    409409 */
    410 #ifdef IN_RING0
    411 # define PGM_INVL_ALL_VCPU_TLBS(pVM)            HMFlushTlbOnAllVCpus(pVM)
     410#if defined(VBOX_VMM_TARGET_ARMV8)
     411# define PGM_INVL_ALL_VCPU_TLBS(pVM)            do { } while(0)
    412412#else
    413413# define PGM_INVL_ALL_VCPU_TLBS(pVM)            HMFlushTlbOnAllVCpus(pVM)
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