VirtualBox

Ignore:
Timestamp:
Mar 21, 2017 2:51:51 PM (8 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
114091
Message:

bs3kit: Added Bs3TestDoModesByMax.

Location:
trunk/src/VBox/ValidationKit/bootsectors/bs3kit
Files:
7 edited
3 copied

Legend:

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

    r66168 r66179  
    300300        bs3-mode-TestDoModes.c \
    301301        bs3-mode-TestDoModesByOne.c \
     302        bs3-mode-TestDoModesByMax.c \
    302303        bs3-mode-TestDoModesHlp.asm \
    303304
     
    310311        bs3-first-rm.asm \
    311312        bs3-mode-CpuDetect.asm \
    312         bs3-mode-TestDoModesByOneStub.asm \
     313        bs3-mode-TestDoModesStub.asm \
     314        bs3-mode-TestDoModesByOneStub.asm \
     315        bs3-mode-TestDoModesByMaxStub.asm \
    313316
    314317
     
    320323bs3kit-pe16_SOURCES  = $(VBOX_BS3KIT_MODE_SOURCES) \
    321324        bs3-first-pe16.asm \
    322         bs3-mode-TestDoModesByOneStub.asm \
     325        bs3-mode-TestDoModesStub.asm \
     326        bs3-mode-TestDoModesByOneStub.asm \
     327        bs3-mode-TestDoModesByMaxStub.asm \
    323328#       bs3-mode-CpuDetect.asm
    324329
     
    329334bs3kit-pe16_32_DEFS     = TMPL_MODE=BS3_MODE_PE16_32
    330335bs3kit-pe16_32_SOURCES  = $(VBOX_BS3KIT_MODE_SOURCES) \
    331         bs3-mode-TestDoModesByOneStub.asm \
     336        bs3-mode-TestDoModesStub.asm \
     337        bs3-mode-TestDoModesByOneStub.asm \
     338        bs3-mode-TestDoModesByMaxStub.asm \
    332339
    333340# The v86 BS3Kit library for 16-bit protected kernel+tss.
     
    337344bs3kit-pe16_v86_DEFS     = TMPL_MODE=BS3_MODE_PE16_V86
    338345bs3kit-pe16_v86_SOURCES  = $(VBOX_BS3KIT_MODE_SOURCES) \
    339         bs3-mode-TestDoModesByOneStub.asm \
     346        bs3-mode-TestDoModesStub.asm \
     347        bs3-mode-TestDoModesByOneStub.asm \
     348        bs3-mode-TestDoModesByMaxStub.asm \
    340349
    341350# The 32-bit BS3Kit library for 32-bit protected kernel+tss.
     
    353362bs3kit-pe32_16_DEFS     = TMPL_MODE=BS3_MODE_PE32_16
    354363bs3kit-pe32_16_SOURCES  = $(VBOX_BS3KIT_MODE_SOURCES) \
    355         bs3-mode-TestDoModesByOneStub.asm \
     364        bs3-mode-TestDoModesStub.asm \
     365        bs3-mode-TestDoModesByOneStub.asm \
     366        bs3-mode-TestDoModesByMaxStub.asm \
    356367
    357368# The v8086 BS3Kit library for 32-bit protected kernel+tss.
     
    369380bs3kit-pp16_SOURCES  = $(VBOX_BS3KIT_MODE_SOURCES) \
    370381        bs3-mode-CpuDetect.asm \
    371         bs3-mode-TestDoModesByOneStub.asm \
     382        bs3-mode-TestDoModesStub.asm \
     383        bs3-mode-TestDoModesByOneStub.asm \
     384        bs3-mode-TestDoModesByMaxStub.asm \
    372385
    373386# The 32-bit BS3Kit library for 16-bit paged protected kernel+tss.
     
    399412bs3kit-pp32_16_DEFS     = TMPL_MODE=BS3_MODE_PP32_16
    400413bs3kit-pp32_16_SOURCES  = $(VBOX_BS3KIT_MODE_SOURCES) \
    401         bs3-mode-TestDoModesByOneStub.asm \
     414        bs3-mode-TestDoModesStub.asm \
     415        bs3-mode-TestDoModesByOneStub.asm \
     416        bs3-mode-TestDoModesByMaxStub.asm \
    402417
    403418# The v8086 BS3Kit library for 32-bit paged protected kernel+tss.
     
    416431bs3kit-pae16_SOURCES  = $(VBOX_BS3KIT_MODE_SOURCES) \
    417432        bs3-mode-CpuDetect.asm \
    418         bs3-mode-TestDoModesByOneStub.asm \
     433        bs3-mode-TestDoModesStub.asm \
     434        bs3-mode-TestDoModesByOneStub.asm \
     435        bs3-mode-TestDoModesByMaxStub.asm \
    419436
    420437# The 16-bit BS3Kit library for 16-bit PAE paged protected kernel+tss.
     
    445462bs3kit-pae32_16_DEFS     = TMPL_MODE=BS3_MODE_PAE32_16
    446463bs3kit-pae32_16_SOURCES  = $(VBOX_BS3KIT_MODE_SOURCES) \
    447         bs3-mode-TestDoModesByOneStub.asm \
     464        bs3-mode-TestDoModesStub.asm \
     465        bs3-mode-TestDoModesByOneStub.asm \
     466        bs3-mode-TestDoModesByMaxStub.asm \
    448467
    449468# The v8086 BS3Kit library for 32-bit PAE paged protected kernel+tss.
     
    461480bs3kit-lm16_DEFS     = TMPL_MODE=BS3_MODE_LM16
    462481bs3kit-lm16_SOURCES  = $(VBOX_BS3KIT_MODE_SOURCES) \
    463         bs3-mode-TestDoModesByOneStub.asm \
     482        bs3-mode-TestDoModesStub.asm \
     483        bs3-mode-TestDoModesByOneStub.asm \
     484        bs3-mode-TestDoModesByMaxStub.asm \
    464485
    465486# The 32-bit long mode BS3Kit library.
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TestDoModesByMax.c

    r66175 r66179  
    11/* $Id$ */
    22/** @file
    3  * BS3Kit - Bs3TestDoModes
     3 * BS3Kit - Bs3TestDoModesByMax
    44 */
    55
    66/*
    7  * Copyright (C) 2007-2016 Oracle Corporation
     7 * Copyright (C) 2007-2017 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    5252 * @param   fHaveLongMode   Whether the CPU does long mode.
    5353 */
    54 static void bs3TestWarnAboutSkippedModes(PCBS3TESTMODEENTRY paEntries, unsigned cEntries,
     54static void bs3TestWarnAboutSkippedModes(PCBS3TESTMODEBYMAXENTRY paEntries, unsigned cEntries,
    5555                                         uint8_t bCpuType, bool fHavePae, bool fHaveLongMode)
    5656{
     
    7878
    7979        if (   !fComplained386
    80             &&  (   paEntries[i].pfnDoPE16_32
    81                  || paEntries[i].pfnDoPE16_V86
    82                  || paEntries[i].pfnDoPE32
    83                  || paEntries[i].pfnDoPE32_16
    84                  || paEntries[i].pfnDoPEV86
    85                  || paEntries[i].pfnDoPP16
    86                  || paEntries[i].pfnDoPP16_32
    87                  || paEntries[i].pfnDoPP16_V86
    88                  || paEntries[i].pfnDoPP32
    89                  || paEntries[i].pfnDoPP32_16
    90                  || paEntries[i].pfnDoPPV86) )
     80            &&  (   paEntries[i].fDoPE16_32
     81                 || paEntries[i].fDoPE16_V86
     82                 || paEntries[i].fDoPE32
     83                 || paEntries[i].fDoPE32_16
     84                 || paEntries[i].fDoPEV86
     85                 || paEntries[i].fDoPP16
     86                 || paEntries[i].fDoPP16_32
     87                 || paEntries[i].fDoPP16_V86
     88                 || paEntries[i].fDoPP32
     89                 || paEntries[i].fDoPP32_16
     90                 || paEntries[i].fDoPPV86) )
    9191        {
    9292            if (bCpuType < BS3CPU_80386)
     
    9999
    100100        if (   !fComplainedPAE
    101             &&  (   paEntries[i].pfnDoPAE16
    102                  || paEntries[i].pfnDoPAE16_32
    103                  || paEntries[i].pfnDoPAE16_V86
    104                  || paEntries[i].pfnDoPAE32
    105                  || paEntries[i].pfnDoPAE32_16
    106                  || paEntries[i].pfnDoPAEV86) )
     101            &&  (   paEntries[i].fDoPAE16
     102                 || paEntries[i].fDoPAE16_32
     103                 || paEntries[i].fDoPAE16_V86
     104                 || paEntries[i].fDoPAE32
     105                 || paEntries[i].fDoPAE32_16
     106                 || paEntries[i].fDoPAEV86) )
    107107        {
    108108            if (!fHavePae)
     
    115115
    116116        if (   !fComplainedAMD64
    117             &&  (   paEntries[i].pfnDoLM16
    118                  || paEntries[i].pfnDoLM32
    119                  || paEntries[i].pfnDoLM64) )
     117            &&  (   paEntries[i].fDoLM16
     118                 || paEntries[i].fDoLM32
     119                 || paEntries[i].fDoLM64) )
    120120        {
    121121            if (!fHaveLongMode)
     
    130130
    131131#undef Bs3TestDoModes
    132 BS3_MODE_DEF(void, Bs3TestDoModes,(PCBS3TESTMODEENTRY paEntries, size_t cEntries))
     132BS3_MODE_DEF(void, Bs3TestDoModesByMax,(PCBS3TESTMODEBYMAXENTRY paEntries, size_t cEntries))
    133133{
    134134    bool const      fVerbose         = true;
     
    170170            } while (0)
    171171
    172         if (paEntries[i].pfnDoRM)
     172        if (paEntries[i].fDoRM)
    173173        {
    174174            PRE_DO_CALL(g_szBs3ModeName_rm);
     
    187187         * Unpaged prot mode.
    188188         */
    189         if (paEntries[i].pfnDoPE16)
     189        if (paEntries[i].fDoPE16)
    190190        {
    191191            PRE_DO_CALL(g_szBs3ModeName_pe16);
     
    200200        }
    201201
    202         if (paEntries[i].pfnDoPE16_32)
     202        if (paEntries[i].fDoPE16_32)
    203203        {
    204204            PRE_DO_CALL(g_szBs3ModeName_pe16_32);
     
    207207        }
    208208
    209         if (paEntries[i].pfnDoPE16_V86 && fDoWeirdV86Modes)
     209        if (paEntries[i].fDoPE16_V86 && fDoWeirdV86Modes)
    210210        {
    211211            PRE_DO_CALL(g_szBs3ModeName_pe16_v86);
    212             bErrNo = TMPL_NM(Bs3TestCallDoerInPE16_V86)(CONV_TO_RM_FAR16(paEntries[i].pfnDoPE16_V86));
     212            bErrNo = TMPL_NM(Bs3TestCallDoerInPE16_32)(CONV_TO_FLAT(paEntries[i].pfnDoPE16_32), BS3_MODE_PE16_V86);
    213213            CHECK_RESULT(g_szBs3ModeName_pe16_v86);
    214214        }
    215215
    216         if (paEntries[i].pfnDoPE32)
     216        if (paEntries[i].fDoPE32)
    217217        {
    218218            PRE_DO_CALL(g_szBs3ModeName_pe32);
     
    221221        }
    222222
    223         if (paEntries[i].pfnDoPE32_16)
     223        if (paEntries[i].fDoPE32_16)
    224224        {
    225225            PRE_DO_CALL(g_szBs3ModeName_pe32_16);
    226             bErrNo = TMPL_NM(Bs3TestCallDoerInPE32_16)(CONV_TO_PROT_FAR16(paEntries[i].pfnDoPE32_16));
     226            bErrNo = TMPL_NM(Bs3TestCallDoerInPE32)(CONV_TO_FLAT(paEntries[i].pfnDoPE32), BS3_MODE_PE32_16);
    227227            CHECK_RESULT(g_szBs3ModeName_pe32_16);
    228228        }
    229229
    230         if (paEntries[i].pfnDoPEV86 && fDoV86Modes)
     230        if (paEntries[i].fDoPEV86 && fDoV86Modes)
    231231        {
    232232            PRE_DO_CALL(g_szBs3ModeName_pev86);
    233             bErrNo = TMPL_NM(Bs3TestCallDoerInPEV86)(CONV_TO_RM_FAR16(paEntries[i].pfnDoPEV86));
     233            bErrNo = TMPL_NM(Bs3TestCallDoerInPE32)(CONV_TO_FLAT(paEntries[i].pfnDoPE32), BS3_MODE_PEV86);
    234234            CHECK_RESULT(g_szBs3ModeName_pev86);
    235235        }
     
    238238         * Paged protected mode.
    239239         */
    240         if (paEntries[i].pfnDoPP16)
     240        if (paEntries[i].fDoPP16)
    241241        {
    242242            PRE_DO_CALL(g_szBs3ModeName_pp16);
    243             bErrNo = TMPL_NM(Bs3TestCallDoerInPP16)(CONV_TO_PROT_FAR16(paEntries[i].pfnDoPP16));
     243            bErrNo = TMPL_NM(Bs3TestCallDoerInPP16_32)(CONV_TO_FLAT(paEntries[i].pfnDoPP16_32), BS3_MODE_PP16);
    244244            CHECK_RESULT(g_szBs3ModeName_pp16);
    245245        }
    246246
    247         if (paEntries[i].pfnDoPP16_32)
     247        if (paEntries[i].fDoPP16_32)
    248248        {
    249249            PRE_DO_CALL(g_szBs3ModeName_pp16_32);
     
    252252        }
    253253
    254         if (paEntries[i].pfnDoPP16_V86 && fDoWeirdV86Modes)
     254        if (paEntries[i].fDoPP16_V86 && fDoWeirdV86Modes)
    255255        {
    256256            PRE_DO_CALL(g_szBs3ModeName_pp16_v86);
    257             bErrNo = TMPL_NM(Bs3TestCallDoerInPP16_V86)(CONV_TO_RM_FAR16(paEntries[i].pfnDoPP16_V86));
     257            bErrNo = TMPL_NM(Bs3TestCallDoerInPP16_32)(CONV_TO_FLAT(paEntries[i].pfnDoPP16_32), BS3_MODE_PP16_V86);
    258258            CHECK_RESULT(g_szBs3ModeName_pp16_v86);
    259259        }
    260260
    261         if (paEntries[i].pfnDoPP32)
     261        if (paEntries[i].fDoPP32)
    262262        {
    263263            PRE_DO_CALL(g_szBs3ModeName_pp32);
     
    266266        }
    267267
    268         if (paEntries[i].pfnDoPP32_16)
     268        if (paEntries[i].fDoPP32_16)
    269269        {
    270270            PRE_DO_CALL(g_szBs3ModeName_pp32_16);
    271             bErrNo = TMPL_NM(Bs3TestCallDoerInPP32_16)(CONV_TO_PROT_FAR16(paEntries[i].pfnDoPP32_16));
     271            bErrNo = TMPL_NM(Bs3TestCallDoerInPP32)(CONV_TO_FLAT(paEntries[i].pfnDoPP32), BS3_MODE_PP32_16);
    272272            CHECK_RESULT(g_szBs3ModeName_pp32_16);
    273273        }
    274274
    275         if (paEntries[i].pfnDoPPV86 && fDoV86Modes)
     275        if (paEntries[i].fDoPPV86 && fDoV86Modes)
    276276        {
    277277            PRE_DO_CALL(g_szBs3ModeName_ppv86);
    278             bErrNo = TMPL_NM(Bs3TestCallDoerInPPV86)(CONV_TO_RM_FAR16(paEntries[i].pfnDoPPV86));
     278            bErrNo = TMPL_NM(Bs3TestCallDoerInPP32)(CONV_TO_FLAT(paEntries[i].pfnDoPP32), BS3_MODE_PPV86);
    279279            CHECK_RESULT(g_szBs3ModeName_ppv86);
    280280        }
     
    290290        }
    291291
    292         if (paEntries[i].pfnDoPAE16)
     292        if (paEntries[i].fDoPAE16)
    293293        {
    294294            PRE_DO_CALL(g_szBs3ModeName_pae16);
    295             bErrNo = TMPL_NM(Bs3TestCallDoerInPAE16)(CONV_TO_PROT_FAR16(paEntries[i].pfnDoPAE16));
     295            bErrNo = TMPL_NM(Bs3TestCallDoerInPAE16_32)(CONV_TO_FLAT(paEntries[i].pfnDoPAE16_32), BS3_MODE_PAE16);
    296296            CHECK_RESULT(g_szBs3ModeName_pae16);
    297297        }
    298298
    299         if (paEntries[i].pfnDoPAE16_32)
     299        if (paEntries[i].fDoPAE16_32)
    300300        {
    301301            PRE_DO_CALL(g_szBs3ModeName_pae16_32);
     
    304304        }
    305305
    306         if (paEntries[i].pfnDoPAE16_V86 && fDoWeirdV86Modes)
     306        if (paEntries[i].fDoPAE16_V86 && fDoWeirdV86Modes)
    307307        {
    308308            PRE_DO_CALL(g_szBs3ModeName_pae16_v86);
    309             bErrNo = TMPL_NM(Bs3TestCallDoerInPAE16_V86)(CONV_TO_RM_FAR16(paEntries[i].pfnDoPAE16_V86));
     309            bErrNo = TMPL_NM(Bs3TestCallDoerInPAE16_32)(CONV_TO_FLAT(paEntries[i].pfnDoPAE16_32), BS3_MODE_PAE16_V86);
    310310            CHECK_RESULT(g_szBs3ModeName_pae16_v86);
    311311        }
    312312
    313         if (paEntries[i].pfnDoPAE32)
     313        if (paEntries[i].fDoPAE32)
    314314        {
    315315            PRE_DO_CALL(g_szBs3ModeName_pae32);
     
    318318        }
    319319
    320         if (paEntries[i].pfnDoPAE32_16)
     320        if (paEntries[i].fDoPAE32_16)
    321321        {
    322322            PRE_DO_CALL(g_szBs3ModeName_pae32_16);
    323             bErrNo = TMPL_NM(Bs3TestCallDoerInPAE32_16)(CONV_TO_PROT_FAR16(paEntries[i].pfnDoPAE32_16));
     323            bErrNo = TMPL_NM(Bs3TestCallDoerInPAE32)(CONV_TO_FLAT(paEntries[i].pfnDoPAE32), BS3_MODE_PAE32_16);
    324324            CHECK_RESULT(g_szBs3ModeName_pae32_16);
    325325        }
    326326
    327         if (paEntries[i].pfnDoPAEV86 && fDoV86Modes)
     327        if (paEntries[i].fDoPAEV86 && fDoV86Modes)
    328328        {
    329329            PRE_DO_CALL(g_szBs3ModeName_paev86);
    330             bErrNo = TMPL_NM(Bs3TestCallDoerInPAEV86)(CONV_TO_RM_FAR16(paEntries[i].pfnDoPAEV86));
     330            bErrNo = TMPL_NM(Bs3TestCallDoerInPAE32)(CONV_TO_FLAT(paEntries[i].pfnDoPAE32), BS3_MODE_PAEV86);
    331331            CHECK_RESULT(g_szBs3ModeName_paev86);
    332332        }
     
    342342        }
    343343
    344         if (paEntries[i].pfnDoLM16)
     344        if (paEntries[i].fDoLM16)
    345345        {
    346346            PRE_DO_CALL(g_szBs3ModeName_lm16);
    347             bErrNo = TMPL_NM(Bs3TestCallDoerInLM16)(CONV_TO_PROT_FAR16(paEntries[i].pfnDoLM16));
     347            bErrNo = TMPL_NM(Bs3TestCallDoerInLM64)(CONV_TO_FLAT(paEntries[i].pfnDoLM64), BS3_MODE_LM16);
    348348            CHECK_RESULT(g_szBs3ModeName_lm16);
    349349        }
    350350
    351         if (paEntries[i].pfnDoLM32)
     351        if (paEntries[i].fDoLM32)
    352352        {
    353353            PRE_DO_CALL(g_szBs3ModeName_lm32);
    354             bErrNo = TMPL_NM(Bs3TestCallDoerInLM32)(CONV_TO_FLAT(paEntries[i].pfnDoLM32));
     354            bErrNo = TMPL_NM(Bs3TestCallDoerInLM64)(CONV_TO_FLAT(paEntries[i].pfnDoLM64), BS3_MODE_LM32);
    355355            CHECK_RESULT(g_szBs3ModeName_lm32);
    356356        }
    357357
    358         if (paEntries[i].pfnDoLM64)
     358        if (paEntries[i].fDoLM64)
    359359        {
    360360            PRE_DO_CALL(g_szBs3ModeName_lm64);
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TestDoModesByMaxStub.asm

    r66173 r66179  
    11; $Id$
    22;; @file
    3 ; BS3Kit - Bs3TestDoModesByOne near stub.
     3; BS3Kit - Bs3TestDoModesByMax near stub.
    44;
    55
    66;
    7 ; Copyright (C) 2007-2016 Oracle Corporation
     7; Copyright (C) 2007-2017 Oracle Corporation
    88;
    99; This file is part of VirtualBox Open Source Edition (OSE), as
     
    3131
    3232;
    33 ; Finally near stub for the API call (16-bit only).
     33; Near stub for the API call (16-bit only).
    3434;
    3535%if TMPL_BITS == 16
     
    3838 %endif
    3939BS3_BEGIN_TEXT16_NEARSTUBS
    40 BS3_PROC_BEGIN_MODE Bs3TestDoModesByOne, BS3_PBC_NEAR
     40BS3_PROC_BEGIN_MODE Bs3TestDoModesByMax, BS3_PBC_NEAR
    4141        pop     ax
    4242 %if TMPL_MODE == BS3_MODE_RM
    4343        push    cs
    4444        push    ax
    45         extern TMPL_FAR_NM(Bs3TestDoModesByOne):wrt BS3GROUPRMTEXT16
    46         jmp far TMPL_FAR_NM(Bs3TestDoModesByOne)
     45        extern TMPL_FAR_NM(Bs3TestDoModesByMax):wrt BS3GROUPRMTEXT16
     46        jmp far TMPL_FAR_NM(Bs3TestDoModesByMax)
    4747 %else
    4848        push    cs
    4949        push    ax
    50         extern TMPL_FAR_NM(Bs3TestDoModesByOne):wrt CGROUP16
    51         jmp     TMPL_NM(Bs3TestDoModesByOne)
     50        extern TMPL_FAR_NM(Bs3TestDoModesByMax):wrt CGROUP16
     51        jmp     TMPL_NM(Bs3TestDoModesByMax)
    5252 %endif
    53 BS3_PROC_END_MODE   Bs3TestDoModesByOne
     53BS3_PROC_END_MODE   Bs3TestDoModesByMax
    5454%endif
    5555
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TestDoModesByOneStub.asm

    r60749 r66179  
    3131
    3232;
    33 ; Finally near stub for the API call (16-bit only).
     33; Near stub for the API call (16-bit only).
    3434;
    3535%if TMPL_BITS == 16
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TestDoModesHlp.asm

    r66175 r66179  
    11281128BS3_PROC_END_MODE   Bs3TestCallDoerInLM64
    11291129
    1130 
    1131 ;
    1132 ; Finally near stub for the API call (16-bit only).
    1133 ;
    1134 %if TMPL_BITS == 16
    1135 BS3_BEGIN_TEXT16_NEARSTUBS
    1136 BS3_PROC_BEGIN_MODE Bs3TestDoModes, BS3_PBC_NEAR
    1137         pop     ax
    1138  %if TMPL_MODE == BS3_MODE_RM
    1139         push    cs
    1140         push    ax
    1141         extern TMPL_FAR_NM(Bs3TestDoModes):wrt BS3GROUPRMTEXT16
    1142         jmp far TMPL_FAR_NM(Bs3TestDoModes)
    1143  %else
    1144         push    cs
    1145         push    ax
    1146         extern TMPL_FAR_NM(Bs3TestDoModes):wrt CGROUP16
    1147         jmp     TMPL_NM(Bs3TestDoModes)
    1148  %endif
    1149 BS3_PROC_END_MODE   Bs3TestDoModes
    1150 
    1151 %endif
    1152 
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TestDoModesStub.asm

    r66173 r66179  
    11; $Id$
    22;; @file
    3 ; BS3Kit - Bs3TestDoModesByOne near stub.
     3; BS3Kit - Bs3TestDoModes near stub.
    44;
    55
     
    3131
    3232;
    33 ; Finally near stub for the API call (16-bit only).
     33; Near stub for the API call (16-bit only).
    3434;
    3535%if TMPL_BITS == 16
     
    3838 %endif
    3939BS3_BEGIN_TEXT16_NEARSTUBS
    40 BS3_PROC_BEGIN_MODE Bs3TestDoModesByOne, BS3_PBC_NEAR
     40BS3_PROC_BEGIN_MODE Bs3TestDoModes, BS3_PBC_NEAR
    4141        pop     ax
    4242 %if TMPL_MODE == BS3_MODE_RM
    4343        push    cs
    4444        push    ax
    45         extern TMPL_FAR_NM(Bs3TestDoModesByOne):wrt BS3GROUPRMTEXT16
    46         jmp far TMPL_FAR_NM(Bs3TestDoModesByOne)
     45        extern TMPL_FAR_NM(Bs3TestDoModes):wrt BS3GROUPRMTEXT16
     46        jmp far TMPL_FAR_NM(Bs3TestDoModes)
    4747 %else
    4848        push    cs
    4949        push    ax
    50         extern TMPL_FAR_NM(Bs3TestDoModesByOne):wrt CGROUP16
    51         jmp     TMPL_NM(Bs3TestDoModesByOne)
     50        extern TMPL_FAR_NM(Bs3TestDoModes):wrt CGROUP16
     51        jmp     TMPL_NM(Bs3TestDoModes)
    5252 %endif
    53 BS3_PROC_END_MODE   Bs3TestDoModesByOne
     53BS3_PROC_END_MODE   Bs3TestDoModes
    5454%endif
    5555
     56
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit-autostubs.kmk

    r66168 r66179  
    3939$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TestFailedV)
    4040$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3StrCpy)
     41$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3GetModeNameShortLower)
    4142$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3GetModeName)
    42 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3GetModeNameShortLower)
    4343$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingAlias)
    4444$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingInitRootForLM)
    4545$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingInitRootForPAE)
    4646$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingInitRootForPP)
     47$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingProtectPtr)
    4748$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingProtect)
    48 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingProtectPtr)
    4949$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingQueryAddressInfo)
    5050$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingUnalias)
     
    7272$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingGetPte)
    7373$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingSetupCanonicalTraps)
     74$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3SlabAllocEx)
    7475$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3SlabAlloc)
    75 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3SlabAllocEx)
     76$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3SlabListAllocEx)
    7677$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3SlabListAlloc)
    77 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3SlabListAllocEx)
    7878$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3MemFree)
    7979$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3MemGuardedTestPageFree)
     
    108108$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TestSubV)
    109109$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TestTerm)
     110$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3Trap16InitEx)
    110111$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3Trap16Init)
    111 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3Trap16InitEx)
    112112$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3Trap16SetGate)
    113113$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3Trap32Init)
     
    118118$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TrapPrintFrame)
    119119$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TrapReInit)
     120$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TrapRmV86InitEx)
    120121$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TrapRmV86Init)
    121 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TrapRmV86InitEx)
    122122$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TrapRmV86SetGate)
    123123$(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TrapSetHandlerEx)
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit-mangling-code-define.h

    r66168 r66179  
    149149#define Bs3TrapSetHandler BS3_CMN_MANGLER(Bs3TrapSetHandler)
    150150#define Bs3TrapSetHandlerEx BS3_CMN_MANGLER(Bs3TrapSetHandlerEx)
     151#define Bs3TrapSetJmpAndRestore BS3_CMN_MANGLER(Bs3TrapSetJmpAndRestore)
    151152#define Bs3TrapSetJmp BS3_CMN_MANGLER(Bs3TrapSetJmp)
    152 #define Bs3TrapSetJmpAndRestore BS3_CMN_MANGLER(Bs3TrapSetJmpAndRestore)
    153153#define Bs3TrapUnsetJmp BS3_CMN_MANGLER(Bs3TrapUnsetJmp)
    154154#define Bs3UInt32Div BS3_CMN_MANGLER(Bs3UInt32Div)
     
    160160# define Bs3SwitchTo32BitAndCallC BS3_MODE_MANGLER(Bs3SwitchTo32BitAndCallC)
    161161# define Bs3TestDoModes BS3_MODE_MANGLER(Bs3TestDoModes)
     162# define Bs3TestDoModesByMax BS3_MODE_MANGLER(Bs3TestDoModesByMax)
    162163# define Bs3TestDoModesByOne BS3_MODE_MANGLER(Bs3TestDoModesByOne)
    163164# define Bs3TrapInit BS3_MODE_MANGLER(Bs3TrapInit)
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit-mangling-code-undef.h

    r66168 r66179  
    149149#undef Bs3TrapSetHandler
    150150#undef Bs3TrapSetHandlerEx
     151#undef Bs3TrapSetJmpAndRestore
    151152#undef Bs3TrapSetJmp
    152 #undef Bs3TrapSetJmpAndRestore
    153153#undef Bs3TrapUnsetJmp
    154154#undef Bs3UInt32Div
     
    160160# undef Bs3SwitchTo32BitAndCallC
    161161# undef Bs3TestDoModes
     162# undef Bs3TestDoModesByMax
    162163# undef Bs3TestDoModesByOne
    163164# undef Bs3TrapInit
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit.h

    r66168 r66179  
    32403240
    32413241/**
     3242 * Mode sub-test entry, max bit-count driven
     3243 *
     3244 * This is an alternative to BS3TESTMODEENTRY where a few workers (test drivers)
     3245 * does all the work, using faster 32-bit and 64-bit code where possible.  This
     3246 * avoids executing workers in V8086 mode.  It allows for modifying and checking
     3247 * 64-bit register content when testing LM16 and LM32.
     3248 *
     3249 * The 16-bit workers are only used for real mode and 16-bit protected mode.
     3250 * So, the 16-bit version of the code template can be stripped of anything
     3251 * related to paging and/or v8086, saving code space.
     3252 */
     3253typedef struct BS3TESTMODEBYMAXENTRY
     3254{
     3255    /** The sub-test name to be passed to Bs3TestSub if not NULL. */
     3256    const char * BS3_FAR    pszSubTest;
     3257
     3258    PFNBS3TESTDOMODE        pfnDoRM;
     3259    PFNBS3TESTDOMODE        pfnDoPE16;
     3260    PFNBS3TESTDOMODE        pfnDoPE16_32;
     3261    PFNBS3TESTDOMODE        pfnDoPE32;
     3262    PFNBS3TESTDOMODE        pfnDoPP16_32;
     3263    PFNBS3TESTDOMODE        pfnDoPP32;
     3264    PFNBS3TESTDOMODE        pfnDoPAE16_32;
     3265    PFNBS3TESTDOMODE        pfnDoPAE32;
     3266    PFNBS3TESTDOMODE        pfnDoLM64;
     3267
     3268    bool                    fDoRM : 1;
     3269
     3270    bool                    fDoPE16 : 1;
     3271    bool                    fDoPE16_32 : 1;
     3272    bool                    fDoPE16_V86 : 1;
     3273    bool                    fDoPE32 : 1;
     3274    bool                    fDoPE32_16 : 1;
     3275    bool                    fDoPEV86 : 1;
     3276
     3277    bool                    fDoPP16 : 1;
     3278    bool                    fDoPP16_32 : 1;
     3279    bool                    fDoPP16_V86 : 1;
     3280    bool                    fDoPP32 : 1;
     3281    bool                    fDoPP32_16 : 1;
     3282    bool                    fDoPPV86 : 1;
     3283
     3284    bool                    fDoPAE16 : 1;
     3285    bool                    fDoPAE16_32 : 1;
     3286    bool                    fDoPAE16_V86 : 1;
     3287    bool                    fDoPAE32 : 1;
     3288    bool                    fDoPAE32_16 : 1;
     3289    bool                    fDoPAEV86 : 1;
     3290
     3291    bool                    fDoLM16 : 1;
     3292    bool                    fDoLM32 : 1;
     3293    bool                    fDoLM64 : 1;
     3294
     3295} BS3TESTMODEBYMAXENTRY;
     3296/** Pointer to a mode-by-max sub-test entry. */
     3297typedef BS3TESTMODEBYMAXENTRY const *PCBS3TESTMODEBYMAXENTRY;
     3298
     3299/** @def BS3TESTMODEBYMAXENTRY_CMN
     3300 * Produces a BS3TESTMODEBYMAXENTRY initializer for common (c16,c32,c64) test
     3301 * functions. */
     3302#define BS3TESTMODEBYMAXENTRY_CMN(a_szTest, a_BaseNm) \
     3303    {   /*pszSubTest =*/    a_szTest, \
     3304        /*RM*/              RT_CONCAT(a_BaseNm, _c16), \
     3305        /*PE16*/            RT_CONCAT(a_BaseNm, _c16), \
     3306        /*PE16_32*/         RT_CONCAT(a_BaseNm, _c32), \
     3307        /*PE32*/            RT_CONCAT(a_BaseNm, _c32), \
     3308        /*PP16_32*/         RT_CONCAT(a_BaseNm, _c32), \
     3309        /*PP32*/            RT_CONCAT(a_BaseNm, _c32), \
     3310        /*PAE16_32*/        RT_CONCAT(a_BaseNm, _c32), \
     3311        /*PAE32*/           RT_CONCAT(a_BaseNm, _c32), \
     3312        /*LM64*/            RT_CONCAT(a_BaseNm, _c64), \
     3313        /*fDoRM*/           true, \
     3314        /*fDoPE16*/         true, \
     3315        /*fDoPE16_32*/      true, \
     3316        /*fDoPE16_V86*/     true, \
     3317        /*fDoPE32*/         true, \
     3318        /*fDoPE32_16*/      true, \
     3319        /*fDoPEV86*/        true, \
     3320        /*fDoPP16*/         true, \
     3321        /*fDoPP16_32*/      true, \
     3322        /*fDoPP16_V86*/     true, \
     3323        /*fDoPP32*/         true, \
     3324        /*fDoPP32_16*/      true, \
     3325        /*fDoPPV86*/        true, \
     3326        /*fDoPAE16*/        true, \
     3327        /*fDoPAE16_32*/     true, \
     3328        /*fDoPAE16_V86*/    true, \
     3329        /*fDoPAE32*/        true, \
     3330        /*fDoPAE32_16*/     true, \
     3331        /*fDoPAEV86*/       true, \
     3332        /*fDoLM16*/         true, \
     3333        /*fDoLM32*/         true, \
     3334        /*fDoLM64*/         true, \
     3335    }
     3336
     3337/** @def BS3TESTMODEBYMAX_PROTOTYPES_CMN
     3338 * A set of standard protypes to go with #BS3TESTMODEBYMAXENTRY_CMN. */
     3339#define BS3TESTMODEBYMAX_PROTOTYPES_CMN(a_BaseNm) \
     3340    FNBS3TESTDOMODE /*BS3_FAR_CODE*/    RT_CONCAT(a_BaseNm, _c16); \
     3341    FNBS3TESTDOMODE /*BS3_FAR_CODE*/    RT_CONCAT(a_BaseNm, _c32); \
     3342    FNBS3TESTDOMODE /*BS3_FAR_CODE*/    RT_CONCAT(a_BaseNm, _c64)
     3343
     3344
     3345/** @def BS3TESTMODEBYMAXENTRY_MODE
     3346 * Produces a BS3TESTMODEBYMAXENTRY initializer for a full set of mode test
     3347 * functions. */
     3348#define BS3TESTMODEBYMAXENTRY_MODE(a_szTest, a_BaseNm) \
     3349    {   /*pszSubTest =*/ a_szTest, \
     3350        /*RM*/              RT_CONCAT(a_BaseNm, _rm), \
     3351        /*PE16*/            RT_CONCAT(a_BaseNm, _pe16), \
     3352        /*PE16_32*/         RT_CONCAT(a_BaseNm, _pe16_32), \
     3353        /*PE32*/            RT_CONCAT(a_BaseNm, _pe32), \
     3354        /*PP16_32*/         RT_CONCAT(a_BaseNm, _pp16_32), \
     3355        /*PP32*/            RT_CONCAT(a_BaseNm, _pp32), \
     3356        /*PAE16_32*/        RT_CONCAT(a_BaseNm, _pae16_32), \
     3357        /*PAE32*/           RT_CONCAT(a_BaseNm, _pae32), \
     3358        /*LM64*/            RT_CONCAT(a_BaseNm, _lm64), \
     3359        /*fDoRM*/           true, \
     3360        /*fDoPE16*/         true, \
     3361        /*fDoPE16_32*/      true, \
     3362        /*fDoPE16_V86*/     true, \
     3363        /*fDoPE32*/         true, \
     3364        /*fDoPE32_16*/      true, \
     3365        /*fDoPEV86*/        true, \
     3366        /*fDoPP16*/         true, \
     3367        /*fDoPP16_32*/      true, \
     3368        /*fDoPP16_V86*/     true, \
     3369        /*fDoPP32*/         true, \
     3370        /*fDoPP32_16*/      true, \
     3371        /*fDoPPV86*/        true, \
     3372        /*fDoPAE16*/        true, \
     3373        /*fDoPAE16_32*/     true, \
     3374        /*fDoPAE16_V86*/    true, \
     3375        /*fDoPAE32*/        true, \
     3376        /*fDoPAE32_16*/     true, \
     3377        /*fDoPAEV86*/       true, \
     3378        /*fDoLM16*/         true, \
     3379        /*fDoLM32*/         true, \
     3380        /*fDoLM64*/         true, \
     3381    }
     3382
     3383/** @def BS3TESTMODEBYMAX_PROTOTYPES_MODE
     3384 * A set of standard protypes to go with #BS3TESTMODEBYMAXENTRY_MODE. */
     3385#define BS3TESTMODEBYMAX_PROTOTYPES_MODE(a_BaseNm) \
     3386    FNBS3TESTDOMODE   RT_CONCAT(a_BaseNm, _rm); \
     3387    FNBS3TESTDOMODE   RT_CONCAT(a_BaseNm, _pe16); \
     3388    FNBS3TESTDOMODE   RT_CONCAT(a_BaseNm, _pe16_32); \
     3389    FNBS3TESTDOMODE   RT_CONCAT(a_BaseNm, _pe32); \
     3390    FNBS3TESTDOMODE   RT_CONCAT(a_BaseNm, _pp16_32); \
     3391    FNBS3TESTDOMODE   RT_CONCAT(a_BaseNm, _pp32); \
     3392    FNBS3TESTDOMODE   RT_CONCAT(a_BaseNm, _pae16_32); \
     3393    FNBS3TESTDOMODE   RT_CONCAT(a_BaseNm, _pae32); \
     3394    FNBS3TESTDOMODE   RT_CONCAT(a_BaseNm, _lm64)
     3395
     3396
     3397/**
    32423398 * One worker drives all modes.
    32433399 *
     
    35173673BS3_MODE_PROTO_NOSB(void, Bs3TestDoModesByOne,(PCBS3TESTMODEBYONEENTRY paEntries, size_t cEntries, uint32_t fFlags));
    35183674
     3675/**
     3676 * Executes the array of tests in every possibly mode, using the max bit-count
     3677 * worker for each.
     3678 *
     3679 * @param   paEntries       The mode sub-test entries.
     3680 * @param   cEntries        The number of sub-test entries.
     3681 */
     3682BS3_MODE_PROTO_NOSB(void, Bs3TestDoModesByMax,(PCBS3TESTMODEBYMAXENTRY paEntries, size_t cEntries));
     3683
    35193684
    35203685/** @} */
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