VirtualBox

Changeset 59865 in vbox


Ignore:
Timestamp:
Feb 29, 2016 10:27:24 AM (9 years ago)
Author:
vboxsync
Message:

bs3kit: Updates

Location:
trunk/src/VBox/ValidationKit/bootsectors/bs3kit
Files:
5 added
6 edited

Legend:

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

    r59863 r59865  
    100100       bs3-cmn-TestData.c \
    101101       bs3-cmn-TestInit.c \
     102       bs3-cmn-TestFailed.c \
     103       bs3-cmn-TestSkipped.c \
     104       bs3-cmn-TestSub.c \
     105       bs3-cmn-TestSubDone.c \
     106       bs3-cmn-TestSubErrorCount.c \
    102107       bs3-cmn-TestTerm.c \
    103108        bs3-cmn-TestSendCmdWithStr.asm \
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-TestData.c

    r59863 r59865  
    4949/** Whether we've reported the sub-test result or not. */
    5050bool        g_fbBs3SubTestReported = true;
     51/** Whether the sub-test has been skipped or not. */
     52bool        g_fbBs3SubTestSkipped = false;
    5153
    5254/** The number of sub tests. */
     
    9395};
    9496
     97
     98/** The subtest name. */
     99char        g_szBs3SubTest[64];
     100
    95101#endif /* ARCH_BITS == 16 */
    96102
    97103/** The test name. */
    98104const char BS3_FAR *BS3_CMN_NM(g_pszBs3Test) = NULL;
    99 /** The subtest name. */
    100 const char BS3_FAR *BS3_CMN_NM(g_pszBs3SubTest) = NULL;
    101105
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-TestInit.c

    r59863 r59865  
    2626
    2727
     28/*********************************************************************************************************************************
     29*   Header Files                                                                                                                 *
     30*********************************************************************************************************************************/
    2831#include "bs3kit-template-header.h"
    2932#include "bs3-cmn-test.h"
     
    3538 * @param   pszTest         The test name.
    3639 */
    37 #undef Bs3TestInit
    38 BS3_DECL(void) BS3_CMN_NM(Bs3TestInit)(const char BS3_FAR *pszTest)
     40BS3_DECL(void) Bs3TestInit(const char BS3_FAR *pszTest)
    3941{
    4042    /*
    4143     * Initialize the globals.
    4244     */
    43     BS3_CMN_NM(g_pszBs3Test)    = pszTest;
    44     BS3_CMN_NM(g_pszBs3SubTest) = NULL;
    45     g_cusBs3TestErrors          = 0;
    46     g_cusBs3SubTestAtErrors     = 0;
    47     g_fbBs3SubTestReported      = true;
    48     g_cusBs3SubTests            = 0;
    49     g_cusBs3SubTestsFailed      = 0;
    50     g_fbBs3VMMDevTesting        = bs3TestIsVmmDevTestingPresent();
     45    BS3_CMN_NM(g_pszBs3Test)                 = pszTest;
     46    BS3_DATA_NM(g_szBs3SubTest)[0]           = '\0';
     47    BS3_DATA_NM(g_cusBs3TestErrors)          = 0;
     48    BS3_DATA_NM(g_cusBs3SubTestAtErrors)     = 0;
     49    BS3_DATA_NM(g_fbBs3SubTestReported)      = true;
     50    BS3_DATA_NM(g_fbBs3SubTestSkipped)       = true;
     51    BS3_DATA_NM(g_cusBs3SubTests)            = 0;
     52    BS3_DATA_NM(g_cusBs3SubTestsFailed)      = 0;
     53    BS3_DATA_NM(g_fbBs3VMMDevTesting)        = bs3TestIsVmmDevTestingPresent();
    5154
    5255    /*
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-TestTerm.c

    r59863 r59865  
    2626
    2727
     28/*********************************************************************************************************************************
     29*   Header Files                                                                                                                 *
     30*********************************************************************************************************************************/
    2831#include "bs3kit-template-header.h"
    2932#include "bs3-cmn-test.h"
     33
     34
     35
     36/**
     37 * Equivalent to rtTestSubCleanup + rtTestSubTestReport.
     38 */
     39BS3_DECL(void) bs3TestSubCleanup(void)
     40{
     41    if (BS3_DATA_NM(g_szBs3SubTest)[0] != '\0')
     42    {
     43        if (!BS3_DATA_NM(g_fbBs3SubTestReported))
     44        {
     45            size_t   cch;
     46            uint16_t cErrors = BS3_DATA_NM(g_cusBs3TestErrors) - BS3_DATA_NM(g_cusBs3SubTestAtErrors);
     47
     48            /* Tell VMMDev. */
     49            bs3TestSendCmdWithU32(VMMDEV_TESTING_CMD_SUB_DONE, cErrors);
     50
     51            /* Print result to the console. */
     52            Bs3PrintStr(BS3_DATA_NM(g_szBs3SubTest));
     53            Bs3PrintChr(':');
     54            cch = Bs3StrLen(BS3_DATA_NM(g_szBs3SubTest));
     55            do
     56                Bs3PrintChr(' ');
     57            while (cch++ < 49);
     58
     59            if (!cErrors)
     60                Bs3PrintStr(!BS3_DATA_NM(g_fbBs3SubTestSkipped) ? "PASSED\n" : "SKIPPED\n");
     61            else
     62            {
     63                BS3_DATA_NM(g_cusBs3SubTestsFailed)++;
     64                Bs3Printf("FAILED (%u errors)\n", BS3_DATA_NM(g_szBs3SubTest), cErrors);
     65            }
     66        }
     67
     68        /* Reset the sub-test. */
     69        BS3_DATA_NM(g_fbBs3SubTestReported) = true;
     70        BS3_DATA_NM(g_fbBs3SubTestSkipped)  = false;
     71        BS3_DATA_NM(g_szBs3SubTest)[0]      = '\0';
     72    }
     73}
    3074
    3175
     
    3680{
    3781    /*
    38      * Close current sub-test.
     82     * Close any current sub-test.
    3983     */
    40     if (BS3_CMN_NM(g_pszBs3SubTest))
    41     {
    42 
    43     }
    44 
     84    bs3TestSubCleanup();
    4585
    4686    /*
     
    5090    {
    5191        Bs3PrintStr(BS3_CMN_NM(g_pszBs3Test));
    52         if (g_cusBs3TestErrors == 0)
    53             Bs3Printf(": SUCCESS (%u tests)\n", g_cusBs3SubTests);
     92        if (BS3_DATA_NM(g_cusBs3TestErrors) == 0)
     93            Bs3Printf(": SUCCESS (%u tests)\n", BS3_DATA_NM(g_cusBs3SubTests));
    5494        else
    55             Bs3Printf(": FAILURE - %u (%u of %u tests)\n", g_cusBs3TestErrors, g_cusBs3SubTestsFailed, g_cusBs3SubTests);
     95            Bs3Printf(": FAILURE - %u (%u of %u tests)\n",
     96                      BS3_DATA_NM(g_cusBs3TestErrors), BS3_DATA_NM(g_cusBs3SubTestsFailed), BS3_DATA_NM(g_cusBs3SubTests));
    5697    }
    5798
     
    59100     * Tell VMMDev.
    60101     */
    61     bs3TestSendCmdWithU32(VMMDEV_TESTING_CMD_TERM, g_cusBs3TestErrors);
    62     for (;;) { }
     102    bs3TestSendCmdWithU32(VMMDEV_TESTING_CMD_TERM, BS3_DATA_NM(g_cusBs3TestErrors));
    63103
    64104    BS3_CMN_NM(g_pszBs3Test) = NULL;
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-test.h

    r59863 r59865  
    3333
    3434/** Indicates whether the VMMDev is operational. */
    35 extern bool                 g_fbBs3VMMDevTesting;
     35extern bool                 BS3_DATA_NM(g_fbBs3VMMDevTesting);
    3636
    3737/** The number of tests that have failed. */
    38 extern uint16_t             g_cusBs3TestErrors;
     38extern uint16_t             BS3_DATA_NM(g_cusBs3TestErrors);
    3939
    4040/** The start error count of the current subtest. */
    41 extern uint16_t             g_cusBs3SubTestAtErrors;
     41extern uint16_t             BS3_DATA_NM(g_cusBs3SubTestAtErrors);
    4242
    4343/**  Whether we've reported the sub-test result or not. */
    44 extern bool                 g_fbBs3SubTestReported;
     44extern bool                 BS3_DATA_NM(g_fbBs3SubTestReported);
     45/** Whether the sub-test has been skipped or not. */
     46extern bool                 BS3_DATA_NM(g_fbBs3SubTestSkipped);
    4547
    4648/** The number of sub tests. */
    47 extern uint16_t             g_cusBs3SubTests;
     49extern uint16_t             BS3_DATA_NM(g_cusBs3SubTests);
    4850
    4951/** The number of sub tests that failed. */
    50 extern uint16_t             g_cusBs3SubTestsFailed;
     52extern uint16_t             BS3_DATA_NM(g_cusBs3SubTestsFailed);
    5153
    5254/** VMMDEV_TESTING_UNIT_XXX -> string */
    53 extern char const           g_aszBs3TestUnitNames[][16];
     55extern char const           BS3_DATA_NM(g_aszBs3TestUnitNames)[][16];
    5456
    5557/** The test name. */
     
    5759extern const char          *g_pszBs3Test_c32;
    5860extern const char          *g_pszBs3Test_c64;
     61
    5962/** The subtest name. */
    60 extern const char BS3_FAR  *g_pszBs3SubTest_c16;
    61 extern const char          *g_pszBs3SubTest_c32;
    62 extern const char          *g_pszBs3SubTest_c64;
     63extern char                 BS3_DATA_NM(g_szBs3SubTest)[64];
    6364
    6465
     
    9192#define bs3TestSendCmdWithU32 BS3_CMN_NM(bs3TestSendCmdWithU32) /**< Selects #bs3TestSendCmdWithU32_c16, #bs3TestSendCmdWithU32_c32 or #bs3TestSendCmdWithU32_c64. */
    9293
    93 
    9494/**
    9595 * Checks if the VMMDev is configured for testing.
     
    102102#define bs3TestIsVmmDevTestingPresent BS3_CMN_NM(bs3TestIsVmmDevTestingPresent) /**< Selects #bs3TestIsVmmDevTestingPresent_c16, #bs3TestIsVmmDevTestingPresent_c32 or #bs3TestIsVmmDevTestingPresent_c64. */
    103103
     104/**
     105 * Similar to rtTestSubCleanup.
     106 */
     107BS3_DECL(void) bs3TestSubCleanup_c16(void);
     108BS3_DECL(void) bs3TestSubCleanup_c32(void); /**< @copydoc bs3TestSubCleanup_c16 */
     109BS3_DECL(void) bs3TestSubCleanup_c64(void); /**< @copydoc bs3TestSubCleanup_c16 */
     110#define bs3TestSubCleanup BS3_CMN_NM(bs3TestSubCleanup) /**< Selects #bs3TestSubCleanup_c16, #bs3TestSubCleanup_c32 or #bs3TestSubCleanup_c64. */
     111
     112/**
     113 * @impl_callback_method{FNBS3STRFORMATOUTPUT,
     114 *      Used by Bs3TestFailedV and Bs3TestSkippedV.
     115 *
     116 *      The @a pvUser parameter must point to a boolean that was initialized to false. }
     117 */
     118BS3_DECL_CALLBACK(size_t) bs3TestFailedStrOutput_c16(char ch, void BS3_FAR *pvUser);
     119BS3_DECL_CALLBACK(size_t) bs3TestFailedStrOutput_c32(char ch, void BS3_FAR *pvUser);
     120BS3_DECL_CALLBACK(size_t) bs3TestFailedStrOutput_c64(char ch, void BS3_FAR *pvUser);
     121#define bs3TestFailedStrOutput BS3_CMN_NM(bs3TestFailedStrOutput) /**< Selects #bs3TestFailedStrOutput_c16, #bs3TestFailedStrOutput_c32 or #bs3TestFailedStrOutput_c64. */
    104122
    105123#endif
  • trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit.h

    r59863 r59865  
    11481148 * @param   pvUser  User argument supplied to #Bs3StrFormatV.
    11491149 */
    1150 typedef size_t BS3_CALL FNBS3STRFORMATOUTPUT(char ch, void BS3_FAR *pvUser);
     1150typedef BS3_DECL_CALLBACK(size_t) FNBS3STRFORMATOUTPUT(char ch, void BS3_FAR *pvUser);
    11511151/** Pointer to an output function for #Bs3StrFormatV. */
    1152 typedef FNBS3STRFORMATOUTPUT BS3_NEAR_CODE *PFNBS3STRFORMATOUTPUT;
     1152typedef FNBS3STRFORMATOUTPUT *PFNBS3STRFORMATOUTPUT;
    11531153
    11541154/**
     
    13281328BS3_DECL(void) Bs3TestTerm_c64(void); /**< @copydoc Bs3TestTerm_c16 */
    13291329#define Bs3TestTerm BS3_CMN_NM(Bs3TestTerm) /**< Selects #Bs3TestTerm_c16, #Bs3TestTerm_c32 or #Bs3TestTerm_c64. */
     1330
     1331/**
     1332 * Equivalent to RTTestISub.
     1333 */
     1334BS3_DECL(void) Bs3TestSub_c16(const char BS3_FAR *pszSubTest);
     1335BS3_DECL(void) Bs3TestSub_c32(const char BS3_FAR *pszSubTest); /**< @copydoc Bs3TestSub_c16 */
     1336BS3_DECL(void) Bs3TestSub_c64(const char BS3_FAR *pszSubTest); /**< @copydoc Bs3TestSub_c16 */
     1337#define Bs3TestSub BS3_CMN_NM(Bs3TestSub) /**< Selects #Bs3TestSub_c16, #Bs3TestSub_c32 or #Bs3TestSub_c64. */
     1338
     1339/**
     1340 * Equivalent to RTTestIFailedF.
     1341 */
     1342BS3_DECL(void) Bs3TestSubF_c16(const char BS3_FAR *pszFormat, ...);
     1343BS3_DECL(void) Bs3TestSubF_c32(const char BS3_FAR *pszFormat, ...); /**< @copydoc Bs3TestSubF_c16 */
     1344BS3_DECL(void) Bs3TestSubF_c64(const char BS3_FAR *pszFormat, ...); /**< @copydoc Bs3TestSubF_c16 */
     1345#define Bs3TestSubF BS3_CMN_NM(Bs3TestSubF) /**< Selects #Bs3TestSubF_c16, #Bs3TestSubF_c32 or #Bs3TestSubF_c64. */
     1346
     1347/**
     1348 * Equivalent to RTTestISubV.
     1349 */
     1350BS3_DECL(void) Bs3TestSubV_c16(const char BS3_FAR *pszFormat, va_list va);
     1351BS3_DECL(void) Bs3TestSubV_c32(const char BS3_FAR *pszFormat, va_list va); /**< @copydoc Bs3TestSubV_c16 */
     1352BS3_DECL(void) Bs3TestSubV_c64(const char BS3_FAR *pszFormat, va_list va); /**< @copydoc Bs3TestSubV_c16 */
     1353#define Bs3TestSubV BS3_CMN_NM(Bs3TestSubV) /**< Selects #Bs3TestSubV_c16, #Bs3TestSubV_c32 or #Bs3TestSubV_c64. */
     1354
     1355/**
     1356 * Equivalent to RTTestISubDone.
     1357 */
     1358BS3_DECL(void) Bs3TestSubDone_c16(void);
     1359BS3_DECL(void) Bs3TestSubDone_c32(void); /**< @copydoc Bs3TestSubDone_c16 */
     1360BS3_DECL(void) Bs3TestSubDone_c64(void); /**< @copydoc Bs3TestSubDone_c16 */
     1361#define Bs3TestSubDone BS3_CMN_NM(Bs3TestSubDone) /**< Selects #Bs3TestSubDone_c16, #Bs3TestSubDone_c32 or #Bs3TestSubDone_c64. */
     1362
     1363/**
     1364 * Equivalent to RTTestSubErrorCount.
     1365 */
     1366BS3_DECL(uint16_t) Bs3TestSubErrorCount_c16(void);
     1367BS3_DECL(uint16_t) Bs3TestSubErrorCount_c32(void); /**< @copydoc Bs3TestSubErrorCount_c16 */
     1368BS3_DECL(uint16_t) Bs3TestSubErrorCount_c64(void); /**< @copydoc Bs3TestSubErrorCount_c16 */
     1369#define Bs3TestSubErrorCount BS3_CMN_NM(Bs3TestSubErrorCount) /**< Selects #Bs3TestSubErrorCount_c16, #Bs3TestSubErrorCount_c32 or #Bs3TestSubErrorCount_c64. */
     1370
     1371/**
     1372 * Equivalent to RTTestIFailed.
     1373 */
     1374BS3_DECL(void) Bs3TestFailed_c16(const char BS3_FAR *pszMessage);
     1375BS3_DECL(void) Bs3TestFailed_c32(const char BS3_FAR *pszMessage); /**< @copydoc Bs3TestFailed_c16 */
     1376BS3_DECL(void) Bs3TestFailed_c64(const char BS3_FAR *pszMessage); /**< @copydoc Bs3TestFailed_c16 */
     1377#define Bs3TestFailed BS3_CMN_NM(Bs3TestFailed) /**< Selects #Bs3TestFailed_c16, #Bs3TestFailed_c32 or #Bs3TestFailed_c64. */
     1378
     1379/**
     1380 * Equivalent to RTTestIFailedF.
     1381 */
     1382BS3_DECL(void) Bs3TestFailedF_c16(const char BS3_FAR *pszFormat, ...);
     1383BS3_DECL(void) Bs3TestFailedF_c32(const char BS3_FAR *pszFormat, ...); /**< @copydoc Bs3TestFailedF_c16 */
     1384BS3_DECL(void) Bs3TestFailedF_c64(const char BS3_FAR *pszFormat, ...); /**< @copydoc Bs3TestFailedF_c16 */
     1385#define Bs3TestFailedF BS3_CMN_NM(Bs3TestFailedF) /**< Selects #Bs3TestFailedF_c16, #Bs3TestFailedF_c32 or #Bs3TestFailedF_c64. */
     1386
     1387/**
     1388 * Equivalent to RTTestIFailedV.
     1389 */
     1390BS3_DECL(void) Bs3TestFailedV_c16(const char BS3_FAR *pszFormat, va_list va);
     1391BS3_DECL(void) Bs3TestFailedV_c32(const char BS3_FAR *pszFormat, va_list va); /**< @copydoc Bs3TestFailedV_c16 */
     1392BS3_DECL(void) Bs3TestFailedV_c64(const char BS3_FAR *pszFormat, va_list va); /**< @copydoc Bs3TestFailedV_c16 */
     1393#define Bs3TestFailedV BS3_CMN_NM(Bs3TestFailedV) /**< Selects #Bs3TestFailedV_c16, #Bs3TestFailedV_c32 or #Bs3TestFailedV_c64. */
     1394
     1395/**
     1396 * Equivalent to RTTestISkipped.
     1397 *
     1398 * @param   pszWhy          Optional reason why it's being skipped.
     1399 */
     1400BS3_DECL(void) Bs3TestSkipped_c16(const char BS3_FAR *pszWhy);
     1401BS3_DECL(void) Bs3TestSkipped_c32(const char BS3_FAR *pszWhy); /**< @copydoc Bs3TestSkipped_c16 */
     1402BS3_DECL(void) Bs3TestSkipped_c64(const char BS3_FAR *pszWhy); /**< @copydoc Bs3TestSkipped_c16 */
     1403#define Bs3TestSkipped BS3_CMN_NM(Bs3TestSkipped) /**< Selects #Bs3TestSkipped_c16, #Bs3TestSkipped_c32 or #Bs3TestSkipped_c64. */
     1404
     1405/**
     1406 * Equivalent to RTTestISkippedF.
     1407 *
     1408 * @param   pszFormat       Optional reason why it's being skipped.
     1409 * @param   ...             Format arguments.
     1410 */
     1411BS3_DECL(void) Bs3TestSkippedF_c16(const char BS3_FAR *pszFormat, ...);
     1412BS3_DECL(void) Bs3TestSkippedF_c32(const char BS3_FAR *pszFormat, ...); /**< @copydoc Bs3TestSkippedF_c16 */
     1413BS3_DECL(void) Bs3TestSkippedF_c64(const char BS3_FAR *pszFormat, ...); /**< @copydoc Bs3TestSkippedF_c16 */
     1414#define Bs3TestSkippedF BS3_CMN_NM(Bs3TestSkippedF) /**< Selects #Bs3TestSkippedF_c16, #Bs3TestSkippedF_c32 or #Bs3TestSkippedF_c64. */
     1415
     1416/**
     1417 * Equivalent to RTTestISkippedV.
     1418 *
     1419 * @param   pszFormat       Optional reason why it's being skipped.
     1420 * @param   va              Format arguments.
     1421 */
     1422BS3_DECL(void) Bs3TestSkippedV_c16(const char BS3_FAR *pszFormat, va_list va);
     1423BS3_DECL(void) Bs3TestSkippedV_c32(const char BS3_FAR *pszFormat, va_list va); /**< @copydoc Bs3TestSkippedV_c16 */
     1424BS3_DECL(void) Bs3TestSkippedV_c64(const char BS3_FAR *pszFormat, va_list va); /**< @copydoc Bs3TestSkippedV_c16 */
     1425#define Bs3TestSkippedV BS3_CMN_NM(Bs3TestSkippedV) /**< Selects #Bs3TestSkippedV_c16, #Bs3TestSkippedV_c32 or #Bs3TestSkippedV_c64. */
     1426
     1427
     1428/**
     1429 * Performs the testing for the given mode.
     1430 *
     1431 * This is called with the CPU already switch to that mode.
     1432 *
     1433 * @returns 0 on success or directly Bs3TestFailed calls, non-zero to indicate
     1434 *          where the test when wrong.
     1435 * @param   bMode       The current CPU mode.
     1436 */
     1437typedef BS3_DECL_CALLBACK(uint8_t) FNBS3TESTDOMODE(uint8_t bMode);
     1438/** Near pointer to a test (for 16-bit code). */
     1439typedef FNBS3TESTDOMODE               *PFNBS3TESTDOMODE;
     1440/** Far pointer to a test (for 32-bit and 64-bit code, will be flatten). */
     1441typedef FNBS3TESTDOMODE BS3_FAR_CODE  *FPFNBS3TESTDOMODE;
     1442
     1443/**
     1444 * Mode sub-test entry.
     1445 *
     1446 * This can only be passed around to functions with the same bit count, as it
     1447 * contains function pointers.  In 16-bit mode, the 16-bit pointers are near and
     1448 * implies BS3TEXT16, whereas the 32-bit and 64-bit pointers are far real mode
     1449 * addresses that will be converted to flat address prior to calling them.
     1450 * Similarly, in 32-bit and 64-bit the addresses are all flat and the 16-bit
     1451 * ones will be converted to BS3TEXT16 based addresses prior to calling.
     1452 */
     1453typedef struct BS3TESTMODEENTRY
     1454{
     1455    const char * BS3_FAR    pszSubTest;
     1456
     1457    PFNBS3TESTDOMODE        pfnDoRM;
     1458
     1459    PFNBS3TESTDOMODE        pfnDoPE16;
     1460    FPFNBS3TESTDOMODE       pfnDoPE16_32;
     1461    PFNBS3TESTDOMODE        pfnDoPE16_V86;
     1462    FPFNBS3TESTDOMODE       pfnDoPE32;
     1463    PFNBS3TESTDOMODE        pfnDoPE32_16;
     1464    PFNBS3TESTDOMODE        pfnDoPEV86;
     1465
     1466    PFNBS3TESTDOMODE        pfnDoPP16;
     1467    FPFNBS3TESTDOMODE       pfnDoPP16_32;
     1468    PFNBS3TESTDOMODE        pfnDoPP16_V86;
     1469    FPFNBS3TESTDOMODE       pfnDoPP32;
     1470    PFNBS3TESTDOMODE        pfnDoPP32_16;
     1471    PFNBS3TESTDOMODE        pfnDoPPV86;
     1472
     1473    PFNBS3TESTDOMODE        pfnDoPAE16;
     1474    FPFNBS3TESTDOMODE       pfnDoPAE16_32;
     1475    PFNBS3TESTDOMODE        pfnDoPAE16_V86;
     1476    FPFNBS3TESTDOMODE       pfnDoPAE32;
     1477    PFNBS3TESTDOMODE        pfnDoPAE32_16;
     1478    PFNBS3TESTDOMODE        pfnDoPAEV86;
     1479
     1480    PFNBS3TESTDOMODE        pfnDoLM16;
     1481    FPFNBS3TESTDOMODE       pfnDoLM32;
     1482    FPFNBS3TESTDOMODE       pfnDoLM64;
     1483
     1484} BS3TESTMODEENTRY;
     1485/** Pointer to a mode sub-test entry. */
     1486typedef BS3TESTMODEENTRY const *PCBS3TESTMODEENTRY;
    13301487
    13311488
     
    20302187
    20312188
     2189/**
     2190 * Executes the array of tests in every possibly mode.
     2191 *
     2192 * @param   paEntries       The mode sub-test entries.
     2193 * @param   cEntries        The number of sub-test entries.
     2194 */
     2195BS3_MODE_EXPAND_PROTOTYPES(void, Bs3TestDoModes, (BS3TESTMODEENTRY paEntries, unsigned cEntries));
     2196
    20322197/** @} */
    20332198
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