Changeset 88839 in vbox for trunk/src/VBox/ValidationKit/bootsectors
- Timestamp:
- May 3, 2021 2:28:49 PM (4 years ago)
- Location:
- trunk/src/VBox/ValidationKit/bootsectors
- Files:
-
- 1 added
- 9 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/Makefile.kmk
r83006 r88839 361 361 $(REDIRECT) -0 /dev/null -- $(VBOX_BLD_PYTHON) $< $@ 362 362 363 # Timer Interrupts 364 MISCBINS += bs3-timers-1 365 bs3-timers-1_TEMPLATE = VBoxBS3KitImg 366 bs3-timers-1_INCS = . 367 bs3-timers-1_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-timers-1-template.c 368 bs3-timers-1_DEFS += BS3_MODE_INSTANTIATE_FILE1=bs3-timers-1-template.c 369 ifeq ($(KBUILD_HOST),win) 370 bs3-timers-1_DEFS += HAVE_OMF_CONVERTER 371 endif 372 bs3-timers-1_SOURCES = \ 373 bs3kit/bs3-first-rm.asm \ 374 bs3-timers-1.c \ 375 bs3-timers-1-x0.c 376 # bs3kit/bs3-cmn-instantiate-x0.c16 \ 377 # bs3kit/bs3-cmn-instantiate.c32 \ 378 # bs3kit/bs3-cmn-instantiate.c64 379 #bs3-timers-1-template.o:: \ 380 # $$(bs3-timers-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate-x0.o16 \ 381 # $$(bs3-timers-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o32 \ 382 # $$(bs3-timers-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o64 \ 383 # $$(bs3-timers-1_0_OUTDIR)/bs3-timers-1-asm.o16 384 363 385 endif # VBOX_WITH_BS3KIT 364 386 -
trunk/src/VBox/ValidationKit/bootsectors/bs3-timers-1.c
r88775 r88839 1 1 /* $Id$ */ 2 2 /** @file 3 * BS3Kit - bs3- cpu-basic-2, 16-bit C code.3 * BS3Kit - bs3-timers-1, 16-bit C code. 4 4 */ 5 5 6 6 /* 7 * Copyright (C) 2007-202 0Oracle Corporation7 * Copyright (C) 2007-2021 Oracle Corporation 8 8 * 9 9 * This file is part of VirtualBox Open Source Edition (OSE), as … … 36 36 * Internal Functions * 37 37 *********************************************************************************************************************************/ 38 BS3TESTMODE_PROTOTYPES_MODE(bs3CpuBasic2_TssGateEsp); 39 BS3TESTMODE_PROTOTYPES_MODE(bs3CpuBasic2_RaiseXcpt1); 40 41 FNBS3TESTDOMODE bs3CpuBasic2_sidt_f16; 42 FNBS3TESTDOMODE bs3CpuBasic2_sgdt_f16; 43 FNBS3TESTDOMODE bs3CpuBasic2_lidt_f16; 44 FNBS3TESTDOMODE bs3CpuBasic2_lgdt_f16; 45 FNBS3TESTDOMODE bs3CpuBasic2_iret_f16; 46 47 BS3_DECL_CALLBACK(void) bs3CpuBasic2_Do32BitTests_pe32(); 38 FNBS3TESTDOMODE bs3Timers1_Pit_100Hz_f16; 39 FNBS3TESTDOMODE bs3Timers1_Pit_1000Hz_f16; 40 FNBS3TESTDOMODE bs3Timers1_Pit_2000Hz_f16; 41 FNBS3TESTDOMODE bs3Timers1_Pit_4000Hz_f16; 48 42 49 43 … … 51 45 * Global Variables * 52 46 *********************************************************************************************************************************/ 53 static const BS3TESTMODEENTRY g_aModeTest[] =54 {55 BS3TESTMODEENTRY_MODE("tss / gate / esp", bs3CpuBasic2_TssGateEsp),56 //BS3TESTMODEENTRY_MODE("raise xcpt #1", bs3CpuBasic2_RaiseXcpt1), // !long mode is broken!57 };58 59 47 static const BS3TESTMODEBYONEENTRY g_aModeByOneTests[] = 60 48 { 61 { "iret", bs3CpuBasic2_iret_f16, 0 }, 62 { "sidt", bs3CpuBasic2_sidt_f16, 0 }, 63 { "sgdt", bs3CpuBasic2_sgdt_f16, 0 }, 64 { "lidt", bs3CpuBasic2_lidt_f16, 0 }, 65 { "lgdt", bs3CpuBasic2_lgdt_f16, 0 }, 49 { "pit-100Hz", bs3Timers1_Pit_100Hz_f16, BS3TESTMODEBYONEENTRY_F_MINIMAL }, 50 { "pit-1000Hz", bs3Timers1_Pit_1000Hz_f16, BS3TESTMODEBYONEENTRY_F_MINIMAL }, 51 { "pit-2000Hz", bs3Timers1_Pit_2000Hz_f16, BS3TESTMODEBYONEENTRY_F_MINIMAL }, 52 { "pit-4000Hz", bs3Timers1_Pit_4000Hz_f16, BS3TESTMODEBYONEENTRY_F_MINIMAL }, 66 53 }; 67 54 … … 70 57 { 71 58 Bs3InitAll_rm(); 72 Bs3TestInit("bs3-cpu-basic-2"); 73 Bs3TestPrintf("g_uBs3CpuDetected=%#x\n", g_uBs3CpuDetected); 59 Bs3TestInit("bs3-timers-1"); 74 60 75 /*76 * Do tests driven from 16-bit code.77 */78 NOREF(g_aModeTest); NOREF(g_aModeByOneTests); /* for when commenting out bits */79 #if 180 Bs3TestDoModes_rm(g_aModeTest, RT_ELEMENTS(g_aModeTest));81 61 Bs3TestDoModesByOne_rm(g_aModeByOneTests, RT_ELEMENTS(g_aModeByOneTests), 0); 82 #endif83 84 /*85 * Do tests driven from 32-bit code (bs3-cpu-basic-2-32.c32 via assembly).86 */87 Bs3SwitchTo32BitAndCallC_rm(bs3CpuBasic2_Do32BitTests_pe32, 0);88 62 89 63 Bs3TestTerm(); 90 for (;;) { ASMHalt(); }91 64 } 92 65 -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/Makefile.kmk
r83003 r88839 184 184 bs3-cmn-TestInit.c \ 185 185 bs3-cmn-TestFailed.c \ 186 bs3-cmn-TestNow.asm \ 186 187 bs3-cmn-TestSkipped.c \ 187 188 bs3-cmn-TestSub.c \ -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-PitIrqHandler.c
r82968 r88839 47 47 /** The current interval in milliseconds (approximately). 48 48 * This is 0 if not yet started (used for checking the state internally). */ 49 uint16_t volatileg_cBs3PitIntervalMs = 0;49 uint16_t g_cBs3PitIntervalMs = 0; 50 50 /** The current PIT frequency (approximately). 0 if not yet started. */ 51 uint16_t 51 uint16_t volatile g_cBs3PitIntervalHz = 0; 52 52 #endif 53 53 … … 55 55 BS3_DECL_NEAR_CALLBACK(void) BS3_CMN_NM(bs3PitIrqHandler)(PBS3TRAPFRAME pTrapFrame) 56 56 { 57 uint16_t cMsIntercal = g_cBs3PitIntervalMs; 58 if (cMsIntercal) 57 if (g_cBs3PitIntervalHz) 59 58 { 60 g_cBs3PitMs += cMsIntercal;59 g_cBs3PitMs += g_cBs3PitIntervalMs; 61 60 g_cBs3PitNs += g_cBs3PitIntervalNs; 62 61 g_cBs3PitTicks++; -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-TestNow.asm
r88775 r88839 1 1 ; $Id$ 2 2 ;; @file 3 ; BS3Kit - bs3TestSendCmdWithU32.3 ; BS3Kit - Bs3TestNow. 4 4 ; 5 5 6 6 ; 7 ; Copyright (C) 2007-202 0Oracle Corporation7 ; Copyright (C) 2007-2021 Oracle Corporation 8 8 ; 9 9 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 32 32 33 33 ;; 34 ; @cproto BS3_DECL( void) bs3TestSendCmdWithU32_c16(uint32_t uCmd, uint32_t uValue);34 ; @cproto BS3_DECL(uint64_t) Bs3TestNow(void); 35 35 ; 36 BS3_PROC_BEGIN_CMN bs3TestSendCmdWithU32, BS3_PBC_HYBRID37 BS3_CALL_CONV_PROLOG 236 BS3_PROC_BEGIN_CMN Bs3TestNow, BS3_PBC_HYBRID 37 BS3_CALL_CONV_PROLOG 0 38 38 push xBP 39 39 mov xBP, xSP 40 push xAX 41 push xDX 42 push xSI 40 %if __BITS__ == 16 41 BONLY16 push sAX 42 %else 43 push xCX 44 BONLY64 push xDX 45 %endif 43 46 44 47 cmp byte [BS3_DATA16_WRT(g_fbBs3VMMDevTesting)], 0 45 48 je .no_vmmdev 46 49 47 ; The command (uCmd) - 48 mov dx, VMMDEV_TESTING_IOPORT_CMD 49 %if TMPL_BITS == 16 50 mov ax, [xBP + xCB + cbCurRetAddr] ; We ignore the top bits in 16-bit mode. 51 out dx, ax 50 ; Read the lower timestamp. 51 mov dx, VMMDEV_TESTING_IOPORT_TS_LOW 52 in eax, dx 53 %if __BITS__ == 16 54 mov bx, ax ; Save the first word in BX (returned in DX). 55 shr eax, 16 56 mov cx, ax ; The second word is returned in CX. 52 57 %else 53 mov eax, [xBP + xCB*2] 54 out dx, eax 58 mov ecx, eax 55 59 %endif 56 60 57 58 ; The value (uValue). 59 mov dx, VMMDEV_TESTING_IOPORT_DATA 60 %if TMPL_BITS == 16 61 mov ax, [xBP + xCB + cbCurRetAddr + sCB] 62 out dx, ax 63 mov ax, [xBP + xCB + cbCurRetAddr + sCB + 2] 64 out dx, ax 61 ; Read the high timestamp (latached in above read). 62 mov dx, VMMDEV_TESTING_IOPORT_TS_HIGH 63 in eax, dx 64 %if __BITS__ == 16 65 mov dx, bx ; The first word is returned in DX. 66 mov bx, ax ; The third word is returned in BX. 67 shr eax, 16 ; The fourth word is returned in AX. 68 %elif __BITS__ == 32 69 mov edx, eax 70 mov eax, eax 65 71 %else 66 mov eax, [xBP + xCB*2 + sCB]67 o ut dx, eax72 shr rax, 32 73 or rax, rcx 68 74 %endif 69 75 76 .return: 77 %if __BITS__ == 16 78 mov [bp - sCB], ax ; Update the AX part of the saved EAX. 79 pop sAX 80 %else 81 pop xCX 82 BONLY64 pop xDX 83 %endif 84 pop xBP 85 BS3_CALL_CONV_EPILOG 0 86 BS3_HYBRID_RET 87 70 88 .no_vmmdev: 71 pop xSI 72 pop xDX 73 pop xAX 74 pop xBP 75 BS3_CALL_CONV_EPILOG 2 76 BS3_HYBRID_RET 77 BS3_PROC_END_CMN bs3TestSendCmdWithU32 89 ; No fallback, just zero the result. 90 %if __BITS__ == 16 91 xor ax, ax 92 xor bx, bx 93 xor cx, cx 94 xor dx, dx 95 %else 96 xor eax, eax 97 BONLY32 xor edx, edx 98 %endif 99 jmp .return 100 BS3_PROC_END_CMN Bs3TestNow 78 101 -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-pit.c
r82968 r88839 65 65 66 66 /* 67 * Reset the counters. 68 */ 69 g_cBs3PitNs = 0; 70 g_cBs3PitMs = 0; 71 g_cBs3PitTicks = 0; 72 73 /* 67 74 * Calculate an interval. 68 75 */ … … 119 126 BS3_CMN_DEF(void, Bs3PitDisable,(void)) 120 127 { 121 if (g_cBs3PitInterval Ms!= 0)128 if (g_cBs3PitIntervalHz != 0) 122 129 { 123 130 RTCCUINTREG fSaved = ASMIntDisableFlags(); … … 145 152 146 153 /* 147 * Reset all the values.154 * Reset the interval values (leave the ticks and elapsed ns/ms values as-is). 148 155 */ 149 g_cBs3PitNs = 0;150 g_cBs3PitMs = 0;151 g_cBs3PitTicks = 0;152 156 g_cBs3PitIntervalNs = 0; 153 157 g_cBs3PitIntervalMs = 0; -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TestDoModesByOne.c
r82968 r88839 103 103 bool fSkipped = true; 104 104 bool const fOnlyPaging = RT_BOOL(paEntries[i].fFlags & BS3TESTMODEBYONEENTRY_F_ONLY_PAGING); 105 bool const fMinimal = RT_BOOL(paEntries[i].fFlags & BS3TESTMODEBYONEENTRY_F_MINIMAL); 106 bool const fCurDoV86Modes = fDoV86Modes && !fMinimal; 107 bool const fCurDoWeirdV86Modes = fDoWeirdV86Modes && fCurDoV86Modes; 105 108 uint8_t bErrNo; 106 109 Bs3TestSub(paEntries[i].pszSubTest); … … 141 144 * Unpaged prot mode. 142 145 */ 143 if (!fOnlyPaging )146 if (!fOnlyPaging && (!fMinimal || bCpuType < BS3CPU_80386)) 144 147 { 145 148 PRE_DO_CALL(g_szBs3ModeName_pe16); … … 169 172 } 170 173 171 if (f DoWeirdV86Modes && !fOnlyPaging)174 if (fCurDoWeirdV86Modes && !fOnlyPaging) 172 175 { 173 176 PRE_DO_CALL(g_szBs3ModeName_pe16_v86); … … 191 194 } 192 195 193 if (!fOnlyPaging )196 if (!fOnlyPaging && !fMinimal) 194 197 { 195 198 PRE_DO_CALL(g_szBs3ModeName_pe32_16); … … 202 205 } 203 206 204 if (f DoV86Modes && !fOnlyPaging)207 if (fCurDoV86Modes && !fOnlyPaging) 205 208 { 206 209 PRE_DO_CALL(g_szBs3ModeName_pev86); … … 216 219 * Paged protected mode. 217 220 */ 221 if (!fMinimal) 222 { 223 PRE_DO_CALL(g_szBs3ModeName_pp16); 224 # if ARCH_BITS == 16 225 bErrNo = TMPL_NM(Bs3TestCallDoerInPP16)(CONV_TO_PROT_FAR16(paEntries[i].pfnWorker)); 226 # else 227 bErrNo = TMPL_NM(Bs3TestCallDoerInPP16)(CONV_TO_PROT_FAR16(RT_CONCAT3(Bs3TestCallDoerTo,ARCH_BITS,_f16))); 228 # endif 229 CHECK_RESULT(g_szBs3ModeName_pp16); 230 } 231 232 if (!fMinimal) 233 { 234 PRE_DO_CALL(g_szBs3ModeName_pp16_32); 235 # if ARCH_BITS == 32 236 bErrNo = TMPL_NM(Bs3TestCallDoerInPP16_32)(CONV_TO_FLAT(paEntries[i].pfnWorker), BS3_MODE_PP16_32); 237 # else 238 bErrNo = TMPL_NM(Bs3TestCallDoerInPP16_32)(CONV_TO_FLAT(RT_CONCAT3(Bs3TestCallDoerTo,ARCH_BITS,_c32)), BS3_MODE_PP16_32); 239 # endif 240 CHECK_RESULT(g_szBs3ModeName_pp16_32); 241 } 242 243 if (fCurDoWeirdV86Modes) 244 { 245 PRE_DO_CALL(g_szBs3ModeName_pp16_v86); 246 # if ARCH_BITS == 16 247 bErrNo = TMPL_NM(Bs3TestCallDoerInPP16_V86)(CONV_TO_RM_FAR16(paEntries[i].pfnWorker)); 248 # else 249 bErrNo = TMPL_NM(Bs3TestCallDoerInPP16_V86)(CONV_TO_RM_FAR16(RT_CONCAT3(Bs3TestCallDoerTo,ARCH_BITS,_f16))); 250 # endif 251 CHECK_RESULT(g_szBs3ModeName_pp16_v86); 252 } 253 218 254 if (true) 219 255 { 220 PRE_DO_CALL(g_szBs3ModeName_pp16);221 # if ARCH_BITS == 16222 bErrNo = TMPL_NM(Bs3TestCallDoerInPP16)(CONV_TO_PROT_FAR16(paEntries[i].pfnWorker));223 # else224 bErrNo = TMPL_NM(Bs3TestCallDoerInPP16)(CONV_TO_PROT_FAR16(RT_CONCAT3(Bs3TestCallDoerTo,ARCH_BITS,_f16)));225 # endif226 CHECK_RESULT(g_szBs3ModeName_pp16);227 }228 229 if (true)230 {231 PRE_DO_CALL(g_szBs3ModeName_pp16_32);232 # if ARCH_BITS == 32233 bErrNo = TMPL_NM(Bs3TestCallDoerInPP16_32)(CONV_TO_FLAT(paEntries[i].pfnWorker), BS3_MODE_PP16_32);234 # else235 bErrNo = TMPL_NM(Bs3TestCallDoerInPP16_32)(CONV_TO_FLAT(RT_CONCAT3(Bs3TestCallDoerTo,ARCH_BITS,_c32)), BS3_MODE_PP16_32);236 # endif237 CHECK_RESULT(g_szBs3ModeName_pp16_32);238 }239 240 if (fDoWeirdV86Modes)241 {242 PRE_DO_CALL(g_szBs3ModeName_pp16_v86);243 # if ARCH_BITS == 16244 bErrNo = TMPL_NM(Bs3TestCallDoerInPP16_V86)(CONV_TO_RM_FAR16(paEntries[i].pfnWorker));245 # else246 bErrNo = TMPL_NM(Bs3TestCallDoerInPP16_V86)(CONV_TO_RM_FAR16(RT_CONCAT3(Bs3TestCallDoerTo,ARCH_BITS,_f16)));247 # endif248 CHECK_RESULT(g_szBs3ModeName_pp16_v86);249 }250 251 if (true)252 {253 256 PRE_DO_CALL(g_szBs3ModeName_pp32); 254 257 # if ARCH_BITS == 32 … … 260 263 } 261 264 262 if ( true)265 if (!fMinimal) 263 266 { 264 267 PRE_DO_CALL(g_szBs3ModeName_pp32_16); … … 271 274 } 272 275 273 if (f DoV86Modes)276 if (fCurDoV86Modes) 274 277 { 275 278 PRE_DO_CALL(g_szBs3ModeName_ppv86); … … 286 289 * Protected mode with PAE paging. 287 290 */ 291 if (!fMinimal) 292 { 293 PRE_DO_CALL(g_szBs3ModeName_pae16); 294 # if ARCH_BITS == 16 295 bErrNo = TMPL_NM(Bs3TestCallDoerInPAE16)(CONV_TO_PROT_FAR16(paEntries[i].pfnWorker)); 296 # else 297 bErrNo = TMPL_NM(Bs3TestCallDoerInPAE16)(CONV_TO_PROT_FAR16(RT_CONCAT3(Bs3TestCallDoerTo,ARCH_BITS,_f16))); 298 # endif 299 CHECK_RESULT(g_szBs3ModeName_pae16); 300 } 301 302 if (!fMinimal) 303 { 304 PRE_DO_CALL(g_szBs3ModeName_pae16_32); 305 # if ARCH_BITS == 32 306 bErrNo = TMPL_NM(Bs3TestCallDoerInPAE16_32)(CONV_TO_FLAT(paEntries[i].pfnWorker), BS3_MODE_PAE16_32); 307 # else 308 bErrNo = TMPL_NM(Bs3TestCallDoerInPAE16_32)(CONV_TO_FLAT(RT_CONCAT3(Bs3TestCallDoerTo,ARCH_BITS,_c32)), BS3_MODE_PAE16_32); 309 # endif 310 CHECK_RESULT(g_szBs3ModeName_pae16_32); 311 } 312 313 if (fCurDoWeirdV86Modes) 314 { 315 PRE_DO_CALL(g_szBs3ModeName_pae16_v86); 316 # if ARCH_BITS == 16 317 bErrNo = TMPL_NM(Bs3TestCallDoerInPAE16_V86)(CONV_TO_RM_FAR16(paEntries[i].pfnWorker)); 318 # else 319 bErrNo = TMPL_NM(Bs3TestCallDoerInPAE16_V86)(CONV_TO_RM_FAR16(RT_CONCAT3(Bs3TestCallDoerTo,ARCH_BITS,_f16))); 320 # endif 321 CHECK_RESULT(g_szBs3ModeName_pae16_v86); 322 } 323 288 324 if (true) 289 325 { 290 PRE_DO_CALL(g_szBs3ModeName_pae16);291 # if ARCH_BITS == 16292 bErrNo = TMPL_NM(Bs3TestCallDoerInPAE16)(CONV_TO_PROT_FAR16(paEntries[i].pfnWorker));293 # else294 bErrNo = TMPL_NM(Bs3TestCallDoerInPAE16)(CONV_TO_PROT_FAR16(RT_CONCAT3(Bs3TestCallDoerTo,ARCH_BITS,_f16)));295 # endif296 CHECK_RESULT(g_szBs3ModeName_pae16);297 }298 299 if (true)300 {301 PRE_DO_CALL(g_szBs3ModeName_pae16_32);302 # if ARCH_BITS == 32303 bErrNo = TMPL_NM(Bs3TestCallDoerInPAE16_32)(CONV_TO_FLAT(paEntries[i].pfnWorker), BS3_MODE_PAE16_32);304 # else305 bErrNo = TMPL_NM(Bs3TestCallDoerInPAE16_32)(CONV_TO_FLAT(RT_CONCAT3(Bs3TestCallDoerTo,ARCH_BITS,_c32)), BS3_MODE_PAE16_32);306 # endif307 CHECK_RESULT(g_szBs3ModeName_pae16_32);308 }309 310 if (fDoWeirdV86Modes)311 {312 PRE_DO_CALL(g_szBs3ModeName_pae16_v86);313 # if ARCH_BITS == 16314 bErrNo = TMPL_NM(Bs3TestCallDoerInPAE16_V86)(CONV_TO_RM_FAR16(paEntries[i].pfnWorker));315 # else316 bErrNo = TMPL_NM(Bs3TestCallDoerInPAE16_V86)(CONV_TO_RM_FAR16(RT_CONCAT3(Bs3TestCallDoerTo,ARCH_BITS,_f16)));317 # endif318 CHECK_RESULT(g_szBs3ModeName_pae16_v86);319 }320 321 if (true)322 {323 326 PRE_DO_CALL(g_szBs3ModeName_pae32); 324 327 # if ARCH_BITS == 32 … … 330 333 } 331 334 332 if ( true)335 if (!fMinimal) 333 336 { 334 337 PRE_DO_CALL(g_szBs3ModeName_pae32_16); … … 341 344 } 342 345 343 if (f DoV86Modes)346 if (fCurDoV86Modes) 344 347 { 345 348 PRE_DO_CALL(g_szBs3ModeName_paev86); … … 364 367 } 365 368 366 if ( true)369 if (!fMinimal) 367 370 { 368 371 PRE_DO_CALL(g_szBs3ModeName_lm16); … … 375 378 } 376 379 377 if ( true)380 if (!fMinimal) 378 381 { 379 382 PRE_DO_CALL(g_szBs3ModeName_lm32); -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit-autostubs.kmk
r82968 r88839 70 70 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3SelFar32ToFlat32) 71 71 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3SelProtFar32ToFlat32) 72 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TestNow) 72 73 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TrapSetDpl) 73 74 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3MemAlloc) -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit-mangling-code-define.h
r82968 r88839 160 160 #define Bs3TestHostPrintfV BS3_CMN_MANGLER(Bs3TestHostPrintfV) 161 161 #define Bs3TestInit BS3_CMN_MANGLER(Bs3TestInit) 162 #define Bs3TestNow BS3_CMN_MANGLER(Bs3TestNow) 162 163 #define Bs3TestPrintf BS3_CMN_MANGLER(Bs3TestPrintf) 163 164 #define Bs3TestPrintfV BS3_CMN_MANGLER(Bs3TestPrintfV) -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit-mangling-code-undef.h
r82968 r88839 160 160 #undef Bs3TestHostPrintfV 161 161 #undef Bs3TestInit 162 #undef Bs3TestNow 162 163 #undef Bs3TestPrintf 163 164 #undef Bs3TestPrintfV -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit.h
r85609 r88839 2459 2459 BS3_CMN_PROTO_STUB(void, Bs3PitDisable,(void)); 2460 2460 2461 /** Nano 2461 /** Nanoseconds (approx) since last the PIT timer was started. */ 2462 2462 extern uint64_t volatile g_cBs3PitNs; 2463 2463 /** Milliseconds seconds (very approx) since last the PIT timer was started. */ … … 2465 2465 /** Number of ticks since last the PIT timer was started. */ 2466 2466 extern uint32_t volatile g_cBs3PitTicks; 2467 /** The current interval in nanon seconds. */ 2467 /** The current interval in nanoseconds. 2468 * This is 0 if not yet started (cleared by Bs3PitDisable). */ 2468 2469 extern uint32_t g_cBs3PitIntervalNs; 2469 2470 /** The current interval in milliseconds (approximately). 2470 * This is 0 if not yet started (used for checking the state internally). */ 2471 extern uint16_t volatile g_cBs3PitIntervalMs; 2472 /** The current PIT frequency (approximately). 0 if not yet started. */ 2473 extern uint16_t g_cBs3PitIntervalHz; 2471 * This is 0 if not yet started (cleared by Bs3PitDisable). */ 2472 extern uint16_t g_cBs3PitIntervalMs; 2473 /** The current PIT frequency (approximately). 2474 * 0 if not yet started (cleared by Bs3PitDisable; used for checking the 2475 * state internally). */ 2476 extern uint16_t volatile g_cBs3PitIntervalHz; 2474 2477 2475 2478 … … 3205 3208 3206 3209 /** 3210 * Get nanosecond host timestamp. 3211 * 3212 * This only works when testing is enabled and will not work in VMs configured 3213 * with a 286, 186 or 8086/8088 CPU profile. 3214 */ 3215 BS3_CMN_PROTO_STUB(uint64_t, Bs3TestNow,(void)); 3216 3217 /** 3207 3218 * Equivalent to RTTestIPrintf with RTTESTLVL_ALWAYS. 3208 3219 * … … 3659 3670 /** Only test modes that has paging enabled. */ 3660 3671 #define BS3TESTMODEBYONEENTRY_F_ONLY_PAGING RT_BIT_32(0) 3672 /** Minimal mode selection. */ 3673 #define BS3TESTMODEBYONEENTRY_F_MINIMAL RT_BIT_32(1) 3661 3674 /** @} */ 3662 3675
Note:
See TracChangeset
for help on using the changeset viewer.