VirtualBox

Changeset 100724 in vbox for trunk/include


Ignore:
Timestamp:
Jul 28, 2023 8:17:21 AM (17 months ago)
Author:
vboxsync
Message:

VMM/ARM: Add PAuth key system registers in the vCPU state, bugref:10387, bugref:10390

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/cpumctx-armv8.h

    r100723 r100724  
    119119#ifndef VBOX_FOR_DTRACE_LIB
    120120AssertCompileSize(CPUMCTXSYSREG, 8);
     121#endif
    121122
    122123
     
    137138/** Pointer to a const debug register state. */
    138139typedef const CPUMCTXSYSREGDBG *PCCPUMCTXSYSREGDBG;
     140#ifndef VBOX_FOR_DTRACE_LIB
     141AssertCompileSize(CPUMCTXSYSREGDBG, 16);
     142#endif
     143
     144
     145/**
     146 * A pointer authentication key register state (low and high), these are held together
     147 * because they will be accessed together very often and thus minimizes
     148 * stress on the cache.
     149 */
     150typedef struct CPUMCTXSYSREGPAKEY
     151{
     152    /** The low key register. */
     153    CPUMCTXSYSREG   Low;
     154    /** The high key register. */
     155    CPUMCTXSYSREG   High;
     156} CPUMCTXSYSREGPAKEY;
     157/** Pointer to a pointer authentication key register state. */
     158typedef CPUMCTXSYSREGPAKEY *PCPUMCTXSYSREGPAKEY;
     159/** Pointer to a const pointer authentication key register state. */
     160typedef const CPUMCTXSYSREGPAKEY *PCCPUMCTXSYSREGPAKEY;
     161#ifndef VBOX_FOR_DTRACE_LIB
     162AssertCompileSize(CPUMCTXSYSREGPAKEY, 16);
    139163#endif
    140164
     
    167191    /** The VBAR_EL1 register. */
    168192    CPUMCTXSYSREG       VBar;
    169     /** Breakpoint registers, DBGB{C,V}<n>_EL1. */
     193    /** Breakpoint registers, DBGB{C,V}n_EL1. */
    170194    CPUMCTXSYSREGDBG    aBp[16];
    171     /** Watchpoint registers, DBGW{C,V}<n>_EL1. */
     195    /** Watchpoint registers, DBGW{C,V}n_EL1. */
    172196    CPUMCTXSYSREGDBG    aWp[16];
     197    /** APDA key register state. */
     198    CPUMCTXSYSREGPAKEY  Apda;
     199    /** APDB key register state. */
     200    CPUMCTXSYSREGPAKEY  Apdb;
     201    /** APGA key register state. */
     202    CPUMCTXSYSREGPAKEY  Apga;
     203    /** APIA key register state. */
     204    CPUMCTXSYSREGPAKEY  Apia;
     205    /** APIB key register state. */
     206    CPUMCTXSYSREGPAKEY  Apib;
    173207
    174208    /** Floating point control register. */
     
    194228    uint64_t            CntvCValEl0;
    195229
    196     uint64_t            au64Padding2[6];
     230    uint64_t            au64Padding2[4];
    197231} CPUMCTX;
    198232
     
    257291/** Debug system registers are kept externally. */
    258292#define CPUMCTX_EXTRN_SYSREG_DEBUG              UINT64_C(0x0000000000010000)
     293/** PAuth key system registers are kept externally. */
     294#define CPUMCTX_EXTRN_SYSREG_PAUTH_KEYS         UINT64_C(0x0000000000020000)
    259295/** Various system registers (rarely accessed) are kept externally. */
    260 #define CPUMCTX_EXTRN_SYSREG_MISC               UINT64_C(0x0000000000020000)
     296#define CPUMCTX_EXTRN_SYSREG_MISC               UINT64_C(0x0000000000040000)
    261297
    262298/** Mask of bits the keepers can use for state tracking. */
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