Changeset 9531 in vbox
- Timestamp:
- Jun 9, 2008 11:22:24 AM (16 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
-
include/iprt/types.h (modified) (1 diff)
-
src/VBox/VMM/SELM.cpp (modified) (14 diffs)
-
src/VBox/VMM/TRPM.cpp (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/iprt/types.h
r9228 r9531 914 914 #define NIL_RTRCPTR ((RTRCPTR)0) 915 915 916 /** @def RTRCPTR_MAX 917 * The maximum value a RTRCPTR can have. Mostly used as INVALID value. 918 */ 919 #define RTRCPTR_MAX ((RTRCPTR)~0) 920 916 921 typedef int32_t RTRCINTPTR; 917 922 typedef uint32_t RTRCUINTPTR; -
trunk/src/VBox/VMM/SELM.cpp
r9430 r9531 136 136 */ 137 137 pVM->selm.s.cbEffGuestGdtLimit = 0; 138 pVM->selm.s.GuestGdtr.pGdt = ~0;139 pVM->selm.s.GCPtrGuestLdt = ~0;140 pVM->selm.s.GCPtrGuestTss = ~0;138 pVM->selm.s.GuestGdtr.pGdt = RTRCPTR_MAX; 139 pVM->selm.s.GCPtrGuestLdt = RTRCPTR_MAX; 140 pVM->selm.s.GCPtrGuestTss = RTRCPTR_MAX; 141 141 142 142 pVM->selm.s.paGdtGC = 0; 143 pVM->selm.s.GCPtrLdt = ~0;144 pVM->selm.s.GCPtrTss = ~0;143 pVM->selm.s.GCPtrLdt = RTRCPTR_MAX; 144 pVM->selm.s.GCPtrTss = RTRCPTR_MAX; 145 145 pVM->selm.s.GCSelTss = ~0; 146 146 … … 422 422 #endif 423 423 #ifdef SELM_TRACK_SHADOW_TSS_CHANGES 424 if (pVM->selm.s.GCPtrTss != ~0)424 if (pVM->selm.s.GCPtrTss != RTRCPTR_MAX) 425 425 { 426 426 rc = PGMHandlerVirtualDeregister(pVM, pVM->selm.s.GCPtrTss); … … 438 438 */ 439 439 #ifdef SELM_TRACK_SHADOW_LDT_CHANGES 440 if (pVM->selm.s.GCPtrLdt != ~0)440 if (pVM->selm.s.GCPtrLdt != RTRCPTR_MAX) 441 441 { 442 442 rc = PGMHandlerVirtualDeregister(pVM, pVM->selm.s.GCPtrLdt); … … 502 502 int rc; 503 503 #ifdef SELM_TRACK_GUEST_GDT_CHANGES 504 if (pVM->selm.s.GuestGdtr.pGdt != ~0&& pVM->selm.s.fGDTRangeRegistered)504 if (pVM->selm.s.GuestGdtr.pGdt != RTRCPTR_MAX && pVM->selm.s.fGDTRangeRegistered) 505 505 { 506 506 rc = PGMHandlerVirtualDeregister(pVM, pVM->selm.s.GuestGdtr.pGdt); 507 507 AssertRC(rc); 508 pVM->selm.s.GuestGdtr.pGdt = ~0;508 pVM->selm.s.GuestGdtr.pGdt = RTRCPTR_MAX; 509 509 pVM->selm.s.GuestGdtr.cbGdt = 0; 510 510 } … … 512 512 #endif 513 513 #ifdef SELM_TRACK_GUEST_LDT_CHANGES 514 if (pVM->selm.s.GCPtrGuestLdt != ~0)514 if (pVM->selm.s.GCPtrGuestLdt != RTRCPTR_MAX) 515 515 { 516 516 rc = PGMHandlerVirtualDeregister(pVM, pVM->selm.s.GCPtrGuestLdt); 517 517 AssertRC(rc); 518 pVM->selm.s.GCPtrGuestLdt = ~0;518 pVM->selm.s.GCPtrGuestLdt = RTRCPTR_MAX; 519 519 } 520 520 #endif 521 521 #ifdef SELM_TRACK_GUEST_TSS_CHANGES 522 if (pVM->selm.s.GCPtrGuestTss != ~0)522 if (pVM->selm.s.GCPtrGuestTss != RTRCPTR_MAX) 523 523 { 524 524 rc = PGMHandlerVirtualDeregister(pVM, pVM->selm.s.GCPtrGuestTss); 525 525 AssertRC(rc); 526 pVM->selm.s.GCPtrGuestTss = ~0;526 pVM->selm.s.GCPtrGuestTss = RTRCPTR_MAX; 527 527 pVM->selm.s.GCSelTss = ~0; 528 528 } … … 558 558 int rc; 559 559 #ifdef SELM_TRACK_GUEST_GDT_CHANGES 560 if (pVM->selm.s.GuestGdtr.pGdt != ~0&& pVM->selm.s.fGDTRangeRegistered)560 if (pVM->selm.s.GuestGdtr.pGdt != RTRCPTR_MAX && pVM->selm.s.fGDTRangeRegistered) 561 561 { 562 562 rc = PGMHandlerVirtualDeregister(pVM, pVM->selm.s.GuestGdtr.pGdt); 563 563 AssertRC(rc); 564 pVM->selm.s.GuestGdtr.pGdt = ~0;564 pVM->selm.s.GuestGdtr.pGdt = RTRCPTR_MAX; 565 565 pVM->selm.s.GuestGdtr.cbGdt = 0; 566 566 } … … 568 568 #endif 569 569 #ifdef SELM_TRACK_GUEST_LDT_CHANGES 570 if (pVM->selm.s.GCPtrGuestLdt != ~0)570 if (pVM->selm.s.GCPtrGuestLdt != RTRCPTR_MAX) 571 571 { 572 572 rc = PGMHandlerVirtualDeregister(pVM, pVM->selm.s.GCPtrGuestLdt); 573 573 AssertRC(rc); 574 pVM->selm.s.GCPtrGuestLdt = ~0;574 pVM->selm.s.GCPtrGuestLdt = RTRCPTR_MAX; 575 575 } 576 576 #endif 577 577 #ifdef SELM_TRACK_GUEST_TSS_CHANGES 578 if (pVM->selm.s.GCPtrGuestTss != ~0)578 if (pVM->selm.s.GCPtrGuestTss != RTRCPTR_MAX) 579 579 { 580 580 rc = PGMHandlerVirtualDeregister(pVM, pVM->selm.s.GCPtrGuestTss); 581 581 AssertRC(rc); 582 pVM->selm.s.GCPtrGuestTss = ~0;582 pVM->selm.s.GCPtrGuestTss = RTRCPTR_MAX; 583 583 pVM->selm.s.GCSelTss = ~0; 584 584 } … … 597 597 #endif 598 598 #ifdef SELM_TRACK_SHADOW_TSS_CHANGES 599 if (pVM->selm.s.GCPtrTss != ~0)599 if (pVM->selm.s.GCPtrTss != RTRCPTR_MAX) 600 600 { 601 601 rc = PGMHandlerVirtualDeregister(pVM, pVM->selm.s.GCPtrTss); 602 602 AssertRC(rc); 603 pVM->selm.s.GCPtrTss = ~0;603 pVM->selm.s.GCPtrTss = RTRCPTR_MAX; 604 604 } 605 605 #endif 606 606 #ifdef SELM_TRACK_SHADOW_LDT_CHANGES 607 if (pVM->selm.s.GCPtrLdt != ~0)607 if (pVM->selm.s.GCPtrLdt != RTRCPTR_MAX) 608 608 { 609 609 rc = PGMHandlerVirtualDeregister(pVM, pVM->selm.s.GCPtrLdt); 610 610 AssertRC(rc); 611 pVM->selm.s.GCPtrLdt = ~0;611 pVM->selm.s.GCPtrLdt = RTRCPTR_MAX; 612 612 } 613 613 #endif … … 1011 1011 * [Re]Register write virtual handler for guest's GDT. 1012 1012 */ 1013 if (pVM->selm.s.GuestGdtr.pGdt != ~0&& pVM->selm.s.fGDTRangeRegistered)1013 if (pVM->selm.s.GuestGdtr.pGdt != RTRCPTR_MAX && pVM->selm.s.fGDTRangeRegistered) 1014 1014 { 1015 1015 rc = PGMHandlerVirtualDeregister(pVM, pVM->selm.s.GuestGdtr.pGdt); … … 1068 1068 CPUMSetHyperLDTR(pVM, 0); 1069 1069 #ifdef SELM_TRACK_GUEST_LDT_CHANGES 1070 if (pVM->selm.s.GCPtrGuestLdt != ~0)1070 if (pVM->selm.s.GCPtrGuestLdt != RTRCPTR_MAX) 1071 1071 { 1072 1072 rc = PGMHandlerVirtualDeregister(pVM, pVM->selm.s.GCPtrGuestLdt); 1073 1073 AssertRC(rc); 1074 pVM->selm.s.GCPtrGuestLdt = ~0;1074 pVM->selm.s.GCPtrGuestLdt = RTRCPTR_MAX; 1075 1075 } 1076 1076 #endif … … 1104 1104 CPUMSetHyperLDTR(pVM, 0); 1105 1105 #ifdef SELM_TRACK_GUEST_LDT_CHANGES 1106 if (pVM->selm.s.GCPtrGuestLdt != ~0)1106 if (pVM->selm.s.GCPtrGuestLdt != RTRCPTR_MAX) 1107 1107 { 1108 1108 rc = PGMHandlerVirtualDeregister(pVM, pVM->selm.s.GCPtrGuestLdt); 1109 1109 AssertRC(rc); 1110 pVM->selm.s.GCPtrGuestLdt = ~0;1110 pVM->selm.s.GCPtrGuestLdt = RTRCPTR_MAX; 1111 1111 } 1112 1112 #endif … … 1142 1142 * In the event of LDT overlapping something, don't install it just assume it's being updated. 1143 1143 */ 1144 if (pVM->selm.s.GCPtrGuestLdt != ~0)1144 if (pVM->selm.s.GCPtrGuestLdt != RTRCPTR_MAX) 1145 1145 { 1146 1146 rc = PGMHandlerVirtualDeregister(pVM, pVM->selm.s.GCPtrGuestLdt); … … 1156 1156 { 1157 1157 /** @todo investigate the various cases where conflicts happen and try avoid them by enh. the instruction emulation. */ 1158 pVM->selm.s.GCPtrGuestLdt = ~0;1158 pVM->selm.s.GCPtrGuestLdt = RTRCPTR_MAX; 1159 1159 Log(("WARNING: Guest LDT (%VGv:%04x) conflicted with existing access range!! Assumes LDT is begin updated. (GDTR=%VGv:%04x)\n", 1160 1160 GCPtrLdt, cbLdt, pVM->selm.s.GuestGdtr.pGdt, pVM->selm.s.GuestGdtr.cbGdt)); … … 1473 1473 * [Re]Register write virtual handler for guest's TSS. 1474 1474 */ 1475 if (pVM->selm.s.GCPtrGuestTss != ~0)1475 if (pVM->selm.s.GCPtrGuestTss != RTRCPTR_MAX) 1476 1476 { 1477 1477 rc = PGMHandlerVirtualDeregister(pVM, pVM->selm.s.GCPtrGuestTss); -
trunk/src/VBox/VMM/TRPM.cpp
r9412 r9531 438 438 pVM->trpm.s.offVM = RT_OFFSETOF(VM, trpm); 439 439 pVM->trpm.s.uActiveVector = ~0; 440 pVM->trpm.s.GuestIdtr.pIdt = ~0;441 pVM->trpm.s.GCPtrIdt = ~0;440 pVM->trpm.s.GuestIdtr.pIdt = RTRCPTR_MAX; 441 pVM->trpm.s.GCPtrIdt = RTRCPTR_MAX; 442 442 pVM->trpm.s.fDisableMonitoring = false; 443 443 pVM->trpm.s.fSafeToDropGuestIDTMonitoring = false; … … 618 618 { 619 619 #ifdef TRPM_TRACK_SHADOW_IDT_CHANGES 620 if (pVM->trpm.s.GCPtrIdt != ~0)620 if (pVM->trpm.s.GCPtrIdt != RTRCPTR_MAX) 621 621 { 622 622 rc = PGMHandlerVirtualDeregister(pVM, pVM->trpm.s.GCPtrIdt); … … 685 685 */ 686 686 #ifdef TRPM_TRACK_GUEST_IDT_CHANGES 687 if (pVM->trpm.s.GuestIdtr.pIdt != ~0)687 if (pVM->trpm.s.GuestIdtr.pIdt != RTRCPTR_MAX) 688 688 { 689 689 if (!pVM->trpm.s.fSafeToDropGuestIDTMonitoring) … … 692 692 AssertRC(rc); 693 693 } 694 pVM->trpm.s.GuestIdtr.pIdt = ~0;694 pVM->trpm.s.GuestIdtr.pIdt = RTRCPTR_MAX; 695 695 } 696 696 pVM->trpm.s.GuestIdtr.cbIdt = 0; … … 924 924 * [Re]Register write virtual handler for guest's IDT. 925 925 */ 926 if (pVM->trpm.s.GuestIdtr.pIdt != ~0)926 if (pVM->trpm.s.GuestIdtr.pIdt != RTRCPTR_MAX) 927 927 { 928 928 rc = PGMHandlerVirtualDeregister(pVM, pVM->trpm.s.GuestIdtr.pIdt); … … 989 989 */ 990 990 #ifdef TRPM_TRACK_GUEST_IDT_CHANGES 991 if (pVM->trpm.s.GuestIdtr.pIdt != ~0)991 if (pVM->trpm.s.GuestIdtr.pIdt != RTRCPTR_MAX) 992 992 { 993 993 if (!pVM->trpm.s.fSafeToDropGuestIDTMonitoring) … … 996 996 AssertRC(rc); 997 997 } 998 pVM->trpm.s.GuestIdtr.pIdt = ~0;998 pVM->trpm.s.GuestIdtr.pIdt = RTRCPTR_MAX; 999 999 } 1000 1000 pVM->trpm.s.GuestIdtr.cbIdt = 0; … … 1002 1002 1003 1003 #ifdef TRPM_TRACK_SHADOW_IDT_CHANGES 1004 if (pVM->trpm.s.GCPtrIdt != ~0)1004 if (pVM->trpm.s.GCPtrIdt != RTRCPTR_MAX) 1005 1005 { 1006 1006 int rc = PGMHandlerVirtualDeregister(pVM, pVM->trpm.s.GCPtrIdt); 1007 1007 AssertRC(rc); 1008 pVM->trpm.s.GCPtrIdt = ~0;1008 pVM->trpm.s.GCPtrIdt = RTRCPTR_MAX; 1009 1009 } 1010 1010 #endif
Note:
See TracChangeset
for help on using the changeset viewer.

