Changeset 66179 in vbox for trunk/src/VBox/ValidationKit/bootsectors/bs3kit
- Timestamp:
- Mar 21, 2017 2:51:51 PM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 114091
- 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 300 300 bs3-mode-TestDoModes.c \ 301 301 bs3-mode-TestDoModesByOne.c \ 302 bs3-mode-TestDoModesByMax.c \ 302 303 bs3-mode-TestDoModesHlp.asm \ 303 304 … … 310 311 bs3-first-rm.asm \ 311 312 bs3-mode-CpuDetect.asm \ 312 bs3-mode-TestDoModesByOneStub.asm \ 313 bs3-mode-TestDoModesStub.asm \ 314 bs3-mode-TestDoModesByOneStub.asm \ 315 bs3-mode-TestDoModesByMaxStub.asm \ 313 316 314 317 … … 320 323 bs3kit-pe16_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES) \ 321 324 bs3-first-pe16.asm \ 322 bs3-mode-TestDoModesByOneStub.asm \ 325 bs3-mode-TestDoModesStub.asm \ 326 bs3-mode-TestDoModesByOneStub.asm \ 327 bs3-mode-TestDoModesByMaxStub.asm \ 323 328 # bs3-mode-CpuDetect.asm 324 329 … … 329 334 bs3kit-pe16_32_DEFS = TMPL_MODE=BS3_MODE_PE16_32 330 335 bs3kit-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 \ 332 339 333 340 # The v86 BS3Kit library for 16-bit protected kernel+tss. … … 337 344 bs3kit-pe16_v86_DEFS = TMPL_MODE=BS3_MODE_PE16_V86 338 345 bs3kit-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 \ 340 349 341 350 # The 32-bit BS3Kit library for 32-bit protected kernel+tss. … … 353 362 bs3kit-pe32_16_DEFS = TMPL_MODE=BS3_MODE_PE32_16 354 363 bs3kit-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 \ 356 367 357 368 # The v8086 BS3Kit library for 32-bit protected kernel+tss. … … 369 380 bs3kit-pp16_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES) \ 370 381 bs3-mode-CpuDetect.asm \ 371 bs3-mode-TestDoModesByOneStub.asm \ 382 bs3-mode-TestDoModesStub.asm \ 383 bs3-mode-TestDoModesByOneStub.asm \ 384 bs3-mode-TestDoModesByMaxStub.asm \ 372 385 373 386 # The 32-bit BS3Kit library for 16-bit paged protected kernel+tss. … … 399 412 bs3kit-pp32_16_DEFS = TMPL_MODE=BS3_MODE_PP32_16 400 413 bs3kit-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 \ 402 417 403 418 # The v8086 BS3Kit library for 32-bit paged protected kernel+tss. … … 416 431 bs3kit-pae16_SOURCES = $(VBOX_BS3KIT_MODE_SOURCES) \ 417 432 bs3-mode-CpuDetect.asm \ 418 bs3-mode-TestDoModesByOneStub.asm \ 433 bs3-mode-TestDoModesStub.asm \ 434 bs3-mode-TestDoModesByOneStub.asm \ 435 bs3-mode-TestDoModesByMaxStub.asm \ 419 436 420 437 # The 16-bit BS3Kit library for 16-bit PAE paged protected kernel+tss. … … 445 462 bs3kit-pae32_16_DEFS = TMPL_MODE=BS3_MODE_PAE32_16 446 463 bs3kit-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 \ 448 467 449 468 # The v8086 BS3Kit library for 32-bit PAE paged protected kernel+tss. … … 461 480 bs3kit-lm16_DEFS = TMPL_MODE=BS3_MODE_LM16 462 481 bs3kit-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 \ 464 485 465 486 # The 32-bit long mode BS3Kit library. -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TestDoModesByMax.c
r66175 r66179 1 1 /* $Id$ */ 2 2 /** @file 3 * BS3Kit - Bs3TestDoModes 3 * BS3Kit - Bs3TestDoModesByMax 4 4 */ 5 5 6 6 /* 7 * Copyright (C) 2007-201 6Oracle Corporation7 * Copyright (C) 2007-2017 Oracle Corporation 8 8 * 9 9 * This file is part of VirtualBox Open Source Edition (OSE), as … … 52 52 * @param fHaveLongMode Whether the CPU does long mode. 53 53 */ 54 static void bs3TestWarnAboutSkippedModes(PCBS3TESTMODE ENTRY paEntries, unsigned cEntries,54 static void bs3TestWarnAboutSkippedModes(PCBS3TESTMODEBYMAXENTRY paEntries, unsigned cEntries, 55 55 uint8_t bCpuType, bool fHavePae, bool fHaveLongMode) 56 56 { … … 78 78 79 79 if ( !fComplained386 80 && ( paEntries[i]. pfnDoPE16_3281 || paEntries[i]. pfnDoPE16_V8682 || paEntries[i]. pfnDoPE3283 || paEntries[i]. pfnDoPE32_1684 || paEntries[i]. pfnDoPEV8685 || paEntries[i]. pfnDoPP1686 || paEntries[i]. pfnDoPP16_3287 || paEntries[i]. pfnDoPP16_V8688 || paEntries[i]. pfnDoPP3289 || paEntries[i]. pfnDoPP32_1690 || 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) ) 91 91 { 92 92 if (bCpuType < BS3CPU_80386) … … 99 99 100 100 if ( !fComplainedPAE 101 && ( paEntries[i]. pfnDoPAE16102 || paEntries[i]. pfnDoPAE16_32103 || paEntries[i]. pfnDoPAE16_V86104 || paEntries[i]. pfnDoPAE32105 || paEntries[i]. pfnDoPAE32_16106 || 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) ) 107 107 { 108 108 if (!fHavePae) … … 115 115 116 116 if ( !fComplainedAMD64 117 && ( paEntries[i]. pfnDoLM16118 || paEntries[i]. pfnDoLM32119 || paEntries[i]. pfnDoLM64) )117 && ( paEntries[i].fDoLM16 118 || paEntries[i].fDoLM32 119 || paEntries[i].fDoLM64) ) 120 120 { 121 121 if (!fHaveLongMode) … … 130 130 131 131 #undef Bs3TestDoModes 132 BS3_MODE_DEF(void, Bs3TestDoModes ,(PCBS3TESTMODEENTRY paEntries, size_t cEntries))132 BS3_MODE_DEF(void, Bs3TestDoModesByMax,(PCBS3TESTMODEBYMAXENTRY paEntries, size_t cEntries)) 133 133 { 134 134 bool const fVerbose = true; … … 170 170 } while (0) 171 171 172 if (paEntries[i]. pfnDoRM)172 if (paEntries[i].fDoRM) 173 173 { 174 174 PRE_DO_CALL(g_szBs3ModeName_rm); … … 187 187 * Unpaged prot mode. 188 188 */ 189 if (paEntries[i]. pfnDoPE16)189 if (paEntries[i].fDoPE16) 190 190 { 191 191 PRE_DO_CALL(g_szBs3ModeName_pe16); … … 200 200 } 201 201 202 if (paEntries[i]. pfnDoPE16_32)202 if (paEntries[i].fDoPE16_32) 203 203 { 204 204 PRE_DO_CALL(g_szBs3ModeName_pe16_32); … … 207 207 } 208 208 209 if (paEntries[i]. pfnDoPE16_V86 && fDoWeirdV86Modes)209 if (paEntries[i].fDoPE16_V86 && fDoWeirdV86Modes) 210 210 { 211 211 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); 213 213 CHECK_RESULT(g_szBs3ModeName_pe16_v86); 214 214 } 215 215 216 if (paEntries[i]. pfnDoPE32)216 if (paEntries[i].fDoPE32) 217 217 { 218 218 PRE_DO_CALL(g_szBs3ModeName_pe32); … … 221 221 } 222 222 223 if (paEntries[i]. pfnDoPE32_16)223 if (paEntries[i].fDoPE32_16) 224 224 { 225 225 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); 227 227 CHECK_RESULT(g_szBs3ModeName_pe32_16); 228 228 } 229 229 230 if (paEntries[i]. pfnDoPEV86 && fDoV86Modes)230 if (paEntries[i].fDoPEV86 && fDoV86Modes) 231 231 { 232 232 PRE_DO_CALL(g_szBs3ModeName_pev86); 233 bErrNo = TMPL_NM(Bs3TestCallDoerInPE V86)(CONV_TO_RM_FAR16(paEntries[i].pfnDoPEV86));233 bErrNo = TMPL_NM(Bs3TestCallDoerInPE32)(CONV_TO_FLAT(paEntries[i].pfnDoPE32), BS3_MODE_PEV86); 234 234 CHECK_RESULT(g_szBs3ModeName_pev86); 235 235 } … … 238 238 * Paged protected mode. 239 239 */ 240 if (paEntries[i]. pfnDoPP16)240 if (paEntries[i].fDoPP16) 241 241 { 242 242 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); 244 244 CHECK_RESULT(g_szBs3ModeName_pp16); 245 245 } 246 246 247 if (paEntries[i]. pfnDoPP16_32)247 if (paEntries[i].fDoPP16_32) 248 248 { 249 249 PRE_DO_CALL(g_szBs3ModeName_pp16_32); … … 252 252 } 253 253 254 if (paEntries[i]. pfnDoPP16_V86 && fDoWeirdV86Modes)254 if (paEntries[i].fDoPP16_V86 && fDoWeirdV86Modes) 255 255 { 256 256 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); 258 258 CHECK_RESULT(g_szBs3ModeName_pp16_v86); 259 259 } 260 260 261 if (paEntries[i]. pfnDoPP32)261 if (paEntries[i].fDoPP32) 262 262 { 263 263 PRE_DO_CALL(g_szBs3ModeName_pp32); … … 266 266 } 267 267 268 if (paEntries[i]. pfnDoPP32_16)268 if (paEntries[i].fDoPP32_16) 269 269 { 270 270 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); 272 272 CHECK_RESULT(g_szBs3ModeName_pp32_16); 273 273 } 274 274 275 if (paEntries[i]. pfnDoPPV86 && fDoV86Modes)275 if (paEntries[i].fDoPPV86 && fDoV86Modes) 276 276 { 277 277 PRE_DO_CALL(g_szBs3ModeName_ppv86); 278 bErrNo = TMPL_NM(Bs3TestCallDoerInPP V86)(CONV_TO_RM_FAR16(paEntries[i].pfnDoPPV86));278 bErrNo = TMPL_NM(Bs3TestCallDoerInPP32)(CONV_TO_FLAT(paEntries[i].pfnDoPP32), BS3_MODE_PPV86); 279 279 CHECK_RESULT(g_szBs3ModeName_ppv86); 280 280 } … … 290 290 } 291 291 292 if (paEntries[i]. pfnDoPAE16)292 if (paEntries[i].fDoPAE16) 293 293 { 294 294 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); 296 296 CHECK_RESULT(g_szBs3ModeName_pae16); 297 297 } 298 298 299 if (paEntries[i]. pfnDoPAE16_32)299 if (paEntries[i].fDoPAE16_32) 300 300 { 301 301 PRE_DO_CALL(g_szBs3ModeName_pae16_32); … … 304 304 } 305 305 306 if (paEntries[i]. pfnDoPAE16_V86 && fDoWeirdV86Modes)306 if (paEntries[i].fDoPAE16_V86 && fDoWeirdV86Modes) 307 307 { 308 308 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); 310 310 CHECK_RESULT(g_szBs3ModeName_pae16_v86); 311 311 } 312 312 313 if (paEntries[i]. pfnDoPAE32)313 if (paEntries[i].fDoPAE32) 314 314 { 315 315 PRE_DO_CALL(g_szBs3ModeName_pae32); … … 318 318 } 319 319 320 if (paEntries[i]. pfnDoPAE32_16)320 if (paEntries[i].fDoPAE32_16) 321 321 { 322 322 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); 324 324 CHECK_RESULT(g_szBs3ModeName_pae32_16); 325 325 } 326 326 327 if (paEntries[i]. pfnDoPAEV86 && fDoV86Modes)327 if (paEntries[i].fDoPAEV86 && fDoV86Modes) 328 328 { 329 329 PRE_DO_CALL(g_szBs3ModeName_paev86); 330 bErrNo = TMPL_NM(Bs3TestCallDoerInPAE V86)(CONV_TO_RM_FAR16(paEntries[i].pfnDoPAEV86));330 bErrNo = TMPL_NM(Bs3TestCallDoerInPAE32)(CONV_TO_FLAT(paEntries[i].pfnDoPAE32), BS3_MODE_PAEV86); 331 331 CHECK_RESULT(g_szBs3ModeName_paev86); 332 332 } … … 342 342 } 343 343 344 if (paEntries[i]. pfnDoLM16)344 if (paEntries[i].fDoLM16) 345 345 { 346 346 PRE_DO_CALL(g_szBs3ModeName_lm16); 347 bErrNo = TMPL_NM(Bs3TestCallDoerInLM 16)(CONV_TO_PROT_FAR16(paEntries[i].pfnDoLM16));347 bErrNo = TMPL_NM(Bs3TestCallDoerInLM64)(CONV_TO_FLAT(paEntries[i].pfnDoLM64), BS3_MODE_LM16); 348 348 CHECK_RESULT(g_szBs3ModeName_lm16); 349 349 } 350 350 351 if (paEntries[i]. pfnDoLM32)351 if (paEntries[i].fDoLM32) 352 352 { 353 353 PRE_DO_CALL(g_szBs3ModeName_lm32); 354 bErrNo = TMPL_NM(Bs3TestCallDoerInLM 32)(CONV_TO_FLAT(paEntries[i].pfnDoLM32));354 bErrNo = TMPL_NM(Bs3TestCallDoerInLM64)(CONV_TO_FLAT(paEntries[i].pfnDoLM64), BS3_MODE_LM32); 355 355 CHECK_RESULT(g_szBs3ModeName_lm32); 356 356 } 357 357 358 if (paEntries[i]. pfnDoLM64)358 if (paEntries[i].fDoLM64) 359 359 { 360 360 PRE_DO_CALL(g_szBs3ModeName_lm64); -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TestDoModesByMaxStub.asm
r66173 r66179 1 1 ; $Id$ 2 2 ;; @file 3 ; BS3Kit - Bs3TestDoModesBy Onenear stub.3 ; BS3Kit - Bs3TestDoModesByMax near stub. 4 4 ; 5 5 6 6 ; 7 ; Copyright (C) 2007-201 6Oracle Corporation7 ; Copyright (C) 2007-2017 Oracle Corporation 8 8 ; 9 9 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 31 31 32 32 ; 33 ; Finally near stub for the API call (16-bit only).33 ; Near stub for the API call (16-bit only). 34 34 ; 35 35 %if TMPL_BITS == 16 … … 38 38 %endif 39 39 BS3_BEGIN_TEXT16_NEARSTUBS 40 BS3_PROC_BEGIN_MODE Bs3TestDoModesBy One, BS3_PBC_NEAR40 BS3_PROC_BEGIN_MODE Bs3TestDoModesByMax, BS3_PBC_NEAR 41 41 pop ax 42 42 %if TMPL_MODE == BS3_MODE_RM 43 43 push cs 44 44 push ax 45 extern TMPL_FAR_NM(Bs3TestDoModesBy One):wrt BS3GROUPRMTEXT1646 jmp far TMPL_FAR_NM(Bs3TestDoModesBy One)45 extern TMPL_FAR_NM(Bs3TestDoModesByMax):wrt BS3GROUPRMTEXT16 46 jmp far TMPL_FAR_NM(Bs3TestDoModesByMax) 47 47 %else 48 48 push cs 49 49 push ax 50 extern TMPL_FAR_NM(Bs3TestDoModesBy One):wrt CGROUP1651 jmp TMPL_NM(Bs3TestDoModesBy One)50 extern TMPL_FAR_NM(Bs3TestDoModesByMax):wrt CGROUP16 51 jmp TMPL_NM(Bs3TestDoModesByMax) 52 52 %endif 53 BS3_PROC_END_MODE Bs3TestDoModesBy One53 BS3_PROC_END_MODE Bs3TestDoModesByMax 54 54 %endif 55 55 -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TestDoModesByOneStub.asm
r60749 r66179 31 31 32 32 ; 33 ; Finally near stub for the API call (16-bit only).33 ; Near stub for the API call (16-bit only). 34 34 ; 35 35 %if TMPL_BITS == 16 -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TestDoModesHlp.asm
r66175 r66179 1128 1128 BS3_PROC_END_MODE Bs3TestCallDoerInLM64 1129 1129 1130 1131 ;1132 ; Finally near stub for the API call (16-bit only).1133 ;1134 %if TMPL_BITS == 161135 BS3_BEGIN_TEXT16_NEARSTUBS1136 BS3_PROC_BEGIN_MODE Bs3TestDoModes, BS3_PBC_NEAR1137 pop ax1138 %if TMPL_MODE == BS3_MODE_RM1139 push cs1140 push ax1141 extern TMPL_FAR_NM(Bs3TestDoModes):wrt BS3GROUPRMTEXT161142 jmp far TMPL_FAR_NM(Bs3TestDoModes)1143 %else1144 push cs1145 push ax1146 extern TMPL_FAR_NM(Bs3TestDoModes):wrt CGROUP161147 jmp TMPL_NM(Bs3TestDoModes)1148 %endif1149 BS3_PROC_END_MODE Bs3TestDoModes1150 1151 %endif1152 -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-mode-TestDoModesStub.asm
r66173 r66179 1 1 ; $Id$ 2 2 ;; @file 3 ; BS3Kit - Bs3TestDoModes ByOnenear stub.3 ; BS3Kit - Bs3TestDoModes near stub. 4 4 ; 5 5 … … 31 31 32 32 ; 33 ; Finally near stub for the API call (16-bit only).33 ; Near stub for the API call (16-bit only). 34 34 ; 35 35 %if TMPL_BITS == 16 … … 38 38 %endif 39 39 BS3_BEGIN_TEXT16_NEARSTUBS 40 BS3_PROC_BEGIN_MODE Bs3TestDoModes ByOne, BS3_PBC_NEAR40 BS3_PROC_BEGIN_MODE Bs3TestDoModes, BS3_PBC_NEAR 41 41 pop ax 42 42 %if TMPL_MODE == BS3_MODE_RM 43 43 push cs 44 44 push ax 45 extern TMPL_FAR_NM(Bs3TestDoModes ByOne):wrt BS3GROUPRMTEXT1646 jmp far TMPL_FAR_NM(Bs3TestDoModes ByOne)45 extern TMPL_FAR_NM(Bs3TestDoModes):wrt BS3GROUPRMTEXT16 46 jmp far TMPL_FAR_NM(Bs3TestDoModes) 47 47 %else 48 48 push cs 49 49 push ax 50 extern TMPL_FAR_NM(Bs3TestDoModes ByOne):wrt CGROUP1651 jmp TMPL_NM(Bs3TestDoModes ByOne)50 extern TMPL_FAR_NM(Bs3TestDoModes):wrt CGROUP16 51 jmp TMPL_NM(Bs3TestDoModes) 52 52 %endif 53 BS3_PROC_END_MODE Bs3TestDoModes ByOne53 BS3_PROC_END_MODE Bs3TestDoModes 54 54 %endif 55 55 56 -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit-autostubs.kmk
r66168 r66179 39 39 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TestFailedV) 40 40 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3StrCpy) 41 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3GetModeNameShortLower) 41 42 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3GetModeName) 42 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3GetModeNameShortLower)43 43 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingAlias) 44 44 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingInitRootForLM) 45 45 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingInitRootForPAE) 46 46 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingInitRootForPP) 47 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingProtectPtr) 47 48 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingProtect) 48 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingProtectPtr)49 49 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingQueryAddressInfo) 50 50 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingUnalias) … … 72 72 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingGetPte) 73 73 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3PagingSetupCanonicalTraps) 74 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3SlabAllocEx) 74 75 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3SlabAlloc) 75 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3Slab AllocEx)76 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3SlabListAllocEx) 76 77 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3SlabListAlloc) 77 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3SlabListAllocEx)78 78 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3MemFree) 79 79 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3MemGuardedTestPageFree) … … 108 108 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TestSubV) 109 109 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TestTerm) 110 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3Trap16InitEx) 110 111 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3Trap16Init) 111 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3Trap16InitEx)112 112 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3Trap16SetGate) 113 113 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3Trap32Init) … … 118 118 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TrapPrintFrame) 119 119 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TrapReInit) 120 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TrapRmV86InitEx) 120 121 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TrapRmV86Init) 121 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TrapRmV86InitEx)122 122 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TrapRmV86SetGate) 123 123 $(call BS3KIT_FN_GEN_CMN_NEARSTUB,bs3kit-common-16,Bs3TrapSetHandlerEx) -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit-mangling-code-define.h
r66168 r66179 149 149 #define Bs3TrapSetHandler BS3_CMN_MANGLER(Bs3TrapSetHandler) 150 150 #define Bs3TrapSetHandlerEx BS3_CMN_MANGLER(Bs3TrapSetHandlerEx) 151 #define Bs3TrapSetJmpAndRestore BS3_CMN_MANGLER(Bs3TrapSetJmpAndRestore) 151 152 #define Bs3TrapSetJmp BS3_CMN_MANGLER(Bs3TrapSetJmp) 152 #define Bs3TrapSetJmpAndRestore BS3_CMN_MANGLER(Bs3TrapSetJmpAndRestore)153 153 #define Bs3TrapUnsetJmp BS3_CMN_MANGLER(Bs3TrapUnsetJmp) 154 154 #define Bs3UInt32Div BS3_CMN_MANGLER(Bs3UInt32Div) … … 160 160 # define Bs3SwitchTo32BitAndCallC BS3_MODE_MANGLER(Bs3SwitchTo32BitAndCallC) 161 161 # define Bs3TestDoModes BS3_MODE_MANGLER(Bs3TestDoModes) 162 # define Bs3TestDoModesByMax BS3_MODE_MANGLER(Bs3TestDoModesByMax) 162 163 # define Bs3TestDoModesByOne BS3_MODE_MANGLER(Bs3TestDoModesByOne) 163 164 # define Bs3TrapInit BS3_MODE_MANGLER(Bs3TrapInit) -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit-mangling-code-undef.h
r66168 r66179 149 149 #undef Bs3TrapSetHandler 150 150 #undef Bs3TrapSetHandlerEx 151 #undef Bs3TrapSetJmpAndRestore 151 152 #undef Bs3TrapSetJmp 152 #undef Bs3TrapSetJmpAndRestore153 153 #undef Bs3TrapUnsetJmp 154 154 #undef Bs3UInt32Div … … 160 160 # undef Bs3SwitchTo32BitAndCallC 161 161 # undef Bs3TestDoModes 162 # undef Bs3TestDoModesByMax 162 163 # undef Bs3TestDoModesByOne 163 164 # undef Bs3TrapInit -
trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3kit.h
r66168 r66179 3240 3240 3241 3241 /** 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 */ 3253 typedef 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. */ 3297 typedef 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 /** 3242 3398 * One worker drives all modes. 3243 3399 * … … 3517 3673 BS3_MODE_PROTO_NOSB(void, Bs3TestDoModesByOne,(PCBS3TESTMODEBYONEENTRY paEntries, size_t cEntries, uint32_t fFlags)); 3518 3674 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 */ 3682 BS3_MODE_PROTO_NOSB(void, Bs3TestDoModesByMax,(PCBS3TESTMODEBYMAXENTRY paEntries, size_t cEntries)); 3683 3519 3684 3520 3685 /** @} */
Note:
See TracChangeset
for help on using the changeset viewer.