VirtualBox

Changeset 59941 in vbox


Ignore:
Timestamp:
Mar 7, 2016 3:13:51 PM (9 years ago)
Author:
vboxsync
Message:

bs3kit: Updates and fixes.

Location:
trunk/src/VBox/ValidationKit/bootsectors
Files:
26 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ValidationKit/bootsectors/Makefile.kmk

    r59866 r59941  
    228228MISCBINS += bs3-cpu-basic-2
    229229bs3-cpu-basic-2_TEMPLATE = VBoxBS3KitImg
     230 ifeq ($(KBUILD_HOST),win)
     231bs3-cpu-basic-2_DEFS = HAVE_OMF_CONVERTER
     232 endif
    230233bs3-cpu-basic-2_SOURCES = \
    231234        bs3kit/bs3-first-rm.asm \
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-basic-2-c.c

    r59866 r59941  
    3535FNBS3TESTDOMODE BS3_FAR_CODE  bs3CpuBasic2_iret_c32;
    3636FNBS3TESTDOMODE BS3_FAR_CODE  bs3CpuBasic2_iret_c64;
     37#pragma alias("_bs3CpuBasic2_iret_c64", "bs3CpuBasic2_iret_c64")
    3738
    3839
    3940static const BS3TESTMODEENTRY g_aModeTest[] =
    4041{
    41     { "iret", bs3CpuBasic2_iret_c16,
    42         bs3CpuBasic2_iret_c16, bs3CpuBasic2_iret_c32, bs3CpuBasic2_iret_c16,
    43         bs3CpuBasic2_iret_c32, bs3CpuBasic2_iret_c16, bs3CpuBasic2_iret_c16 }
     42    BS3TESTMODEENTRY_CMN("iret", bs3CpuBasic2_iret),
    4443};
    4544
     
    5049    Bs3TestInit("bs3-cpu-basic-2");
    5150
    52     //Bs3TestDoModes(g_aModeTest, RT_ELEMENTS(g_aModeTest));
     51#ifdef HAVE_OMF_CONVERTER /** @todo Awaiting ELF + Mach-O -> OMF conversion. */
     52    Bs3TestDoModes_rm(g_aModeTest, RT_ELEMENTS(g_aModeTest));
     53#endif
    5354
    5455    Bs3TestTerm();
  • trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-basic-2-template.mac

    r59866 r59941  
    1313
    1414BS3_PROC_BEGIN_CMN bs3CpuBasic2_iret
    15         hlt
     15        ;hlt
    1616        xor     al, al
     17        mov al, TMPL_MODE
    1718        ret
    1819BS3_PROC_END_CMN   bs3CpuBasic2_iret
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-MemAlloc.c

    r59932 r59941  
    7979        size_t   const cbAligned = RT_ALIGN_Z(cb, _4K);
    8080        uint16_t const cPages    = cbAligned >> 12 /* div _4K */;
     81        PBS3SLABCTL    pSlabCtl  = enmKind == BS3MEMKIND_REAL
     82                                  ? &BS3_DATA_NM(g_Bs3Mem4KLow).Core : &BS3_DATA_NM(g_Bs3Mem4KUpperTiled).Core;
    8183
    82         pvRet = Bs3SlabAllocEx(enmKind == BS3MEMKIND_REAL
    83                                ? &BS3_DATA_NM(g_Bs3Mem4KLow).Core : &BS3_DATA_NM(g_Bs3Mem4KUpperTiled).Core,
     84        pvRet = Bs3SlabAllocEx(pSlabCtl,
    8485                               cPages,
    8586                               cPages <= _64K / _4K ? BS3_SLAB_ALLOC_F_SAME_TILE : 0);
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-PagingInitRootForLM.c

    r59286 r59941  
    9191                return VINF_SUCCESS;
    9292            }
     93
     94            BS3_ASSERT(false);
    9395            Bs3MemFree(pPdPtr, _4K);
    9496        }
     97        BS3_ASSERT(false);
    9598        Bs3MemFree(pPml4, _4K);
    9699    }
    97 
     100    BS3_ASSERT(false);
    98101    return VERR_NO_MEMORY;
    99102}
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-PagingInitRootForPAE.c

    r59286 r59941  
    7777            return VINF_SUCCESS;
    7878        }
     79        BS3_ASSERT(false);
    7980        Bs3MemFree(pPdPtr, _4K);
    8081    }
     82    BS3_ASSERT(false);
    8183    return VERR_NO_MEMORY;
    8284}
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-PagingInitRootForPP.c

    r59286 r59941  
    6262        return VINF_SUCCESS;
    6363    }
     64
     65    BS3_ASSERT(false);
    6466    return VERR_NO_MEMORY;
    6567}
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-SelProtFar32ToFlat32.c

    r59895 r59941  
    3333    PCX86DESC   pEntry;
    3434    if (!(uSel & X86_SEL_LDT))
    35          pEntry = &BS3_DATA_NM(Bs3Gdt)[uSel & X86_SEL_MASK];
     35         pEntry = &BS3_DATA_NM(Bs3Gdt)[uSel >> X86_SEL_SHIFT];
    3636    else
    37          pEntry = &BS3_DATA_NM(Bs3Ldt)[uSel & X86_SEL_MASK];
     37         pEntry = &BS3_DATA_NM(Bs3Ldt)[uSel >> X86_SEL_SHIFT];
    3838    uRet  = pEntry->Gen.u16BaseLow;
    3939    uRet |= (uint32_t)pEntry->Gen.u8BaseHigh1 << 16;
    40     uRet |= (uint32_t)pEntry->Gen.u8BaseHigh2 << 16;
     40    uRet |= (uint32_t)pEntry->Gen.u8BaseHigh2 << 24;
    4141    uRet += off;
    4242    return uRet;
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-SlabAllocEx.c

    r59286 r59941  
    6060                    {
    6161                        /* Complete the allocation. */
     62                        void *fpRet;
    6263                        for (i = 0; i < cChunks; i++)
    6364                            ASMBitSet(&pSlabCtl->bmAllocated, iBit + i);
    6465                        pSlabCtl->cFreeChunks  -= cChunks;
    65                         return BS3_XPTR_GET(void, pvRet);
     66                        fpRet = BS3_XPTR_GET(void, pvRet);
     67#if ARCH_BITS == 16
     68                        BS3_ASSERT(fpRet != NULL);
     69#endif
     70                        return fpRet;
    6671                    }
    6772
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-StrFormatV.c

    r58811 r59941  
    6363    PFNBS3STRFORMATOUTPUT pfnOutput;
    6464    /** User argument for pfnOutput. */
    65     void BS3_FAR  *pvUser;
     65    void BS3_FAR   *pvUser;
    6666
    6767    /** STR_F_XXX flags.   */
     
    150150    if (pState->fFlags & STR_F_SPECIAL)
    151151    {
    152         cchActual += pState->pfnOutput(0, pState->pvUser);
     152        cchActual += pState->pfnOutput('0', pState->pvUser);
    153153        cchActual += pState->pfnOutput(!(pState->fFlags & STR_F_CAPITAL) ? 'x' : 'X', pState->pvUser);
    154154    }
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-SwitchTo16BitV86.asm

    r59934 r59941  
    4343        ; Construct basic v8086 return frame.
    4444        BS3_ONLY_16BIT_STMT movzx   esp, sp
    45         push    dword 0                 ; GS
    46         push    dword 0                 ; FS
    47         push    dword BS3_SEL_DATA16    ; ES
    48         push    dword BS3_SEL_DATA16    ; DS
    49         push    dword 0                 ; SS - later
    50         push    dword 0                 ; return ESP, later.
     45        push    dword 0                         ; +0x20: GS
     46        push    dword 0                         ; +0x1c: FS
     47        push    dword BS3_SEL_DATA16            ; +0x18: ES
     48        push    dword BS3_SEL_DATA16            ; +0x14: DS
     49        push    dword 0                         ; +0x10: SS - later
     50        push    dword 0                         ; +0x0c: return ESP, later.
    5151        pushfd
    52         or      dword [esp], X86_EFL_VM ; Set the VM flag in EFLAGS.
    53         push    dword BS3_SEL_TEXT16
     52        or      dword [esp], X86_EFL_VM         ; +0x08: Set the VM flag in EFLAGS.
     53        push    dword BS3_SEL_TEXT16            ; +0x04
    5454        push    word 0
    5555 %if TMPL_BITS == 16
    56         push    word [esp + 2 + 7 * 4 + 2]
     56        push    word [esp + 2 + 8 * 4 + 2]      ; +0x00
    5757 %else
    58         push    word [esp + 2 + 7 * 4]
     58        push    word [esp + 2 + 8 * 4]          ; +0x00
    5959 %endif
    6060        ; Save registers and stuff.
     
    103103 %endif
    104104
    105         ; Thunk SS:ESP to real-mode address via 32-bit flat.
     105        ; Thunk return SS:ESP to real-mode address via 32-bit flat.
    106106        lea     eax, [esp + 4*4 + 24h]
    107107        push    ss
    108108        push    eax
    109109        BS3_CALL Bs3SelProtFar32ToFlat32, 2
     110        add     esp, sCB + xCB
    110111        mov     [esp + 4*4 + 0ch], ax   ; high word is already zero
    111112 %if TMPL_BITS == 16
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-SwitchTo32Bit.asm

    r59934 r59941  
    8484 %if TMPL_BITS == 16
    8585        ; Calc flat stack into edx.
     86        movzx   eax, sp
    8687        push    ecx
    8788        push    ebx
    8889        push    ss
    89         push    word 0
    90         push    sp
     90        push    eax
    9191        call    Bs3SelProtFar32ToFlat32
    9292        add     sp, 6
     
    133133 %if TMPL_BITS == 16
    134134        ; Adjust the return address.
    135         movsx   eax, word [esp + 4*3 + 2]
     135        movzx   eax, word [esp + 4*3 + 2]
    136136        add     eax, BS3_ADDR_BS3TEXT16
    137137        mov     [esp + 4*3], eax
     
    139139
    140140        ; Restore and return.
    141         BS3_ONLY_16BIT_STMT pop     edx
     141 %if TMPL_BITS == 16
     142        pop     edx
     143 %endif
    142144        popfd
    143145        pop     eax
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-TestInit.c

    r59865 r59941  
    4848    BS3_DATA_NM(g_cusBs3SubTestAtErrors)     = 0;
    4949    BS3_DATA_NM(g_fbBs3SubTestReported)      = true;
    50     BS3_DATA_NM(g_fbBs3SubTestSkipped)       = true;
     50    BS3_DATA_NM(g_fbBs3SubTestSkipped)       = false;
    5151    BS3_DATA_NM(g_cusBs3SubTests)            = 0;
    5252    BS3_DATA_NM(g_cusBs3SubTestsFailed)      = 0;
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-TestSub.c

    r59865 r59941  
    5656     * Tell VMMDev and output to the console.
    5757     */
    58     bs3TestSendCmdWithStr(VMMDEV_TESTING_CMD_SUB_NEW, pszFormat);
     58    bs3TestSendCmdWithStr(VMMDEV_TESTING_CMD_SUB_NEW, BS3_DATA_NM(g_szBs3SubTest));
    5959
    6060    Bs3PrintStr(BS3_DATA_NM(g_szBs3SubTest));
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-EnteredMode.asm

    r59863 r59941  
    163163        mov     es, ax
    164164
     165%if TMPL_BITS == 16
     166        ; For restoring after Bs3Trap* calls below.
     167        push    ax
     168        push    ax
     169%endif
     170
    165171        ;
    166172        ; Set global indicating CPU mode.
     
    225231%endif
    226232
     233%if TMPL_BITS == 16
     234        ; Restoring ds and es after the above calls.
     235        pop     es
     236        pop     ds
     237%endif
     238
    227239        ;
    228240        ; Epilogue.
     
    237249        leave
    238250        ret
     251.dbg_str:
     252    db 'CurrentMode=%#x', 0ah, 0
    239253BS3_PROC_END_MODE   Bs3EnteredMode
    240254
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-PagingGetRootForLM64.asm

    r59938 r59941  
    8686        ; Not a problematic addressing mode.
    8787        ;
     88        BS3_ONLY_64BIT_STMT sub     rsp, 20h
     89        BS3_CALL Bs3PagingInitRootForLM, 0
    8890        BS3_ONLY_64BIT_STMT add     rsp, 20h
    89         BS3_CALL Bs3PagingInitRootForLM, 0
    9091%endif
    9192
     93        ;
     94        ; Load the value and return.
     95        ;
    9296        BS3_ONLY_16BIT_STMT push    BS3DATA16
    9397        BS3_ONLY_16BIT_STMT pop     ds
    9498        mov     eax, [g_PhysPagingRootLM TMPL_WRT_DATA16_OR_FLAT]
     99
    95100        BS3_ONLY_16BIT_STMT pop     ds
    96101        leave
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-PagingGetRootForPAE16.asm

    r59244 r59941  
    2828
    2929
    30 BS3_EXTERN_DATA16 g_PhysPagingRootPAE
    31 TMPL_BEGIN_TEXT
    3230extern TMPL_NM(Bs3PagingGetRootForPAE32)
    3331
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-PagingGetRootForPAE32.asm

    r59938 r59941  
    7474        call    Bs3PagingInitRootForPAE
    7575        call    NAME(Bs3SwitchToRM_pe16)
     76
    7677%elifdef TMPL_CMN_V86
    7778        ;
     
    8687        ; Not a problematic addressing mode.
    8788        ;
     89        BS3_ONLY_64BIT_STMT sub     rsp, 20h
     90        BS3_CALL Bs3PagingInitRootForPAE, 0
    8891        BS3_ONLY_64BIT_STMT add     rsp, 20h
    89         BS3_CALL Bs3PagingInitRootForPAE, 0
    9092%endif
    9193
     94        ;
     95        ; Load the value and return.
     96        ;
    9297        BS3_ONLY_16BIT_STMT push    BS3DATA16
    9398        BS3_ONLY_16BIT_STMT pop     ds
    9499        mov     eax, [g_PhysPagingRootPAE TMPL_WRT_DATA16_OR_FLAT]
     100
    95101        BS3_ONLY_16BIT_STMT pop     ds
    96102        leave
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-PagingGetRootForPP16.asm

    r59237 r59941  
    55
    66;
    7 ; Copyright (C) 2007-2015 Oracle Corporation
     7; Copyright (C) 2007-2016 Oracle Corporation
    88;
    99; This file is part of VirtualBox Open Source Edition (OSE), as
     
    2828
    2929
    30 BS3_EXTERN_DATA16 g_PhysPagingRootPP
    31 TMPL_BEGIN_TEXT
    3230extern TMPL_NM(Bs3PagingGetRootForPP32)
    3331
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-PagingGetRootForPP32.asm

    r59938 r59941  
    7474        call    Bs3PagingInitRootForPP
    7575        call    NAME(Bs3SwitchToRM_pe16)
     76
    7677%elifdef TMPL_CMN_V86
    7778        ;
     
    8687        ; Not a problematic addressing mode.
    8788        ;
     89        BS3_ONLY_64BIT_STMT sub     rsp, 20h
     90        BS3_CALL Bs3PagingInitRootForPP, 0
    8891        BS3_ONLY_64BIT_STMT add     rsp, 20h
    89         BS3_CALL Bs3PagingInitRootForPP, 0
    9092%endif
    9193
     94        ;
     95        ; Load the value and return.
     96        ;
    9297        BS3_ONLY_16BIT_STMT push    BS3DATA16
    9398        BS3_ONLY_16BIT_STMT pop     ds
    9499        mov     eax, [g_PhysPagingRootPP TMPL_WRT_DATA16_OR_FLAT]
     100
    95101        BS3_ONLY_16BIT_STMT pop     ds
    96102        leave
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-SwitchToPP16.asm

    r59287 r59941  
    8989
    9090        ;
     91        ; Get the page directory (returned in eax).
     92        ; Will lazy init page tables (in 16-bit prot mode).
     93        ;
     94        extern NAME(Bs3PagingGetRootForPP16_rm)
     95        call   NAME(Bs3PagingGetRootForPP16_rm)
     96
     97        cli
     98        mov     cr3, eax
     99
     100        ;
    91101        ; Make sure PAE is really off and that PSE is enabled.
    92102        ; ASSUMES PSE supported (pentium+).
     
    100110        mov     cr4, eax
    101111.cr4_is_fine:
    102 
    103         ;
    104         ; Get the page directory (returned in eax).
    105         ; Will lazy init page tables (in 16-bit prot mode).
    106         ;
    107         extern NAME(Bs3PagingGetRootForPP16_rm)
    108         call   NAME(Bs3PagingGetRootForPP16_rm)
    109 
    110         cli
    111         mov     cr3, eax
    112112
    113113        ;
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TestDoModes.c

    r59938 r59941  
    171171BS3_DECL(void) TMPL_NM(Bs3TestDoModes)(PCBS3TESTMODEENTRY paEntries, size_t cEntries)
    172172{
     173    bool const      fDoV86Mode    = false;
    173174    uint8_t const   bCpuType      = BS3_DATA_NM(g_uBs3CpuDetected) & BS3CPU_TYPE_MASK;
    174175    bool const      fHavePae      = RT_BOOL(BS3_DATA_NM(g_uBs3CpuDetected) & BS3CPU_F_PAE);
     
    216217        }
    217218
    218         if (paEntries[i].pfnDoPE16_V86)
     219        if (paEntries[i].pfnDoPE16_V86 && fDoV86Mode)
    219220        {
    220221            bErrNo = TMPL_NM(Bs3TestCallDoerInPE16_V86)(CONV_TO_BS3TEXT16(paEntries[i].pfnDoPE16_V86));
     
    237238        }
    238239
    239         if (paEntries[i].pfnDoPEV86)
     240        if (paEntries[i].pfnDoPEV86 && fDoV86Mode)
    240241        {
    241242            bErrNo = TMPL_NM(Bs3TestCallDoerInPEV86)(CONV_TO_BS3TEXT16(paEntries[i].pfnDoPEV86));
     
    261262        }
    262263
    263         if (paEntries[i].pfnDoPP16_V86)
     264        if (paEntries[i].pfnDoPP16_V86 && fDoV86Mode)
    264265        {
    265266            bErrNo = TMPL_NM(Bs3TestCallDoerInPP16_V86)(CONV_TO_BS3TEXT16(paEntries[i].pfnDoPP16_V86));
     
    282283        }
    283284
    284         if (paEntries[i].pfnDoPPV86)
     285        if (paEntries[i].pfnDoPPV86 && fDoV86Mode)
    285286        {
    286287            bErrNo = TMPL_NM(Bs3TestCallDoerInPPV86)(CONV_TO_BS3TEXT16(paEntries[i].pfnDoPPV86));
     
    309310        }
    310311
    311         if (paEntries[i].pfnDoPAE16_V86)
     312        if (paEntries[i].pfnDoPAE16_V86 && fDoV86Mode)
    312313        {
    313314            bErrNo = TMPL_NM(Bs3TestCallDoerInPAE16_V86)(CONV_TO_BS3TEXT16(paEntries[i].pfnDoPAE16_V86));
     
    330331        }
    331332
    332         if (paEntries[i].pfnDoPAEV86)
     333        if (paEntries[i].pfnDoPAEV86 && fDoV86Mode)
    333334        {
    334335            bErrNo = TMPL_NM(Bs3TestCallDoerInPAEV86)(CONV_TO_BS3TEXT16(paEntries[i].pfnDoPAEV86));
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TestDoModesHlp.asm

    r59938 r59941  
    8585        push    xBP
    8686        mov     xBP, xSP
     87        xPUSHF
    8788
    8889        ; Save non-volatile registers so the DO function doesn't have to.
     
    122123        ; Restore registers.
    123124%if TMPL_BITS == 16
    124         sub     bp, 0ah
     125        sub     bp, (1+5+3)*2
    125126        mov     sp, bp
    126127%elif TMPL_BITS == 32
    127         lea     xSP, [xBP - 14h]
     128        lea     xSP, [xBP - (1+5+5)*4]
    128129%else
    129         lea     xSP, [xBP - 68h]
     130        lea     xSP, [xBP - (1+5+8)*8]
    130131        pop     r15
    131132        pop     r14
     
    151152        pop     xCX
    152153        pop     xBX
     154        xPOPF
    153155        pop     xBP
    154156        ret
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-rm-InitMemory.c

    r59482 r59941  
    295295    }
    296296
     297#if 0
     298    /*
     299     * For debugging.
     300     */
     301    Bs3Printf("Memory-low: %u/%u chunks bmAllocated[]=", g_Bs3Mem4KLow.Core.cFreeChunks, g_Bs3Mem4KLow.Core.cChunks);
     302    for (i = 0; i < 20; i++)
     303        Bs3Printf("%02x ", g_Bs3Mem4KLow.Core.bmAllocated[i]);
     304    Bs3Printf("\n");
     305    Bs3Printf("Memory-upt: %u/%u chunks bmAllocated[]=", g_Bs3Mem4KUpperTiled.Core.cFreeChunks, g_Bs3Mem4KUpperTiled.Core.cChunks);
     306    for (i = 0; i < 32; i++)
     307        Bs3Printf("%02x ", g_Bs3Mem4KUpperTiled.Core.bmAllocated[i]);
     308    Bs3Printf("...\n");
     309#endif
    297310}
    298311
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-system-data.asm

    r58694 r59941  
    198198
    199199BS3_GLOBAL_DATA Bs3Gdte_R %+ %1 %+ _DS16, 8     ; Entry 108h
    200         dw  0ffffh, 03000h                      ; 16-bit data segment with base 023000h.
    201         dw  09302h | (%1 << 0dh), 00000h
     200        dw  0ffffh, (0xffff & BS3_ADDR_BS3DATA16) ; 16-bit data segment with base 027000h.
     201        dw  09300h | (%1 << 0dh) | (0xff & (BS3_ADDR_BS3DATA16 >> 16)), 00000h | (0xff00 & (BS3_ADDR_BS3DATA16 >> 16))
    202202
    203203BS3_GLOBAL_DATA Bs3Gdte_R %+ %1 %+ _SS16, 8     ; Entry 110h
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit.h

    r59938 r59941  
    14771477typedef BS3TESTMODEENTRY const *PCBS3TESTMODEENTRY;
    14781478
     1479/** Produces a BS3TESTMODEENTRY initializer for common (c16,c32,c64) test
     1480 *  functions. */
     1481#define BS3TESTMODEENTRY_CMN(a_szTest, a_BaseNm) \
     1482    {   /*pszSubTest =*/ a_szTest, \
     1483        /*RM*/        RT_CONCAT(a_BaseNm, _c16), \
     1484        /*PE16*/      RT_CONCAT(a_BaseNm, _c16), \
     1485        /*PE16_32*/   RT_CONCAT(a_BaseNm, _c32), \
     1486        /*PE16_V86*/  RT_CONCAT(a_BaseNm, _c16), \
     1487        /*PE32*/      RT_CONCAT(a_BaseNm, _c32), \
     1488        /*PE32_16*/   RT_CONCAT(a_BaseNm, _c16), \
     1489        /*PEV86*/     RT_CONCAT(a_BaseNm, _c16), \
     1490        /*PP16*/      RT_CONCAT(a_BaseNm, _c16), \
     1491        /*PP16_32*/   RT_CONCAT(a_BaseNm, _c32), \
     1492        /*PP16_V86*/  RT_CONCAT(a_BaseNm, _c16), \
     1493        /*PP32*/      RT_CONCAT(a_BaseNm, _c32), \
     1494        /*PP32_16*/   RT_CONCAT(a_BaseNm, _c16), \
     1495        /*PPV86*/     RT_CONCAT(a_BaseNm, _c16), \
     1496        /*PAE16*/     RT_CONCAT(a_BaseNm, _c16), \
     1497        /*PAE16_32*/  RT_CONCAT(a_BaseNm, _c32), \
     1498        /*PAE16_V86*/ RT_CONCAT(a_BaseNm, _c16), \
     1499        /*PAE32*/     RT_CONCAT(a_BaseNm, _c32), \
     1500        /*PAE32_16*/  RT_CONCAT(a_BaseNm, _c16), \
     1501        /*PAEV86*/    RT_CONCAT(a_BaseNm, _c16), \
     1502        /*LM16*/      RT_CONCAT(a_BaseNm, _c16), \
     1503        /*LM32*/      RT_CONCAT(a_BaseNm, _c32), \
     1504        /*LM64*/      RT_CONCAT(a_BaseNm, _c64), \
     1505    }
     1506
     1507/** Produces a BS3TESTMODEENTRY initializer for a full set of mode test
     1508 *  functions. */
     1509#define BS3TESTMODEENTRY_MODE(a_szTest, a_BaseNm) \
     1510    {   /*pszSubTest =*/ a_szTest, \
     1511        /*RM*/        RT_CONCAT(a_BaseNm, _rm), \
     1512        /*PE16*/      RT_CONCAT(a_BaseNm, _pe16), \
     1513        /*PE16_32*/   RT_CONCAT(a_BaseNm, _pe16_32), \
     1514        /*PE16_V86*/  RT_CONCAT(a_BaseNm, _pe16_v86), \
     1515        /*PE32*/      RT_CONCAT(a_BaseNm, _pe32), \
     1516        /*PE32_16*/   RT_CONCAT(a_BaseNm, _pe32_16), \
     1517        /*PEV86*/     RT_CONCAT(a_BaseNm, _pev86), \
     1518        /*PP16*/      RT_CONCAT(a_BaseNm, _pp16), \
     1519        /*PP16_32*/   RT_CONCAT(a_BaseNm, _pp16_32), \
     1520        /*PP16_V86*/  RT_CONCAT(a_BaseNm, _pp16_v86), \
     1521        /*PP32*/      RT_CONCAT(a_BaseNm, _pp32), \
     1522        /*PP32_16*/   RT_CONCAT(a_BaseNm, _pp32_16), \
     1523        /*PPV86*/     RT_CONCAT(a_BaseNm, _ppev86), \
     1524        /*PAE16*/     RT_CONCAT(a_BaseNm, _pae16), \
     1525        /*PAE16_32*/  RT_CONCAT(a_BaseNm, _pae16_32), \
     1526        /*PAE16_V86*/ RT_CONCAT(a_BaseNm, _pae16_v86), \
     1527        /*PAE32*/     RT_CONCAT(a_BaseNm, _pae32), \
     1528        /*PAE32_16*/  RT_CONCAT(a_BaseNm, _pae32_16), \
     1529        /*PAEV86*/    RT_CONCAT(a_BaseNm, _paev86), \
     1530        /*LM16*/      RT_CONCAT(a_BaseNm, _lm16), \
     1531        /*LM32*/      RT_CONCAT(a_BaseNm, _lm32), \
     1532        /*LM64*/      RT_CONCAT(a_BaseNm, _lm64), \
     1533    }
     1534
    14791535
    14801536/**
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