Changeset 59941 in vbox
- Timestamp:
- Mar 7, 2016 3:13:51 PM (9 years ago)
- Location:
- trunk/src/VBox/ValidationKit/bootsectors
- Files:
-
- 26 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/Makefile.kmk
r59866 r59941 228 228 MISCBINS += bs3-cpu-basic-2 229 229 bs3-cpu-basic-2_TEMPLATE = VBoxBS3KitImg 230 ifeq ($(KBUILD_HOST),win) 231 bs3-cpu-basic-2_DEFS = HAVE_OMF_CONVERTER 232 endif 230 233 bs3-cpu-basic-2_SOURCES = \ 231 234 bs3kit/bs3-first-rm.asm \ -
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-basic-2-c.c
r59866 r59941 35 35 FNBS3TESTDOMODE BS3_FAR_CODE bs3CpuBasic2_iret_c32; 36 36 FNBS3TESTDOMODE BS3_FAR_CODE bs3CpuBasic2_iret_c64; 37 #pragma alias("_bs3CpuBasic2_iret_c64", "bs3CpuBasic2_iret_c64") 37 38 38 39 39 40 static const BS3TESTMODEENTRY g_aModeTest[] = 40 41 { 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), 44 43 }; 45 44 … … 50 49 Bs3TestInit("bs3-cpu-basic-2"); 51 50 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 53 54 54 55 Bs3TestTerm(); -
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-basic-2-template.mac
r59866 r59941 13 13 14 14 BS3_PROC_BEGIN_CMN bs3CpuBasic2_iret 15 hlt15 ;hlt 16 16 xor al, al 17 mov al, TMPL_MODE 17 18 ret 18 19 BS3_PROC_END_CMN bs3CpuBasic2_iret -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-MemAlloc.c
r59932 r59941 79 79 size_t const cbAligned = RT_ALIGN_Z(cb, _4K); 80 80 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; 81 83 82 pvRet = Bs3SlabAllocEx(enmKind == BS3MEMKIND_REAL 83 ? &BS3_DATA_NM(g_Bs3Mem4KLow).Core : &BS3_DATA_NM(g_Bs3Mem4KUpperTiled).Core, 84 pvRet = Bs3SlabAllocEx(pSlabCtl, 84 85 cPages, 85 86 cPages <= _64K / _4K ? BS3_SLAB_ALLOC_F_SAME_TILE : 0); -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-PagingInitRootForLM.c
r59286 r59941 91 91 return VINF_SUCCESS; 92 92 } 93 94 BS3_ASSERT(false); 93 95 Bs3MemFree(pPdPtr, _4K); 94 96 } 97 BS3_ASSERT(false); 95 98 Bs3MemFree(pPml4, _4K); 96 99 } 97 100 BS3_ASSERT(false); 98 101 return VERR_NO_MEMORY; 99 102 } -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-PagingInitRootForPAE.c
r59286 r59941 77 77 return VINF_SUCCESS; 78 78 } 79 BS3_ASSERT(false); 79 80 Bs3MemFree(pPdPtr, _4K); 80 81 } 82 BS3_ASSERT(false); 81 83 return VERR_NO_MEMORY; 82 84 } -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-PagingInitRootForPP.c
r59286 r59941 62 62 return VINF_SUCCESS; 63 63 } 64 65 BS3_ASSERT(false); 64 66 return VERR_NO_MEMORY; 65 67 } -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-SelProtFar32ToFlat32.c
r59895 r59941 33 33 PCX86DESC pEntry; 34 34 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]; 36 36 else 37 pEntry = &BS3_DATA_NM(Bs3Ldt)[uSel & X86_SEL_MASK];37 pEntry = &BS3_DATA_NM(Bs3Ldt)[uSel >> X86_SEL_SHIFT]; 38 38 uRet = pEntry->Gen.u16BaseLow; 39 39 uRet |= (uint32_t)pEntry->Gen.u8BaseHigh1 << 16; 40 uRet |= (uint32_t)pEntry->Gen.u8BaseHigh2 << 16;40 uRet |= (uint32_t)pEntry->Gen.u8BaseHigh2 << 24; 41 41 uRet += off; 42 42 return uRet; -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-SlabAllocEx.c
r59286 r59941 60 60 { 61 61 /* Complete the allocation. */ 62 void *fpRet; 62 63 for (i = 0; i < cChunks; i++) 63 64 ASMBitSet(&pSlabCtl->bmAllocated, iBit + i); 64 65 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; 66 71 } 67 72 -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-StrFormatV.c
r58811 r59941 63 63 PFNBS3STRFORMATOUTPUT pfnOutput; 64 64 /** User argument for pfnOutput. */ 65 void BS3_FAR *pvUser;65 void BS3_FAR *pvUser; 66 66 67 67 /** STR_F_XXX flags. */ … … 150 150 if (pState->fFlags & STR_F_SPECIAL) 151 151 { 152 cchActual += pState->pfnOutput( 0, pState->pvUser);152 cchActual += pState->pfnOutput('0', pState->pvUser); 153 153 cchActual += pState->pfnOutput(!(pState->fFlags & STR_F_CAPITAL) ? 'x' : 'X', pState->pvUser); 154 154 } -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-SwitchTo16BitV86.asm
r59934 r59941 43 43 ; Construct basic v8086 return frame. 44 44 BS3_ONLY_16BIT_STMT movzx esp, sp 45 push dword 0 ;GS46 push dword 0 ;FS47 push dword BS3_SEL_DATA16 ;ES48 push dword BS3_SEL_DATA16 ;DS49 push dword 0 ;SS - later50 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. 51 51 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 54 54 push word 0 55 55 %if TMPL_BITS == 16 56 push word [esp + 2 + 7 * 4 + 2]56 push word [esp + 2 + 8 * 4 + 2] ; +0x00 57 57 %else 58 push word [esp + 2 + 7 * 4]58 push word [esp + 2 + 8 * 4] ; +0x00 59 59 %endif 60 60 ; Save registers and stuff. … … 103 103 %endif 104 104 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. 106 106 lea eax, [esp + 4*4 + 24h] 107 107 push ss 108 108 push eax 109 109 BS3_CALL Bs3SelProtFar32ToFlat32, 2 110 add esp, sCB + xCB 110 111 mov [esp + 4*4 + 0ch], ax ; high word is already zero 111 112 %if TMPL_BITS == 16 -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-SwitchTo32Bit.asm
r59934 r59941 84 84 %if TMPL_BITS == 16 85 85 ; Calc flat stack into edx. 86 movzx eax, sp 86 87 push ecx 87 88 push ebx 88 89 push ss 89 push word 0 90 push sp 90 push eax 91 91 call Bs3SelProtFar32ToFlat32 92 92 add sp, 6 … … 133 133 %if TMPL_BITS == 16 134 134 ; Adjust the return address. 135 mov sx eax, word [esp + 4*3 + 2]135 movzx eax, word [esp + 4*3 + 2] 136 136 add eax, BS3_ADDR_BS3TEXT16 137 137 mov [esp + 4*3], eax … … 139 139 140 140 ; Restore and return. 141 BS3_ONLY_16BIT_STMT pop edx 141 %if TMPL_BITS == 16 142 pop edx 143 %endif 142 144 popfd 143 145 pop eax -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-TestInit.c
r59865 r59941 48 48 BS3_DATA_NM(g_cusBs3SubTestAtErrors) = 0; 49 49 BS3_DATA_NM(g_fbBs3SubTestReported) = true; 50 BS3_DATA_NM(g_fbBs3SubTestSkipped) = true;50 BS3_DATA_NM(g_fbBs3SubTestSkipped) = false; 51 51 BS3_DATA_NM(g_cusBs3SubTests) = 0; 52 52 BS3_DATA_NM(g_cusBs3SubTestsFailed) = 0; -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-TestSub.c
r59865 r59941 56 56 * Tell VMMDev and output to the console. 57 57 */ 58 bs3TestSendCmdWithStr(VMMDEV_TESTING_CMD_SUB_NEW, pszFormat);58 bs3TestSendCmdWithStr(VMMDEV_TESTING_CMD_SUB_NEW, BS3_DATA_NM(g_szBs3SubTest)); 59 59 60 60 Bs3PrintStr(BS3_DATA_NM(g_szBs3SubTest)); -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-EnteredMode.asm
r59863 r59941 163 163 mov es, ax 164 164 165 %if TMPL_BITS == 16 166 ; For restoring after Bs3Trap* calls below. 167 push ax 168 push ax 169 %endif 170 165 171 ; 166 172 ; Set global indicating CPU mode. … … 225 231 %endif 226 232 233 %if TMPL_BITS == 16 234 ; Restoring ds and es after the above calls. 235 pop es 236 pop ds 237 %endif 238 227 239 ; 228 240 ; Epilogue. … … 237 249 leave 238 250 ret 251 .dbg_str: 252 db 'CurrentMode=%#x', 0ah, 0 239 253 BS3_PROC_END_MODE Bs3EnteredMode 240 254 -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-PagingGetRootForLM64.asm
r59938 r59941 86 86 ; Not a problematic addressing mode. 87 87 ; 88 BS3_ONLY_64BIT_STMT sub rsp, 20h 89 BS3_CALL Bs3PagingInitRootForLM, 0 88 90 BS3_ONLY_64BIT_STMT add rsp, 20h 89 BS3_CALL Bs3PagingInitRootForLM, 090 91 %endif 91 92 93 ; 94 ; Load the value and return. 95 ; 92 96 BS3_ONLY_16BIT_STMT push BS3DATA16 93 97 BS3_ONLY_16BIT_STMT pop ds 94 98 mov eax, [g_PhysPagingRootLM TMPL_WRT_DATA16_OR_FLAT] 99 95 100 BS3_ONLY_16BIT_STMT pop ds 96 101 leave -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-PagingGetRootForPAE16.asm
r59244 r59941 28 28 29 29 30 BS3_EXTERN_DATA16 g_PhysPagingRootPAE31 TMPL_BEGIN_TEXT32 30 extern TMPL_NM(Bs3PagingGetRootForPAE32) 33 31 -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-PagingGetRootForPAE32.asm
r59938 r59941 74 74 call Bs3PagingInitRootForPAE 75 75 call NAME(Bs3SwitchToRM_pe16) 76 76 77 %elifdef TMPL_CMN_V86 77 78 ; … … 86 87 ; Not a problematic addressing mode. 87 88 ; 89 BS3_ONLY_64BIT_STMT sub rsp, 20h 90 BS3_CALL Bs3PagingInitRootForPAE, 0 88 91 BS3_ONLY_64BIT_STMT add rsp, 20h 89 BS3_CALL Bs3PagingInitRootForPAE, 090 92 %endif 91 93 94 ; 95 ; Load the value and return. 96 ; 92 97 BS3_ONLY_16BIT_STMT push BS3DATA16 93 98 BS3_ONLY_16BIT_STMT pop ds 94 99 mov eax, [g_PhysPagingRootPAE TMPL_WRT_DATA16_OR_FLAT] 100 95 101 BS3_ONLY_16BIT_STMT pop ds 96 102 leave -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-PagingGetRootForPP16.asm
r59237 r59941 5 5 6 6 ; 7 ; Copyright (C) 2007-201 5Oracle Corporation7 ; Copyright (C) 2007-2016 Oracle Corporation 8 8 ; 9 9 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 28 28 29 29 30 BS3_EXTERN_DATA16 g_PhysPagingRootPP31 TMPL_BEGIN_TEXT32 30 extern TMPL_NM(Bs3PagingGetRootForPP32) 33 31 -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-PagingGetRootForPP32.asm
r59938 r59941 74 74 call Bs3PagingInitRootForPP 75 75 call NAME(Bs3SwitchToRM_pe16) 76 76 77 %elifdef TMPL_CMN_V86 77 78 ; … … 86 87 ; Not a problematic addressing mode. 87 88 ; 89 BS3_ONLY_64BIT_STMT sub rsp, 20h 90 BS3_CALL Bs3PagingInitRootForPP, 0 88 91 BS3_ONLY_64BIT_STMT add rsp, 20h 89 BS3_CALL Bs3PagingInitRootForPP, 090 92 %endif 91 93 94 ; 95 ; Load the value and return. 96 ; 92 97 BS3_ONLY_16BIT_STMT push BS3DATA16 93 98 BS3_ONLY_16BIT_STMT pop ds 94 99 mov eax, [g_PhysPagingRootPP TMPL_WRT_DATA16_OR_FLAT] 100 95 101 BS3_ONLY_16BIT_STMT pop ds 96 102 leave -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-SwitchToPP16.asm
r59287 r59941 89 89 90 90 ; 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 ; 91 101 ; Make sure PAE is really off and that PSE is enabled. 92 102 ; ASSUMES PSE supported (pentium+). … … 100 110 mov cr4, eax 101 111 .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 cli111 mov cr3, eax112 112 113 113 ; -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TestDoModes.c
r59938 r59941 171 171 BS3_DECL(void) TMPL_NM(Bs3TestDoModes)(PCBS3TESTMODEENTRY paEntries, size_t cEntries) 172 172 { 173 bool const fDoV86Mode = false; 173 174 uint8_t const bCpuType = BS3_DATA_NM(g_uBs3CpuDetected) & BS3CPU_TYPE_MASK; 174 175 bool const fHavePae = RT_BOOL(BS3_DATA_NM(g_uBs3CpuDetected) & BS3CPU_F_PAE); … … 216 217 } 217 218 218 if (paEntries[i].pfnDoPE16_V86 )219 if (paEntries[i].pfnDoPE16_V86 && fDoV86Mode) 219 220 { 220 221 bErrNo = TMPL_NM(Bs3TestCallDoerInPE16_V86)(CONV_TO_BS3TEXT16(paEntries[i].pfnDoPE16_V86)); … … 237 238 } 238 239 239 if (paEntries[i].pfnDoPEV86 )240 if (paEntries[i].pfnDoPEV86 && fDoV86Mode) 240 241 { 241 242 bErrNo = TMPL_NM(Bs3TestCallDoerInPEV86)(CONV_TO_BS3TEXT16(paEntries[i].pfnDoPEV86)); … … 261 262 } 262 263 263 if (paEntries[i].pfnDoPP16_V86 )264 if (paEntries[i].pfnDoPP16_V86 && fDoV86Mode) 264 265 { 265 266 bErrNo = TMPL_NM(Bs3TestCallDoerInPP16_V86)(CONV_TO_BS3TEXT16(paEntries[i].pfnDoPP16_V86)); … … 282 283 } 283 284 284 if (paEntries[i].pfnDoPPV86 )285 if (paEntries[i].pfnDoPPV86 && fDoV86Mode) 285 286 { 286 287 bErrNo = TMPL_NM(Bs3TestCallDoerInPPV86)(CONV_TO_BS3TEXT16(paEntries[i].pfnDoPPV86)); … … 309 310 } 310 311 311 if (paEntries[i].pfnDoPAE16_V86 )312 if (paEntries[i].pfnDoPAE16_V86 && fDoV86Mode) 312 313 { 313 314 bErrNo = TMPL_NM(Bs3TestCallDoerInPAE16_V86)(CONV_TO_BS3TEXT16(paEntries[i].pfnDoPAE16_V86)); … … 330 331 } 331 332 332 if (paEntries[i].pfnDoPAEV86 )333 if (paEntries[i].pfnDoPAEV86 && fDoV86Mode) 333 334 { 334 335 bErrNo = TMPL_NM(Bs3TestCallDoerInPAEV86)(CONV_TO_BS3TEXT16(paEntries[i].pfnDoPAEV86)); -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TestDoModesHlp.asm
r59938 r59941 85 85 push xBP 86 86 mov xBP, xSP 87 xPUSHF 87 88 88 89 ; Save non-volatile registers so the DO function doesn't have to. … … 122 123 ; Restore registers. 123 124 %if TMPL_BITS == 16 124 sub bp, 0ah125 sub bp, (1+5+3)*2 125 126 mov sp, bp 126 127 %elif TMPL_BITS == 32 127 lea xSP, [xBP - 14h]128 lea xSP, [xBP - (1+5+5)*4] 128 129 %else 129 lea xSP, [xBP - 68h]130 lea xSP, [xBP - (1+5+8)*8] 130 131 pop r15 131 132 pop r14 … … 151 152 pop xCX 152 153 pop xBX 154 xPOPF 153 155 pop xBP 154 156 ret -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-rm-InitMemory.c
r59482 r59941 295 295 } 296 296 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 297 310 } 298 311 -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-system-data.asm
r58694 r59941 198 198 199 199 BS3_GLOBAL_DATA Bs3Gdte_R %+ %1 %+ _DS16, 8 ; Entry 108h 200 dw 0ffffh, 03000h ; 16-bit data segment with base 023000h.201 dw 0930 2h | (%1 << 0dh), 00000h200 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)) 202 202 203 203 BS3_GLOBAL_DATA Bs3Gdte_R %+ %1 %+ _SS16, 8 ; Entry 110h -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit.h
r59938 r59941 1477 1477 typedef BS3TESTMODEENTRY const *PCBS3TESTMODEENTRY; 1478 1478 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 1479 1535 1480 1536 /**
Note:
See TracChangeset
for help on using the changeset viewer.