VirtualBox

Changeset 103002 in vbox for trunk/include


Ignore:
Timestamp:
Jan 23, 2024 4:01:51 PM (16 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
161234
Message:

iprt/x86.h: Made this header usable with the assembler on darwin/arm64. bugref:10376

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/x86.h

    r102986 r103002  
    4343
    4444#ifndef VBOX_FOR_DTRACE_LIB
    45 # include <iprt/types.h>
    46 # include <iprt/assert.h>
     45# ifndef __ASSEMBLER__
     46#  include <iprt/types.h>
     47#  include <iprt/assert.h>
     48# else
     49#  include <iprt/stdint.h>
     50#  include <iprt/assertcompile.h>
     51# endif
    4752#else
    4853# pragma D depends_on library vbox-types.d
     
    6368 */
    6469
    65 #ifndef VBOX_FOR_DTRACE_LIB
     70#ifndef __ASSEMBLER__
     71
     72# ifndef VBOX_FOR_DTRACE_LIB
    6673/**
    6774 * EFLAGS Bits.
     
    118125/** Pointer to const EFLAGS bits. */
    119126typedef const X86EFLAGSBITS *PCX86EFLAGSBITS;
    120 #endif /* !VBOX_FOR_DTRACE_LIB */
     127# endif /* !VBOX_FOR_DTRACE_LIB */
    121128
    122129/**
     
    127134    /** The plain unsigned view. */
    128135    uint32_t        u;
    129 #ifndef VBOX_FOR_DTRACE_LIB
     136# ifndef VBOX_FOR_DTRACE_LIB
    130137    /** The bitfield view. */
    131138    X86EFLAGSBITS   Bits;
    132 #endif
     139# endif
    133140    /** The 8-bit view. */
    134141    uint8_t         au8[4];
     
    152159    /** The plain unsigned view. */
    153160    uint64_t        u;
    154 #ifndef VBOX_FOR_DTRACE_LIB
     161# ifndef VBOX_FOR_DTRACE_LIB
    155162    /** The bitfield view. */
    156163    X86EFLAGSBITS   Bits;
    157 #endif
     164# endif
    158165    /** The 8-bit view. */
    159166    uint8_t         au8[8];
     
    171178/** Pointer to const RFLAGS. */
    172179typedef const X86RFLAGS *PCX86RFLAGS;
     180
     181#endif /* !__ASSEMBLER__ */
    173182
    174183
     
    253262
    254263
     264#ifndef __ASSEMBLER__
     265
    255266/** CPUID Feature information - ECX.
    256267 * CPUID query with EAX=1.
    257268 */
    258 #ifndef VBOX_FOR_DTRACE_LIB
     269# ifndef VBOX_FOR_DTRACE_LIB
    259270typedef struct X86CPUIDFEATECX
    260271{
     
    324335    unsigned    u1HVP : 1;
    325336} X86CPUIDFEATECX;
    326 #else  /* VBOX_FOR_DTRACE_LIB */
     337# else  /* VBOX_FOR_DTRACE_LIB */
    327338typedef uint32_t X86CPUIDFEATECX;
    328 #endif /* VBOX_FOR_DTRACE_LIB */
     339# endif /* VBOX_FOR_DTRACE_LIB */
    329340/** Pointer to CPUID Feature Information - ECX. */
    330341typedef X86CPUIDFEATECX *PX86CPUIDFEATECX;
     
    336347 * CPUID query with EAX=1.
    337348 */
    338 #ifndef VBOX_FOR_DTRACE_LIB /* DTrace different (brain-dead from a C pov) bitfield implementation */
     349# ifndef VBOX_FOR_DTRACE_LIB /* DTrace different (brain-dead from a C pov) bitfield implementation */
    339350typedef struct X86CPUIDFEATEDX
    340351{
     
    404415    unsigned    u1PBE : 1;
    405416} X86CPUIDFEATEDX;
    406 #else  /* VBOX_FOR_DTRACE_LIB */
     417# else  /* VBOX_FOR_DTRACE_LIB */
    407418typedef uint32_t X86CPUIDFEATEDX;
    408 #endif /* VBOX_FOR_DTRACE_LIB */
     419# endif /* VBOX_FOR_DTRACE_LIB */
    409420/** Pointer to CPUID Feature Information - EDX. */
    410421typedef X86CPUIDFEATEDX *PX86CPUIDFEATEDX;
    411422/** Pointer to const CPUID Feature Information - EDX. */
    412423typedef const X86CPUIDFEATEDX *PCX86CPUIDFEATEDX;
     424
     425#endif /* !__ASSEMBLER__ */
     426
    413427
    414428/** @name CPUID Vendor information.
     
    14521466#define MSR_IA32_MTRR_CAP_PRMRR             RT_BIT_64(12)
    14531467
     1468
     1469#ifndef __ASSEMBLER__
    14541470/**
    14551471 * Variable-range MTRR MSR pair.
     
    14601476    uint64_t        MtrrPhysMask;           /**< IA32_MTRR_PHYSMASKn */
    14611477} X86MTRRVAR;
    1462 #ifndef VBOX_FOR_DTRACE_LIB
     1478# ifndef VBOX_FOR_DTRACE_LIB
    14631479AssertCompileSize(X86MTRRVAR, 16);
    1464 #endif
     1480# endif
    14651481/** Pointer to a variable-range MTRR MSR pair. */
    14661482typedef X86MTRRVAR *PX86MTRRVAR;
    14671483/** Pointer to a const variable-range MTRR MSR pair. */
    14681484typedef const X86MTRRVAR *PCX86MTRRVAR;
     1485#endif /* __ASSEMBLER__ */
     1486
    14691487
    14701488/** Memory types that can be encoded in MTRRs.
     
    21802198 */
    21812199
     2200#ifndef __ASSEMBLER__
    21822201/** Page table/directory  entry as an unsigned integer. */
    21832202typedef uint32_t X86PGUINT;
     
    21862205/** Pointer to an const page table/directory table entry as an unsigned integer. */
    21872206typedef X86PGUINT const *PCX86PGUINT;
     2207#endif
    21882208
    21892209/** Number of entries in a 32-bit PT/PD. */
     
    21912211
    21922212
     2213#ifndef __ASSEMBLER__
    21932214/** PAE page table/page directory/pdpt/l4/l5 entry as an unsigned integer. */
    21942215typedef uint64_t X86PGPAEUINT;
     
    21972218/** Pointer to an const PAE page table/page directory/pdpt/l4/l5 entry as an unsigned integer. */
    21982219typedef X86PGPAEUINT const *PCX86PGPAEUINT;
     2220#endif
    21992221
    22002222/** Number of entries in a PAE PT/PD. */
     
    23382360/** Bits 63 -    - LM  - MBZ bits when no NX. */
    23392361#define X86_PTE_LM_MBZ_MASK_NO_NX           UINT64_C(0x8000000000000000)
     2362
     2363#ifndef __ASSEMBLER__
    23402364
    23412365/**
     
    23692393    uint32_t    u20PageNo : 20;
    23702394} X86PTEBITS;
    2371 #ifndef VBOX_FOR_DTRACE_LIB
     2395# ifndef VBOX_FOR_DTRACE_LIB
    23722396AssertCompileSize(X86PTEBITS, 4);
    2373 #endif
     2397# endif
    23742398/** Pointer to a page table entry. */
    23752399typedef X86PTEBITS *PX86PTEBITS;
     
    23842408    /** Unsigned integer view */
    23852409    X86PGUINT       u;
    2386 #ifndef VBOX_WITHOUT_PAGING_BIT_FIELDS
     2410# ifndef VBOX_WITHOUT_PAGING_BIT_FIELDS
    23872411    /** Bit field view. */
    23882412    X86PTEBITS      n;
    2389 #endif
     2413# endif
    23902414    /** 32-bit view. */
    23912415    uint32_t        au32[1];
     
    23952419    uint8_t         au8[4];
    23962420} X86PTE;
    2397 #ifndef VBOX_FOR_DTRACE_LIB
     2421# ifndef VBOX_FOR_DTRACE_LIB
    23982422AssertCompileSize(X86PTE, 4);
    2399 #endif
     2423# endif
    24002424/** Pointer to a page table entry. */
    24012425typedef X86PTE *PX86PTE;
     
    24402464    uint32_t    u1NoExecute : 1;
    24412465} X86PTEPAEBITS;
    2442 #ifndef VBOX_FOR_DTRACE_LIB
     2466# ifndef VBOX_FOR_DTRACE_LIB
    24432467AssertCompileSize(X86PTEPAEBITS, 8);
    2444 #endif
     2468# endif
    24452469/** Pointer to a page table entry. */
    24462470typedef X86PTEPAEBITS *PX86PTEPAEBITS;
     
    24552479    /** Unsigned integer view */
    24562480    X86PGPAEUINT    u;
    2457 #ifndef VBOX_WITHOUT_PAGING_BIT_FIELDS
     2481# ifndef VBOX_WITHOUT_PAGING_BIT_FIELDS
    24582482    /** Bit field view. */
    24592483    X86PTEPAEBITS   n;
    2460 #endif
     2484# endif
    24612485    /** 32-bit view. */
    24622486    uint32_t        au32[2];
     
    24662490    uint8_t         au8[8];
    24672491} X86PTEPAE;
    2468 #ifndef VBOX_FOR_DTRACE_LIB
     2492# ifndef VBOX_FOR_DTRACE_LIB
    24692493AssertCompileSize(X86PTEPAE, 8);
    2470 #endif
     2494# endif
    24712495/** Pointer to a PAE page table entry. */
    24722496typedef X86PTEPAE *PX86PTEPAE;
     
    24832507    X86PTE     a[X86_PG_ENTRIES];
    24842508} X86PT;
    2485 #ifndef VBOX_FOR_DTRACE_LIB
     2509# ifndef VBOX_FOR_DTRACE_LIB
    24862510AssertCompileSize(X86PT, 4096);
    2487 #endif
     2511# endif
    24882512/** Pointer to a page table. */
    24892513typedef X86PT *PX86PT;
     
    24912515typedef const X86PT *PCX86PT;
    24922516
     2517#endif /* !__ASSEMBLER__ */
     2518
    24932519/** The page shift to get the PT index. */
    24942520#define X86_PT_SHIFT                        12
     
    24972523
    24982524
     2525#ifndef __ASSEMBLER__
    24992526/**
    25002527 * Page directory.
     
    25052532    X86PTEPAE  a[X86_PG_PAE_ENTRIES];
    25062533} X86PTPAE;
    2507 #ifndef VBOX_FOR_DTRACE_LIB
     2534# ifndef VBOX_FOR_DTRACE_LIB
    25082535AssertCompileSize(X86PTPAE, 4096);
    2509 #endif
     2536# endif
    25102537/** Pointer to a page table. */
    25112538typedef X86PTPAE *PX86PTPAE;
    25122539/** Pointer to a const page table. */
    25132540typedef const X86PTPAE *PCX86PTPAE;
     2541#endif /* !__ASSEMBLY__ */
    25142542
    25152543/** The page shift to get the PA PTE index. */
     
    25542582/** Bits 63, 7 -    - LM  - MBZ bits when no NX. */
    25552583#define X86_PDE_LM_MBZ_MASK_NO_NX           UINT64_C(0x8000000000000080)
     2584
     2585#ifndef __ASSEMBLER__
    25562586
    25572587/**
     
    25842614    uint32_t    u20PageNo : 20;
    25852615} X86PDEBITS;
    2586 #ifndef VBOX_FOR_DTRACE_LIB
     2616# ifndef VBOX_FOR_DTRACE_LIB
    25872617AssertCompileSize(X86PDEBITS, 4);
    2588 #endif
     2618# endif
    25892619/** Pointer to a page directory entry. */
    25902620typedef X86PDEBITS *PX86PDEBITS;
     
    26282658    uint32_t    u1NoExecute : 1;
    26292659} X86PDEPAEBITS;
    2630 #ifndef VBOX_FOR_DTRACE_LIB
     2660# ifndef VBOX_FOR_DTRACE_LIB
    26312661AssertCompileSize(X86PDEPAEBITS, 8);
    2632 #endif
     2662# endif
    26332663/** Pointer to a page directory entry. */
    26342664typedef X86PDEPAEBITS *PX86PDEPAEBITS;
    26352665/** Pointer to a const page directory entry. */
    26362666typedef const X86PDEPAEBITS *PCX86PDEPAEBITS;
     2667
     2668#endif /* !__ASSEMBLER__ */
    26372669
    26382670/** @} */
     
    26892721#define X86_PDE2M_LM_MBZ_MASK_NO_NX         UINT64_C(0x80000000001fe000)
    26902722
     2723#ifndef __ASSEMBLER__
     2724
    26912725/**
    26922726 * 4MB page directory entry.
     
    27262760    uint32_t    u10PageNo : 10;
    27272761} X86PDE4MBITS;
    2728 #ifndef VBOX_FOR_DTRACE_LIB
     2762# ifndef VBOX_FOR_DTRACE_LIB
    27292763AssertCompileSize(X86PDE4MBITS, 4);
    2730 #endif
     2764# endif
    27312765/** Pointer to a page table entry. */
    27322766typedef X86PDE4MBITS *PX86PDE4MBITS;
     
    27752809    uint32_t    u1NoExecute : 1;
    27762810} X86PDE2MPAEBITS;
    2777 #ifndef VBOX_FOR_DTRACE_LIB
     2811# ifndef VBOX_FOR_DTRACE_LIB
    27782812AssertCompileSize(X86PDE2MPAEBITS, 8);
    2779 #endif
     2813# endif
    27802814/** Pointer to a 2MB PAE page table entry. */
    27812815typedef X86PDE2MPAEBITS *PX86PDE2MPAEBITS;
     
    27832817typedef const X86PDE2MPAEBITS *PCX86PDE2MPAEBITS;
    27842818
    2785 /** @} */
     2819#endif /* !__ASSEMBLER__ */
     2820
     2821/** @} */
     2822
     2823#ifndef __ASSEMBLER__
    27862824
    27872825/**
     
    27922830    /** Unsigned integer view. */
    27932831    X86PGUINT       u;
    2794 #ifndef VBOX_WITHOUT_PAGING_BIT_FIELDS
     2832# ifndef VBOX_WITHOUT_PAGING_BIT_FIELDS
    27952833    /** Normal view. */
    27962834    X86PDEBITS      n;
    27972835    /** 4MB view (big). */
    27982836    X86PDE4MBITS    b;
    2799 #endif
     2837# endif
    28002838    /** 8 bit unsigned integer view. */
    28012839    uint8_t         au8[4];
     
    28052843    uint32_t        au32[1];
    28062844} X86PDE;
    2807 #ifndef VBOX_FOR_DTRACE_LIB
     2845# ifndef VBOX_FOR_DTRACE_LIB
    28082846AssertCompileSize(X86PDE, 4);
    2809 #endif
     2847# endif
    28102848/** Pointer to a page directory entry. */
    28112849typedef X86PDE *PX86PDE;
     
    28202858    /** Unsigned integer view. */
    28212859    X86PGPAEUINT    u;
    2822 #ifndef VBOX_WITHOUT_PAGING_BIT_FIELDS
     2860# ifndef VBOX_WITHOUT_PAGING_BIT_FIELDS
    28232861    /** Normal view. */
    28242862    X86PDEPAEBITS   n;
    28252863    /** 2MB page view (big). */
    28262864    X86PDE2MPAEBITS b;
    2827 #endif
     2865# endif
    28282866    /** 8 bit unsigned integer view. */
    28292867    uint8_t         au8[8];
     
    28332871    uint32_t        au32[2];
    28342872} X86PDEPAE;
    2835 #ifndef VBOX_FOR_DTRACE_LIB
     2873# ifndef VBOX_FOR_DTRACE_LIB
    28362874AssertCompileSize(X86PDEPAE, 8);
    2837 #endif
     2875# endif
    28382876/** Pointer to a page directory entry. */
    28392877typedef X86PDEPAE *PX86PDEPAE;
     
    28492887    X86PDE      a[X86_PG_ENTRIES];
    28502888} X86PD;
    2851 #ifndef VBOX_FOR_DTRACE_LIB
     2889# ifndef VBOX_FOR_DTRACE_LIB
    28522890AssertCompileSize(X86PD, 4096);
    2853 #endif
     2891# endif
    28542892/** Pointer to a page directory. */
    28552893typedef X86PD *PX86PD;
     
    28572895typedef const X86PD *PCX86PD;
    28582896
     2897#endif /* !__ASSEMBLER__ */
     2898
    28592899/** The page shift to get the PD index. */
    28602900#define X86_PD_SHIFT                        22
     
    28632903
    28642904
     2905#ifndef __ASSEMBLER__
    28652906/**
    28662907 * PAE page directory.
     
    28712912    X86PDEPAE   a[X86_PG_PAE_ENTRIES];
    28722913} X86PDPAE;
    2873 #ifndef VBOX_FOR_DTRACE_LIB
     2914# ifndef VBOX_FOR_DTRACE_LIB
    28742915AssertCompileSize(X86PDPAE, 4096);
    2875 #endif
     2916# endif
    28762917/** Pointer to a PAE page directory. */
    28772918typedef X86PDPAE *PX86PDPAE;
    28782919/** Pointer to a const PAE page directory. */
    28792920typedef const X86PDPAE *PCX86PDPAE;
     2921#endif /* !__ASSEMBLER__ */
    28802922
    28812923/** The page shift to get the PAE PD index. */
     
    29212963#define X86_PDPE1G_LM_MBZ_MASK_NO_NX        UINT64_C(0x800000003fffe000)
    29222964
     2965#ifndef __ASSEMBLER__
    29232966
    29242967/**
     
    29462989    uint32_t    u12Reserved : 12;
    29472990} X86PDPEBITS;
    2948 #ifndef VBOX_FOR_DTRACE_LIB
     2991# ifndef VBOX_FOR_DTRACE_LIB
    29492992AssertCompileSize(X86PDPEBITS, 8);
    2950 #endif
     2993# endif
    29512994/** Pointer to a page directory pointer table entry. */
    29522995typedef X86PDPEBITS *PX86PTPEBITS;
     
    29853028    uint32_t    u1NoExecute : 1;
    29863029} X86PDPEAMD64BITS;
    2987 #ifndef VBOX_FOR_DTRACE_LIB
     3030# ifndef VBOX_FOR_DTRACE_LIB
    29883031AssertCompileSize(X86PDPEAMD64BITS, 8);
    2989 #endif
     3032# endif
    29903033/** Pointer to a page directory pointer table entry. */
    29913034typedef X86PDPEAMD64BITS *PX86PDPEAMD64BITS;
     
    30323075    uint32_t    u1NoExecute : 1;
    30333076} X86PDPE1GB;
    3034 #ifndef VBOX_FOR_DTRACE_LIB
     3077# ifndef VBOX_FOR_DTRACE_LIB
    30353078AssertCompileSize(X86PDPE1GB, 8);
    3036 #endif
     3079# endif
    30373080/** Pointer to a page directory pointer table entry for a 1GB page. */
    30383081typedef X86PDPE1GB *PX86PDPE1GB;
     
    30473090    /** Unsigned integer view. */
    30483091    X86PGPAEUINT    u;
    3049 #ifndef VBOX_WITHOUT_PAGING_BIT_FIELDS
     3092# ifndef VBOX_WITHOUT_PAGING_BIT_FIELDS
    30503093    /** Normal view. */
    30513094    X86PDPEBITS     n;
     
    30543097    /** AMD64 big view. */
    30553098    X86PDPE1GB      b;
    3056 #endif
     3099# endif
    30573100    /** 8 bit unsigned integer view. */
    30583101    uint8_t         au8[8];
     
    30623105    uint32_t        au32[2];
    30633106} X86PDPE;
    3064 #ifndef VBOX_FOR_DTRACE_LIB
     3107# ifndef VBOX_FOR_DTRACE_LIB
    30653108AssertCompileSize(X86PDPE, 8);
    3066 #endif
     3109# endif
    30673110/** Pointer to a page directory pointer table entry. */
    30683111typedef X86PDPE *PX86PDPE;
     
    30793122    X86PDPE         a[X86_PG_AMD64_PDPE_ENTRIES];
    30803123} X86PDPT;
    3081 #ifndef VBOX_FOR_DTRACE_LIB
     3124# ifndef VBOX_FOR_DTRACE_LIB
    30823125AssertCompileSize(X86PDPT, 4096);
    3083 #endif
     3126# endif
    30843127/** Pointer to a page directory pointer table. */
    30853128typedef X86PDPT *PX86PDPT;
    30863129/** Pointer to a const page directory pointer table. */
    30873130typedef const X86PDPT *PCX86PDPT;
     3131
     3132#endif /* !__ASSEMBLER__ */
    30883133
    30893134/** The page shift to get the PDPT index. */
     
    31223167/** Bits 63 - NX - PAE - No execution flag. */
    31233168#define X86_PML4E_NX                        RT_BIT_64(63)
     3169
     3170#ifndef __ASSEMBLER__
    31243171
    31253172/**
     
    31543201    uint32_t    u1NoExecute : 1;
    31553202} X86PML4EBITS;
    3156 #ifndef VBOX_FOR_DTRACE_LIB
     3203# ifndef VBOX_FOR_DTRACE_LIB
    31573204AssertCompileSize(X86PML4EBITS, 8);
    3158 #endif
     3205# endif
    31593206/** Pointer to a page map level-4 entry. */
    31603207typedef X86PML4EBITS *PX86PML4EBITS;
     
    31693216    /** Unsigned integer view. */
    31703217    X86PGPAEUINT    u;
    3171 #ifndef VBOX_WITHOUT_PAGING_BIT_FIELDS
     3218# ifndef VBOX_WITHOUT_PAGING_BIT_FIELDS
    31723219    /** Normal view. */
    31733220    X86PML4EBITS    n;
    3174 #endif
     3221# endif
    31753222    /** 8 bit unsigned integer view. */
    31763223    uint8_t         au8[8];
     
    31803227    uint32_t        au32[2];
    31813228} X86PML4E;
    3182 #ifndef VBOX_FOR_DTRACE_LIB
     3229# ifndef VBOX_FOR_DTRACE_LIB
    31833230AssertCompileSize(X86PML4E, 8);
    3184 #endif
     3231# endif
    31853232/** Pointer to a page map level-4 entry. */
    31863233typedef X86PML4E *PX86PML4E;
     
    31973244    X86PML4E        a[X86_PG_PAE_ENTRIES];
    31983245} X86PML4;
    3199 #ifndef VBOX_FOR_DTRACE_LIB
     3246# ifndef VBOX_FOR_DTRACE_LIB
    32003247AssertCompileSize(X86PML4, 4096);
    3201 #endif
     3248# endif
    32023249/** Pointer to a page map level-4. */
    32033250typedef X86PML4 *PX86PML4;
    32043251/** Pointer to a const page map level-4. */
    32053252typedef const X86PML4 *PCX86PML4;
     3253
     3254#endif /* !__ASSEMBLER__ */
    32063255
    32073256/** The page shift to get the PML4 index. */
     
    32353284#define X86_FPU_INT16_INDEFINITE    INT16_MIN
    32363285/** @} */
     3286
     3287#ifndef __ASSEMBLER__
    32373288
    32383289/**
     
    32543305    uint16_t    padding4;       /**< 0x1a */
    32553306} X86FSTENV32P;
    3256 #ifndef VBOX_FOR_DTRACE_LIB
     3307# ifndef VBOX_FOR_DTRACE_LIB
    32573308AssertCompileSize(X86FSTENV32P, 0x1c);
    3258 #endif
     3309# endif
    32593310/** Pointer to a 32-bit protected mode FSTENV image. */
    32603311typedef X86FSTENV32P *PX86FSTENV32P;
     
    32703321    uint8_t reg[10];
    32713322} X86FPUMMX;
    3272 #ifndef VBOX_FOR_DTRACE_LIB
     3323# ifndef VBOX_FOR_DTRACE_LIB
    32733324AssertCompileSize(X86FPUMMX, 10);
    3274 #endif
     3325# endif
    32753326/** Pointer to a 80-bit MMX/FPU register type. */
    32763327typedef X86FPUMMX *PX86FPUMMX;
     
    33003351    uint128_t   au128[1];
    33013352} X86FPUREG;
    3302 #ifndef VBOX_FOR_DTRACE_LIB
     3353# ifndef VBOX_FOR_DTRACE_LIB
    33033354AssertCompileSize(X86FPUREG, 16);
    3304 #endif
     3355# endif
    33053356/** Pointer to a FPU register. */
    33063357typedef X86FPUREG *PX86FPUREG;
     
    33093360
    33103361/** FPU (x87) register - v2 with correct size. */
    3311 #pragma pack(1)
     3362# pragma pack(1)
    33123363typedef union X86FPUREG2
    33133364{
     
    33273378    uint64_t    au64[1];
    33283379} X86FPUREG2;
    3329 #pragma pack()
    3330 #ifndef VBOX_FOR_DTRACE_LIB
     3380# pragma pack()
     3381# ifndef VBOX_FOR_DTRACE_LIB
    33313382AssertCompileSize(X86FPUREG2, 10);
    3332 #endif
     3383# endif
    33333384/** Pointer to a FPU register - v2. */
    33343385typedef X86FPUREG2 *PX86FPUREG2;
     
    33653416    /** Double precision floating point view. */
    33663417    RTFLOAT64U  ar64[2];
    3367 #ifndef VBOX_FOR_DTRACE_LIB
     3418# ifndef VBOX_FOR_DTRACE_LIB
    33683419    /** Confusing nested 128-bit union view (this is what xmm should've been). */
    33693420    RTUINT128U  uXmm;
    3370 #endif
     3421# endif
    33713422} X86XMMREG;
    3372 #ifndef VBOX_FOR_DTRACE_LIB
     3423# ifndef VBOX_FOR_DTRACE_LIB
    33733424AssertCompileSize(X86XMMREG, 16);
    3374 #endif
     3425# endif
    33753426/** Pointer to an XMM register state. */
    33763427typedef X86XMMREG *PX86XMMREG;
     
    34023453    X86XMMREG   aXmm[2];
    34033454} X86YMMREG;
    3404 #ifndef VBOX_FOR_DTRACE_LIB
     3455# ifndef VBOX_FOR_DTRACE_LIB
    34053456AssertCompileSize(X86YMMREG, 32);
    3406 #endif
     3457# endif
    34073458/** Pointer to an YMM register state. */
    34083459typedef X86YMMREG *PX86YMMREG;
     
    34343485    X86YMMREG   aYmm[2];
    34353486} X86ZMMREG;
    3436 #ifndef VBOX_FOR_DTRACE_LIB
     3487# ifndef VBOX_FOR_DTRACE_LIB
    34373488AssertCompileSize(X86ZMMREG, 64);
    3438 #endif
     3489# endif
    34393490/** Pointer to an ZMM register state. */
    34403491typedef X86ZMMREG *PX86ZMMREG;
     
    34463497 * 32-bit FPU state (aka FSAVE/FRSTOR Memory Region).
    34473498 */
    3448 #pragma pack(1)
     3499# pragma pack(1)
    34493500typedef struct X86FPUSTATE
    34503501{
     
    34773528    X86FPUREG2  regs[8];
    34783529} X86FPUSTATE;
    3479 #pragma pack()
     3530# pragma pack()
    34803531AssertCompileSize(X86FPUSTATE, 108);
    34813532/** Pointer to a FPU state. */
     
    34873538 * FPU Extended state (aka FXSAVE/FXRSTORE Memory Region).
    34883539 */
    3489 #pragma pack(1)
     3540# pragma pack(1)
    34903541typedef struct X86FXSTATE
    34913542{
     
    35223573    uint32_t    au32RsrvdForSoftware[(512 - 464) / sizeof(uint32_t)];
    35233574} X86FXSTATE;
    3524 #pragma pack()
     3575# pragma pack()
    35253576/** Pointer to a FPU Extended state. */
    35263577typedef X86FXSTATE *PX86FXSTATE;
    35273578/** Pointer to a const FPU Extended state. */
    35283579typedef const X86FXSTATE *PCX86FXSTATE;
     3580
     3581#endif /* !__ASSEMBLER__ */
     3582
    35293583
    35303584/** Offset for software usable reserved bits (464:511) where we store a 32-bit
     
    37313785/** @} */
    37323786
     3787#ifndef __ASSEMBLER__
     3788
    37333789/**
    37343790 * XSAVE header.
     
    37433799    uint64_t        au64Reserved[6];
    37443800} X86XSAVEHDR;
    3745 #ifndef VBOX_FOR_DTRACE_LIB
     3801# ifndef VBOX_FOR_DTRACE_LIB
    37463802AssertCompileSize(X86XSAVEHDR, 64);
    3747 #endif
     3803# endif
    37483804/** Pointer to an XSAVE header. */
    37493805typedef X86XSAVEHDR *PX86XSAVEHDR;
     
    37613817    X86XMMREG       aYmmHi[16];
    37623818} X86XSAVEYMMHI;
    3763 #ifndef VBOX_FOR_DTRACE_LIB
     3819# ifndef VBOX_FOR_DTRACE_LIB
    37643820AssertCompileSize(X86XSAVEYMMHI, 256);
    3765 #endif
     3821# endif
    37663822/** Pointer to a high 128-bit YMM register state. */
    37673823typedef X86XSAVEYMMHI *PX86XSAVEYMMHI;
     
    37833839    } aRegs[4];
    37843840} X86XSAVEBNDREGS;
    3785 #ifndef VBOX_FOR_DTRACE_LIB
     3841# ifndef VBOX_FOR_DTRACE_LIB
    37863842AssertCompileSize(X86XSAVEBNDREGS, 64);
    3787 #endif
     3843# endif
    37883844/** Pointer to a MPX bound register state. */
    37893845typedef X86XSAVEBNDREGS *PX86XSAVEBNDREGS;
     
    37993855    uint64_t        fStatus;
    38003856} X86XSAVEBNDCFG;
    3801 #ifndef VBOX_FOR_DTRACE_LIB
     3857# ifndef VBOX_FOR_DTRACE_LIB
    38023858AssertCompileSize(X86XSAVEBNDCFG, 16);
    3803 #endif
     3859# endif
    38043860/** Pointer to a MPX bound config and status register state. */
    38053861typedef X86XSAVEBNDCFG *PX86XSAVEBNDCFG;
     
    38153871    uint64_t    aKRegs[8];
    38163872} X86XSAVEOPMASK;
    3817 #ifndef VBOX_FOR_DTRACE_LIB
     3873# ifndef VBOX_FOR_DTRACE_LIB
    38183874AssertCompileSize(X86XSAVEOPMASK, 64);
    3819 #endif
     3875# endif
    38203876/** Pointer to a AVX-512 opmask state. */
    38213877typedef X86XSAVEOPMASK *PX86XSAVEOPMASK;
     
    38313887    X86YMMREG   aHi256Regs[16];
    38323888} X86XSAVEZMMHI256;
    3833 #ifndef VBOX_FOR_DTRACE_LIB
     3889# ifndef VBOX_FOR_DTRACE_LIB
    38343890AssertCompileSize(X86XSAVEZMMHI256, 512);
    3835 #endif
     3891# endif
    38363892/** Pointer to a state comprising the upper 256-bits of ZMM0-15. */
    38373893typedef X86XSAVEZMMHI256 *PX86XSAVEZMMHI256;
     
    38473903    X86ZMMREG   aRegs[16];
    38483904} X86XSAVEZMM16HI;
    3849 #ifndef VBOX_FOR_DTRACE_LIB
     3905# ifndef VBOX_FOR_DTRACE_LIB
    38503906AssertCompileSize(X86XSAVEZMM16HI, 1024);
    3851 #endif
     3907# endif
    38523908/** Pointer to a state comprising ZMM16-32. */
    38533909typedef X86XSAVEZMM16HI *PX86XSAVEZMM16HI;
     
    38663922    uint64_t        auLater[128/8];
    38673923} X86XSAVELWP;
    3868 #ifndef VBOX_FOR_DTRACE_LIB
     3924# ifndef VBOX_FOR_DTRACE_LIB
    38693925AssertCompileSize(X86XSAVELWP, 128);
    3870 #endif
     3926# endif
    38713927
    38723928
     
    39193975    } u;
    39203976} X86XSAVEAREA;
    3921 #ifndef VBOX_FOR_DTRACE_LIB
     3977# ifndef VBOX_FOR_DTRACE_LIB
    39223978AssertCompileSize(X86XSAVEAREA, 8192);
    39233979AssertCompileMemberSize(X86XSAVEAREA, u.Intel, 0x840 /*2112 => total 0xa80 (2688) */);
     
    39293985AssertCompileMemberOffset(X86XSAVEAREA, u.Intel.ZmmHi256,   0x480 /* 1152 */);
    39303986AssertCompileMemberOffset(X86XSAVEAREA, u.Intel.Zmm16Hi,    0x680 /* 1664 */);
    3931 #endif
     3987# endif
    39323988/** Pointer to a XSAVE area. */
    39333989typedef X86XSAVEAREA *PX86XSAVEAREA;
    39343990/** Pointer to a const XSAVE area. */
    39353991typedef X86XSAVEAREA const *PCX86XSAVEAREA;
     3992
     3993#endif /* __ASSEMBLER__ */
    39363994
    39373995
     
    39904048 */
    39914049
    3992 #ifndef VBOX_FOR_DTRACE_LIB
     4050#ifndef __ASSEMBLER__
     4051# ifndef VBOX_FOR_DTRACE_LIB
    39934052/**
    39944053 * Descriptor attributes (as seen by VT-x).
     
    40194078    unsigned    u1Unusable : 1;
    40204079} X86DESCATTRBITS;
    4021 #endif /* !VBOX_FOR_DTRACE_LIB */
     4080# endif /* !VBOX_FOR_DTRACE_LIB */
     4081#endif /* !__ASSEMBLER__ */
    40224082
    40234083/** @name X86DESCATTR masks
     
    40384098/** @}  */
    40394099
    4040 #pragma pack(1)
     4100
     4101#ifndef __ASSEMBLER__
     4102# pragma pack(1)
    40414103typedef union X86DESCATTR
    40424104{
    40434105    /** Unsigned integer view. */
    40444106    uint32_t           u;
    4045 #ifndef VBOX_FOR_DTRACE_LIB
     4107# ifndef VBOX_FOR_DTRACE_LIB
    40464108    /** Normal view. */
    40474109    X86DESCATTRBITS    n;
    4048 #endif
     4110# endif
    40494111} X86DESCATTR;
    4050 #pragma pack()
     4112# pragma pack()
    40514113/** Pointer to descriptor attributes. */
    40524114typedef X86DESCATTR *PX86DESCATTR;
    40534115/** Pointer to const descriptor attributes. */
    40544116typedef const X86DESCATTR *PCX86DESCATTR;
     4117#endif /* !__ASSEMBLER__ */
    40554118
    40564119#ifndef VBOX_FOR_DTRACE_LIB
    40574120
     4121#ifndef __ASSEMBLER__
    40584122/**
    40594123 * Generic descriptor table entry
    40604124 */
    4061 #pragma pack(1)
     4125#  pragma pack(1)
    40624126typedef struct X86DESCGENERIC
    40634127{
     
    40924156    unsigned    u8BaseHigh2 : 8;
    40934157} X86DESCGENERIC;
    4094 #pragma pack()
     4158#  pragma pack()
    40954159/** Pointer to a generic descriptor entry. */
    40964160typedef X86DESCGENERIC *PX86DESCGENERIC;
    40974161/** Pointer to a const generic descriptor entry. */
    40984162typedef const X86DESCGENERIC *PCX86DESCGENERIC;
     4163# endif /* !__ASSEMBLER__ */
     4164
    40994165
    41004166/** @name Bit offsets of X86DESCGENERIC members.
    41014167 * @{*/
    4102 #define X86DESCGENERIC_BIT_OFF_LIMIT_LOW        (0)   /**< Bit offset of X86DESCGENERIC::u16LimitLow. */
    4103 #define X86DESCGENERIC_BIT_OFF_BASE_LOW         (16)  /**< Bit offset of X86DESCGENERIC::u16BaseLow. */
    4104 #define X86DESCGENERIC_BIT_OFF_BASE_HIGH1       (32)  /**< Bit offset of X86DESCGENERIC::u8BaseHigh1. */
    4105 #define X86DESCGENERIC_BIT_OFF_TYPE             (40)  /**< Bit offset of X86DESCGENERIC::u4Type. */
    4106 #define X86DESCGENERIC_BIT_OFF_DESC_TYPE        (44)  /**< Bit offset of X86DESCGENERIC::u1DescType. */
    4107 #define X86DESCGENERIC_BIT_OFF_DPL              (45)  /**< Bit offset of X86DESCGENERIC::u2Dpl. */
    4108 #define X86DESCGENERIC_BIT_OFF_PRESENT          (47)  /**< Bit offset of X86DESCGENERIC::uu1Present. */
    4109 #define X86DESCGENERIC_BIT_OFF_LIMIT_HIGH       (48)  /**< Bit offset of X86DESCGENERIC::u4LimitHigh. */
    4110 #define X86DESCGENERIC_BIT_OFF_AVAILABLE        (52)  /**< Bit offset of X86DESCGENERIC::u1Available. */
    4111 #define X86DESCGENERIC_BIT_OFF_LONG             (53)  /**< Bit offset of X86DESCGENERIC::u1Long. */
    4112 #define X86DESCGENERIC_BIT_OFF_DEF_BIG          (54)  /**< Bit offset of X86DESCGENERIC::u1DefBig. */
    4113 #define X86DESCGENERIC_BIT_OFF_GRANULARITY      (55)  /**< Bit offset of X86DESCGENERIC::u1Granularity. */
    4114 #define X86DESCGENERIC_BIT_OFF_BASE_HIGH2       (56)  /**< Bit offset of X86DESCGENERIC::u8BaseHigh2. */
     4168# define X86DESCGENERIC_BIT_OFF_LIMIT_LOW       (0)   /**< Bit offset of X86DESCGENERIC::u16LimitLow. */
     4169# define X86DESCGENERIC_BIT_OFF_BASE_LOW        (16)  /**< Bit offset of X86DESCGENERIC::u16BaseLow. */
     4170# define X86DESCGENERIC_BIT_OFF_BASE_HIGH1      (32)  /**< Bit offset of X86DESCGENERIC::u8BaseHigh1. */
     4171# define X86DESCGENERIC_BIT_OFF_TYPE            (40)  /**< Bit offset of X86DESCGENERIC::u4Type. */
     4172# define X86DESCGENERIC_BIT_OFF_DESC_TYPE       (44)  /**< Bit offset of X86DESCGENERIC::u1DescType. */
     4173# define X86DESCGENERIC_BIT_OFF_DPL             (45)  /**< Bit offset of X86DESCGENERIC::u2Dpl. */
     4174# define X86DESCGENERIC_BIT_OFF_PRESENT         (47)  /**< Bit offset of X86DESCGENERIC::uu1Present. */
     4175# define X86DESCGENERIC_BIT_OFF_LIMIT_HIGH      (48)  /**< Bit offset of X86DESCGENERIC::u4LimitHigh. */
     4176# define X86DESCGENERIC_BIT_OFF_AVAILABLE       (52)  /**< Bit offset of X86DESCGENERIC::u1Available. */
     4177# define X86DESCGENERIC_BIT_OFF_LONG            (53)  /**< Bit offset of X86DESCGENERIC::u1Long. */
     4178# define X86DESCGENERIC_BIT_OFF_DEF_BIG         (54)  /**< Bit offset of X86DESCGENERIC::u1DefBig. */
     4179# define X86DESCGENERIC_BIT_OFF_GRANULARITY     (55)  /**< Bit offset of X86DESCGENERIC::u1Granularity. */
     4180# define X86DESCGENERIC_BIT_OFF_BASE_HIGH2      (56)  /**< Bit offset of X86DESCGENERIC::u8BaseHigh2. */
    41154181/** @}  */
    41164182
     
    41184184/** @name LAR mask
    41194185 * @{ */
    4120 #define X86LAR_F_TYPE            UINT16_C(    0x0f00)
    4121 #define X86LAR_F_DT              UINT16_C(    0x1000)
    4122 #define X86LAR_F_DPL             UINT16_C(    0x6000)
    4123 #define X86LAR_F_DPL_SHIFT       13 /**< Shift count for the DPL value. */
    4124 #define X86LAR_F_P               UINT16_C(    0x8000)
    4125 #define X86LAR_F_AVL             UINT32_C(0x00100000)
    4126 #define X86LAR_F_L               UINT32_C(0x00200000)
    4127 #define X86LAR_F_D               UINT32_C(0x00400000)
    4128 #define X86LAR_F_G               UINT32_C(0x00800000)
     4186# define X86LAR_F_TYPE           UINT16_C(    0x0f00)
     4187# define X86LAR_F_DT             UINT16_C(    0x1000)
     4188# define X86LAR_F_DPL            UINT16_C(    0x6000)
     4189# define X86LAR_F_DPL_SHIFT      13 /**< Shift count for the DPL value. */
     4190# define X86LAR_F_P              UINT16_C(    0x8000)
     4191# define X86LAR_F_AVL            UINT32_C(0x00100000)
     4192# define X86LAR_F_L              UINT32_C(0x00200000)
     4193# define X86LAR_F_D              UINT32_C(0x00400000)
     4194# define X86LAR_F_G              UINT32_C(0x00800000)
    41294195/** @}  */
    41304196
    41314197
     4198# ifndef __ASSEMBLER__
    41324199/**
    41334200 * Call-, Interrupt-, Trap- or Task-gate descriptor (legacy).
     
    41624229/** Pointer to a const Call-, Interrupt-, Trap- or Task-gate descriptor entry. */
    41634230typedef const X86DESCGATE *PCX86DESCGATE;
     4231# endif /* !__ASSEMBLER__ */
    41644232
    41654233#endif /* VBOX_FOR_DTRACE_LIB */
    41664234
     4235#ifndef __ASSEMBLER__
    41674236/**
    41684237 * Descriptor table entry.
    41694238 */
    4170 #pragma pack(1)
     4239# pragma pack(1)
    41714240typedef union X86DESC
    41724241{
    4173 #ifndef VBOX_FOR_DTRACE_LIB
     4242# ifndef VBOX_FOR_DTRACE_LIB
    41744243    /** Generic descriptor view. */
    41754244    X86DESCGENERIC  Gen;
    41764245    /** Gate descriptor view. */
    41774246    X86DESCGATE     Gate;
    4178 #endif
    4179 
     4247# endif
    41804248    /** 8 bit unsigned integer view. */
    41814249    uint8_t         au8[8];
     
    41894257    uint64_t        u;
    41904258} X86DESC;
    4191 #ifndef VBOX_FOR_DTRACE_LIB
     4259# ifndef VBOX_FOR_DTRACE_LIB
    41924260AssertCompileSize(X86DESC, 8);
    4193 #endif
    4194 #pragma pack()
     4261# endif
     4262# pragma pack()
    41954263/** Pointer to descriptor table entry. */
    41964264typedef X86DESC *PX86DESC;
    41974265/** Pointer to const descriptor table entry. */
    41984266typedef const X86DESC *PCX86DESC;
     4267#endif /* !__ASSEMBLER__ */
    41994268
    42004269/** @def X86DESC_BASE
     
    42304299        ( ((a_pDesc)->u >> (16+16+8)) & UINT32_C(0xf0ff) ) /** @todo do we have a define for 0xf0ff? */
    42314300
    4232 #ifndef VBOX_FOR_DTRACE_LIB
     4301#ifndef __ASSEMBLER__
     4302# ifndef VBOX_FOR_DTRACE_LIB
    42334303
    42344304/**
     
    42364306 * Note: most of these bits have no meaning in long mode.
    42374307 */
    4238 #pragma pack(1)
     4308#  pragma pack(1)
    42394309typedef struct X86DESC64GENERIC
    42404310{
     
    42744344    uint32_t    u19Reserved     : 19;
    42754345} X86DESC64GENERIC;
    4276 #pragma pack()
     4346#  pragma pack()
    42774347/** Pointer to a generic descriptor entry. */
    42784348typedef X86DESC64GENERIC *PX86DESC64GENERIC;
     
    42854355 * @remarks This is, save a couple of comments, identical to X86DESC64GENERIC...
    42864356 */
    4287 #pragma pack(1)
     4357#  pragma pack(1)
    42884358typedef struct X86DESC64SYSTEM
    42894359{
     
    43234393    uint32_t    u19Reserved     : 19;
    43244394} X86DESC64SYSTEM;
    4325 #pragma pack()
     4395#  pragma pack()
    43264396/** Pointer to a system descriptor entry. */
    43274397typedef X86DESC64SYSTEM *PX86DESC64SYSTEM;
     
    43674437typedef const X86DESC64GATE *PCX86DESC64GATE;
    43684438
    4369 #endif /* VBOX_FOR_DTRACE_LIB */
     4439# endif /* VBOX_FOR_DTRACE_LIB */
    43704440
    43714441/**
    43724442 * Descriptor table entry.
    43734443 */
    4374 #pragma pack(1)
     4444# pragma pack(1)
    43754445typedef union X86DESC64
    43764446{
    4377 #ifndef VBOX_FOR_DTRACE_LIB
     4447# ifndef VBOX_FOR_DTRACE_LIB
    43784448    /** Generic descriptor view. */
    43794449    X86DESC64GENERIC    Gen;
     
    43824452    /** Gate descriptor view. */
    43834453    X86DESC64GATE       Gate;
    4384 #endif
     4454# endif
    43854455
    43864456    /** 8 bit unsigned integer view. */
     
    43934463    uint64_t            au64[2];
    43944464} X86DESC64;
    4395 #ifndef VBOX_FOR_DTRACE_LIB
     4465# ifndef VBOX_FOR_DTRACE_LIB
    43964466AssertCompileSize(X86DESC64, 16);
    4397 #endif
    4398 #pragma pack()
     4467# endif
     4468# pragma pack()
    43994469/** Pointer to descriptor table entry. */
    44004470typedef X86DESC64 *PX86DESC64;
     
    44344504#endif
    44354505/** @} */
     4506
     4507#endif /* !__ASSEMBLER__ */
    44364508
    44374509
     
    45894661#define X86_SEL_TYPE_SYS_386_TSS_LIMIT_MIN      0x67
    45904662
     4663#ifndef __ASSEMBLER__
     4664
    45914665/**
    45924666 * 16-bit Task Segment (TSS).
    45934667 */
    4594 #pragma pack(1)
     4668# pragma pack(1)
    45954669typedef struct X86TSS16
    45964670{
     
    46404714    RTSEL       selLdt;
    46414715} X86TSS16;
    4642 #ifndef VBOX_FOR_DTRACE_LIB
     4716# ifndef VBOX_FOR_DTRACE_LIB
    46434717AssertCompileSize(X86TSS16, X86_SEL_TYPE_SYS_286_TSS_LIMIT_MIN + 1);
    4644 #endif
    4645 #pragma pack()
     4718# endif
     4719# pragma pack()
    46464720/** Pointer to a 16-bit task segment. */
    46474721typedef X86TSS16 *PX86TSS16;
     
    46534727 * 32-bit Task Segment (TSS).
    46544728 */
    4655 #pragma pack(1)
     4729# pragma pack(1)
    46564730typedef struct X86TSS32
    46574731{
     
    47234797    uint16_t    offIoBitmap;
    47244798} X86TSS32;
    4725 #pragma pack()
     4799# pragma pack()
    47264800/** Pointer to task segment. */
    47274801typedef X86TSS32 *PX86TSS32;
    47284802/** Pointer to const task segment. */
    47294803typedef const X86TSS32 *PCX86TSS32;
    4730 #ifndef VBOX_FOR_DTRACE_LIB
     4804# ifndef VBOX_FOR_DTRACE_LIB
    47314805AssertCompileSize(X86TSS32, X86_SEL_TYPE_SYS_386_TSS_LIMIT_MIN + 1);
    47324806AssertCompileMemberOffset(X86TSS32, cr3, 28);
    47334807AssertCompileMemberOffset(X86TSS32, offIoBitmap, 102);
    4734 #endif
     4808# endif
    47354809
    47364810/**
    47374811 * 64-bit Task segment.
    47384812 */
    4739 #pragma pack(1)
     4813# pragma pack(1)
    47404814typedef struct X86TSS64
    47414815{
     
    47644838    uint16_t    offIoBitmap;
    47654839} X86TSS64;
    4766 #pragma pack()
     4840# pragma pack()
    47674841/** Pointer to a 64-bit task segment. */
    47684842typedef X86TSS64 *PX86TSS64;
    47694843/** Pointer to a const 64-bit task segment. */
    47704844typedef const X86TSS64 *PCX86TSS64;
    4771 #ifndef VBOX_FOR_DTRACE_LIB
     4845# ifndef VBOX_FOR_DTRACE_LIB
    47724846AssertCompileSize(X86TSS64, X86_SEL_TYPE_SYS_386_TSS_LIMIT_MIN + 1);
    4773 #endif
     4847# endif
     4848
     4849#endif /* !__ASSEMBLER__ */
    47744850
    47754851/** @} */
     
    48164892
    48174893
     4894#ifndef __ASSEMBLER__
    48184895/**
    48194896 * x86 Exceptions/Faults/Traps.
     
    48734950/** Pointer to a const x86 exception code. */
    48744951typedef const X86XCPT *PCX86XCPT;
     4952#endif /* !__ASSEMBLER__ */
    48754953/** The last valid (currently reserved) exception value. */
    48764954#define X86_XCPT_LAST               0x1f
     
    49104988/** @} */
    49114989
    4912 #pragma pack(1)
     4990#ifndef __ASSEMBLER__
     4991
     4992# pragma pack(1)
    49134993/**
    49144994 * 16-bit IDTR.
     
    49215001    uint16_t    uSel;
    49225002} X86IDTR16, *PX86IDTR16;
    4923 #pragma pack()
    4924 
    4925 #pragma pack(1)
     5003# pragma pack()
     5004
     5005# pragma pack(1)
    49265006/**
    49275007 * 32-bit IDTR/GDTR.
     
    49325012    uint16_t    cb;
    49335013    /** Address of the descriptor table. */
    4934 #ifndef VBOX_FOR_DTRACE_LIB
     5014# ifndef VBOX_FOR_DTRACE_LIB
    49355015    uint32_t    uAddr;
    4936 #else
     5016# else
    49375017    uint16_t    au16Addr[2];
    4938 #endif
     5018# endif
    49395019} X86XDTR32, *PX86XDTR32;
    4940 #pragma pack()
    4941 
    4942 #pragma pack(1)
     5020# pragma pack()
     5021
     5022# pragma pack(1)
    49435023/**
    49445024 * 64-bit IDTR/GDTR.
     
    49495029    uint16_t    cb;
    49505030    /** Address of the descriptor table. */
    4951 #ifndef VBOX_FOR_DTRACE_LIB
     5031# ifndef VBOX_FOR_DTRACE_LIB
    49525032    uint64_t    uAddr;
    4953 #else
     5033# else
    49545034    uint16_t    au16Addr[4];
    4955 #endif
     5035# endif
    49565036} X86XDTR64, *PX86XDTR64;
    4957 #pragma pack()
     5037# pragma pack()
     5038
     5039#endif /* !__ASSEMBLER__ */
    49585040
    49595041
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