Changeset 61041 in vbox for trunk/include
- Timestamp:
- May 19, 2016 5:31:32 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/apic.h
r60804 r61041 34 34 * @{ 35 35 */ 36 37 /** The APIC hardware version we are emulating. */38 #define XAPIC_HARDWARE_VERSION XAPIC_HARDWARE_VERSION_P439 36 40 37 /** Gets the APIC base physical address. */ … … 160 157 161 158 162 /**163 * The xAPIC sparse 256-bit register.164 */165 typedef union XAPIC256BITREG166 {167 /** The sparse-bitmap view. */168 struct169 {170 uint32_t u32Reg;171 uint32_t uReserved0[3];172 } u[8];173 /** The 32-bit view. */174 uint32_t au32[32];175 } XAPIC256BITREG;176 /** Pointer to an xAPIC sparse bitmap register. */177 typedef XAPIC256BITREG *PXAPIC256BITREG;178 /** Pointer to a const xAPIC sparse bitmap register. */179 typedef XAPIC256BITREG const *PCXAPIC256BITREG;180 AssertCompileSize(XAPIC256BITREG, 128);181 182 /**183 * The xAPIC memory layout as per Intel/AMD specs.184 */185 typedef struct XAPICPAGE186 {187 /* 0x00 - Reserved. */188 uint32_t uReserved0[8];189 /* 0x20 - APIC ID. */190 struct191 {192 uint8_t u8Reserved0[3];193 uint8_t u8ApicId;194 uint32_t u32Reserved0[3];195 } id;196 /* 0x30 - APIC version register. */197 union198 {199 struct200 {201 #if XAPIC_HARDWARE_VERSION == XAPIC_HARDWARE_VERSION_P4202 uint8_t u8Version;203 #else204 # error "Implement Pentium and P6 family APIC architectures"205 #endif206 uint8_t uReserved0;207 uint8_t u8MaxLvtEntry;208 uint8_t fEoiBroadcastSupression : 1;209 uint8_t u7Reserved1 : 7;210 uint32_t u32Reserved0[3];211 } u;212 struct213 {214 uint32_t u32Version;215 uint32_t u32Reserved0[3];216 } all;217 } version;218 /* 0x40 - Reserved. */219 uint32_t uReserved1[16];220 /* 0x80 - Task Priority Register (TPR). */221 struct222 {223 uint8_t u8Tpr;224 uint8_t u8Reserved0[3];225 uint32_t u32Reserved0[3];226 } tpr;227 /* 0x90 - Arbitration Priority Register (APR). */228 struct229 {230 uint8_t u8Apr;231 uint8_t u8Reserved0[3];232 uint32_t u32Reserved0[3];233 } apr;234 /* 0xA0 - Processor Priority Register (PPR). */235 struct236 {237 uint8_t u8Ppr;238 uint8_t u8Reserved0[3];239 uint32_t u32Reserved0[3];240 } ppr;241 /* 0xB0 - End Of Interrupt Register (EOI). */242 struct243 {244 uint32_t u32Eoi;245 uint32_t u32Reserved0[3];246 } eoi;247 /* 0xC0 - Remote Read Register (RRD). */248 struct249 {250 uint32_t u32Rrd;251 uint32_t u32Reserved0[3];252 } rrd;253 /* 0xD0 - Logical Destination Register (LDR). */254 union255 {256 struct257 {258 uint8_t u8Reserved0[3];259 uint8_t u8LogicalApicId;260 uint32_t u32Reserved0[3];261 } u;262 struct263 {264 uint32_t u32Ldr;265 uint32_t u32Reserved0[3];266 } all;267 } ldr;268 /* 0xE0 - Destination Format Register (DFR). */269 union270 {271 struct272 {273 uint32_t u28ReservedMb1 : 28; /* MB1 */274 uint32_t u4Model : 4;275 uint32_t u32Reserved0[3];276 } u;277 struct278 {279 uint32_t u32Dfr;280 uint32_t u32Reserved0[3];281 } all;282 } dfr;283 /* 0xF0 - Spurious-Interrupt Vector Register (SVR). */284 union285 {286 struct287 {288 uint32_t u8SpuriousVector : 8;289 uint32_t fApicSoftwareEnable : 1;290 uint32_t u3Reserved0 : 3;291 uint32_t fSupressEoiBroadcast : 1;292 uint32_t u19Reserved1 : 19;293 uint32_t u32Reserved0[3];294 } u;295 struct296 {297 uint32_t u32Svr;298 uint32_t u32Reserved0[3];299 } all;300 } svr;301 /* 0x100 - In-service Register (ISR). */302 XAPIC256BITREG isr;303 /* 0x180 - Trigger Mode Register (TMR). */304 XAPIC256BITREG tmr;305 /* 0x200 - Interrupt Request Register (IRR). */306 XAPIC256BITREG irr;307 /* 0x280 - Error Status Register (ESR). */308 union309 {310 struct311 {312 #if XAPIC_HARDWARE_VERSION == XAPIC_HARDWARE_VERSION_P4313 uint32_t u4Reserved0 : 4;314 #else315 # error "Implement Pentium and P6 family APIC architectures"316 #endif317 uint32_t fRedirectableIpi : 1;318 uint32_t fSendIllegalVector : 1;319 uint32_t fRcvdIllegalVector : 1;320 uint32_t fIllegalRegAddr : 1;321 uint32_t u24Reserved1 : 24;322 uint32_t u32Reserved0[3];323 } u;324 struct325 {326 uint32_t u32Errors;327 uint32_t u32Reserved0[3];328 } all;329 } esr;330 /* 0x290 - Reserved. */331 uint32_t uReserved2[28];332 /* 0x300 - Interrupt Command Register (ICR) - Low. */333 union334 {335 struct336 {337 uint32_t u8Vector : 8;338 uint32_t u3DeliveryMode : 3;339 uint32_t u1DestMode : 1;340 uint32_t u1DeliveryStatus : 1;341 uint32_t fReserved0 : 1;342 uint32_t u1Level : 1;343 uint32_t u1TriggerMode : 1;344 uint32_t u2Reserved1 : 2;345 uint32_t u2DestShorthand : 2;346 uint32_t u12Reserved2 : 12;347 uint32_t u32Reserved0[3];348 } u;349 struct350 {351 uint32_t u32IcrLo;352 uint32_t u32Reserved0[3];353 } all;354 } icr_lo;355 /* 0x310 - Interrupt Comannd Register (ICR) - High. */356 union357 {358 struct359 {360 uint32_t u24Reserved0 : 24;361 uint32_t u8Dest : 8;362 uint32_t u32Reserved0[3];363 } u;364 struct365 {366 uint32_t u32IcrHi;367 uint32_t u32Reserved0[3];368 } all;369 } icr_hi;370 /* 0x320 - Local Vector Table (LVT) Timer Register. */371 union372 {373 struct374 {375 uint32_t u8Vector : 8;376 uint32_t u4Reserved0 : 4;377 uint32_t u1DeliveryStatus : 1;378 uint32_t u3Reserved1 : 3;379 uint32_t u1Mask : 1;380 uint32_t u2TimerMode : 2;381 uint32_t u13Reserved2 : 13;382 uint32_t u32Reserved0[3];383 } u;384 struct385 {386 uint32_t u32LvtTimer;387 uint32_t u32Reserved0[3];388 } all;389 } lvt_timer;390 /* 0x330 - Local Vector Table (LVT) Thermal Sensor Register. */391 #if XAPIC_HARDWARE_VERSION == XAPIC_HARDWARE_VERSION_P4392 union393 {394 struct395 {396 uint32_t u8Vector : 8;397 uint32_t u3DeliveryMode : 3;398 uint32_t u1Reserved0 : 1;399 uint32_t u1DeliveryStatus : 1;400 uint32_t u3Reserved1 : 3;401 uint32_t u1Mask : 1;402 uint32_t u15Reserved2 : 15;403 uint32_t u32Reserved0[3];404 } u;405 struct406 {407 uint32_t u32LvtThermal;408 uint32_t u32Reserved0[3];409 } all;410 } lvt_thermal;411 #else412 # error "Implement Pentium and P6 family APIC architectures"413 #endif414 /* 0x340 - Local Vector Table (LVT) Performance Monitor Counter (PMC) Register. */415 union416 {417 struct418 {419 uint32_t u8Vector : 8;420 uint32_t u3DeliveryMode : 3;421 uint32_t u1Reserved0 : 1;422 uint32_t u1DeliveryStatus : 1;423 uint32_t u3Reserved1 : 3;424 uint32_t u1Mask : 1;425 uint32_t u15Reserved2 : 15;426 uint32_t u32Reserved0[3];427 } u;428 struct429 {430 uint32_t u32LvtPerf;431 uint32_t u32Reserved0[3];432 } all;433 } lvt_perf;434 /* 0x350 - Local Vector Table (LVT) LINT0 Register. */435 union436 {437 struct438 {439 uint32_t u8Vector : 8;440 uint32_t u3DeliveryMode : 3;441 uint32_t u1Reserved0 : 1;442 uint32_t u1DeliveryStatus : 1;443 uint32_t u1IntrPolarity : 1;444 uint32_t u1RemoteIrr : 1;445 uint32_t u1TriggerMode : 1;446 uint32_t u1Mask : 1;447 uint32_t u15Reserved2 : 15;448 uint32_t u32Reserved0[3];449 } u;450 struct451 {452 uint32_t u32LvtLint0;453 uint32_t u32Reserved0[3];454 } all;455 } lvt_lint0;456 /* 0x360 - Local Vector Table (LVT) LINT1 Register. */457 union458 {459 struct460 {461 uint32_t u8Vector : 8;462 uint32_t u3DeliveryMode : 3;463 uint32_t u1Reserved0 : 1;464 uint32_t u1DeliveryStatus : 1;465 uint32_t u1IntrPolarity : 1;466 uint32_t u1RemoteIrr : 1;467 uint32_t u1TriggerMode : 1;468 uint32_t u1Mask : 1;469 uint32_t u15Reserved2 : 15;470 uint32_t u32Reserved0[3];471 } u;472 struct473 {474 uint32_t u32LvtLint1;475 uint32_t u32Reserved0[3];476 } all;477 } lvt_lint1;478 /* 0x370 - Local Vector Table (LVT) Error Register. */479 union480 {481 struct482 {483 uint32_t u8Vector : 8;484 uint32_t u4Reserved0 : 4;485 uint32_t u1DeliveryStatus : 1;486 uint32_t u3Reserved1 : 3;487 uint32_t u1Mask : 1;488 uint32_t u15Reserved2 : 15;489 uint32_t u32Reserved0[3];490 } u;491 struct492 {493 uint32_t u32LvtError;494 uint32_t u32Reserved0[3];495 } all;496 } lvt_error;497 /* 0x380 - Timer Initial Counter Register. */498 struct499 {500 uint32_t u32InitialCount;501 uint32_t u32Reserved0[3];502 } timer_icr;503 /* 0x390 - Timer Current Counter Register. */504 struct505 {506 uint32_t u32CurrentCount;507 uint32_t u32Reserved0[3];508 } timer_ccr;509 /* 0x3A0 - Reserved. */510 uint32_t u32Reserved3[16];511 /* 0x3E0 - Timer Divide Configuration Register. */512 union513 {514 struct515 {516 uint32_t u2DivideValue0 : 2;517 uint32_t u1Reserved0 : 1;518 uint32_t u1DivideValue1 : 1;519 uint32_t u28Reserved1 : 28;520 uint32_t u32Reserved0[3];521 } u;522 struct523 {524 uint32_t u32DivideValue;525 uint32_t u32Reserved0[3];526 } all;527 } timer_dcr;528 /* 0x3F0 - Reserved. */529 uint8_t u8Reserved0[3088];530 } XAPICPAGE;531 /** Pointer to a XAPICPAGE struct. */532 typedef XAPICPAGE *PXAPICPAGE;533 /** Pointer to a const XAPICPAGE struct. */534 typedef const XAPICPAGE *PCXAPICPAGE;535 AssertCompileSize(XAPICPAGE, 4096);536 AssertCompileMemberOffset(XAPICPAGE, id, XAPIC_OFF_ID);537 AssertCompileMemberOffset(XAPICPAGE, version, XAPIC_OFF_VERSION);538 AssertCompileMemberOffset(XAPICPAGE, tpr, XAPIC_OFF_TPR);539 AssertCompileMemberOffset(XAPICPAGE, apr, XAPIC_OFF_APR);540 AssertCompileMemberOffset(XAPICPAGE, ppr, XAPIC_OFF_PPR);541 AssertCompileMemberOffset(XAPICPAGE, eoi, XAPIC_OFF_EOI);542 AssertCompileMemberOffset(XAPICPAGE, rrd, XAPIC_OFF_RRD);543 AssertCompileMemberOffset(XAPICPAGE, ldr, XAPIC_OFF_LDR);544 AssertCompileMemberOffset(XAPICPAGE, dfr, XAPIC_OFF_DFR);545 AssertCompileMemberOffset(XAPICPAGE, svr, XAPIC_OFF_SVR);546 AssertCompileMemberOffset(XAPICPAGE, isr, XAPIC_OFF_ISR0);547 AssertCompileMemberOffset(XAPICPAGE, tmr, XAPIC_OFF_TMR0);548 AssertCompileMemberOffset(XAPICPAGE, irr, XAPIC_OFF_IRR0);549 AssertCompileMemberOffset(XAPICPAGE, esr, XAPIC_OFF_ESR);550 AssertCompileMemberOffset(XAPICPAGE, icr_lo, XAPIC_OFF_ICR_LO);551 AssertCompileMemberOffset(XAPICPAGE, icr_hi, XAPIC_OFF_ICR_HI);552 AssertCompileMemberOffset(XAPICPAGE, lvt_timer, XAPIC_OFF_LVT_TIMER);553 AssertCompileMemberOffset(XAPICPAGE, lvt_thermal, XAPIC_OFF_LVT_THERMAL);554 AssertCompileMemberOffset(XAPICPAGE, lvt_perf, XAPIC_OFF_LVT_PERF);555 AssertCompileMemberOffset(XAPICPAGE, lvt_lint0, XAPIC_OFF_LVT_LINT0);556 AssertCompileMemberOffset(XAPICPAGE, lvt_lint1, XAPIC_OFF_LVT_LINT1);557 AssertCompileMemberOffset(XAPICPAGE, lvt_error, XAPIC_OFF_LVT_ERROR);558 AssertCompileMemberOffset(XAPICPAGE, timer_icr, XAPIC_OFF_TIMER_ICR);559 AssertCompileMemberOffset(XAPICPAGE, timer_ccr, XAPIC_OFF_TIMER_CCR);560 AssertCompileMemberOffset(XAPICPAGE, timer_dcr, XAPIC_OFF_TIMER_DCR);561 562 /**563 * The x2APIC memory layout as per Intel/AMD specs.564 */565 typedef struct X2APICPAGE566 {567 /* 0x00 - Reserved. */568 uint32_t uReserved0[8];569 /* 0x20 - APIC ID. */570 struct571 {572 uint32_t u32ApicId;573 uint32_t u32Reserved0[3];574 } id;575 /* 0x30 - APIC version register. */576 union577 {578 struct579 {580 uint8_t u8Version;581 uint8_t u8Reserved0;582 uint8_t u8MaxLvtEntry;583 uint8_t fEoiBroadcastSupression : 1;584 uint8_t u7Reserved1 : 7;585 uint32_t u32Reserved0[3];586 } u;587 struct588 {589 uint32_t u32Version;590 uint32_t u32Reserved2[3];591 } all;592 } version;593 /* 0x40 - Reserved. */594 uint32_t uReserved1[16];595 /* 0x80 - Task Priority Register (TPR). */596 struct597 {598 uint8_t u8Tpr;599 uint8_t u8Reserved0[3];600 uint32_t u32Reserved0[3];601 } tpr;602 /* 0x90 - Reserved. */603 uint32_t uReserved2[4];604 /* 0xA0 - Processor Priority Register (PPR). */605 struct606 {607 uint8_t u8Ppr;608 uint8_t u8Reserved0[3];609 uint32_t u32Reserved0[3];610 } ppr;611 /* 0xB0 - End Of Interrupt Register (EOI). */612 struct613 {614 uint32_t u32Eoi;615 uint32_t u32Reserved0[3];616 } eoi;617 /* 0xC0 - Remote Read Register (RRD). */618 struct619 {620 uint32_t u32Rrd;621 uint32_t u32Reserved0[3];622 } rrd;623 /* 0xD0 - Logical Destination Register (LDR). */624 struct625 {626 uint32_t u32LogicalApicId;627 uint32_t u32Reserved1[3];628 } ldr;629 /* 0xE0 - Reserved. */630 uint32_t uReserved3[4];631 /* 0xF0 - Spurious-Interrupt Vector Register (SVR). */632 union633 {634 struct635 {636 uint32_t u8SpuriousVector : 8;637 uint32_t fApicSoftwareEnable : 1;638 uint32_t u3Reserved0 : 3;639 uint32_t fSupressEoiBroadcast : 1;640 uint32_t u19Reserved1 : 19;641 uint32_t u32Reserved0[3];642 } u;643 struct644 {645 uint32_t u32Svr;646 uint32_t uReserved0[3];647 } all;648 } svr;649 /* 0x100 - In-service Register (ISR). */650 XAPIC256BITREG isr;651 /* 0x180 - Trigger Mode Register (TMR). */652 XAPIC256BITREG tmr;653 /* 0x200 - Interrupt Request Register (IRR). */654 XAPIC256BITREG irr;655 /* 0x280 - Error Status Register (ESR). */656 union657 {658 struct659 {660 #if XAPIC_HARDWARE_VERSION == XAPIC_HARDWARE_VERSION_P4661 uint32_t u4Reserved0 : 4;662 #else663 # error "Implement Pentium and P6 family APIC architectures"664 #endif665 uint32_t fRedirectableIpi : 1;666 uint32_t fSendIllegalVector : 1;667 uint32_t fRcvdIllegalVector : 1;668 uint32_t fIllegalRegAddr : 1;669 uint32_t u24Reserved1 : 24;670 uint32_t uReserved0[3];671 } u;672 struct673 {674 uint32_t u32Errors;675 uint32_t u32Reserved0[3];676 } all;677 } esr;678 /* 0x290 - Reserved. */679 uint32_t uReserved4[28];680 /* 0x300 - Interrupt Command Register (ICR) - Low. */681 union682 {683 struct684 {685 uint32_t u8Vector : 8;686 uint32_t u3DeliveryMode : 3;687 uint32_t u1DestMode : 1;688 uint32_t u2Reserved0 : 2;689 uint32_t u1Level : 1;690 uint32_t u1TriggerMode : 1;691 uint32_t u2Reserved1 : 2;692 uint32_t u2DestShorthand : 2;693 uint32_t u12Reserved2 : 12;694 uint32_t u32Reserved0[3];695 } u;696 struct697 {698 uint32_t u32IcrLo;699 uint32_t u32Reserved3[3];700 } all;701 } icr_lo;702 /* 0x310 - Interrupt Comannd Register (ICR) - High. */703 struct704 {705 uint32_t u32IcrHi;706 uint32_t uReserved1[3];707 } icr_hi;708 /* 0x320 - Local Vector Table (LVT) Timer Register. */709 union710 {711 struct712 {713 uint32_t u8Vector : 8;714 uint32_t u4Reserved0 : 4;715 uint32_t u1DeliveryStatus : 1;716 uint32_t u3Reserved1 : 3;717 uint32_t u1Mask : 1;718 uint32_t u2TimerMode : 2;719 uint32_t u13Reserved2 : 13;720 uint32_t u32Reserved0[3];721 } u;722 struct723 {724 uint32_t u32LvtTimer;725 uint32_t u32Reserved0[3];726 } all;727 } lvt_timer;728 /* 0x330 - Local Vector Table (LVT) Thermal Sensor Register. */729 union730 {731 struct732 {733 uint32_t u8Vector : 8;734 uint32_t u3DeliveryMode : 3;735 uint32_t u1Reserved0 : 1;736 uint32_t u1DeliveryStatus : 1;737 uint32_t u3Reserved1 : 3;738 uint32_t u1Mask : 1;739 uint32_t u15Reserved2 : 15;740 uint32_t u32Reserved0[3];741 } u;742 struct743 {744 uint32_t u32LvtThermal;745 uint32_t uReserved0[3];746 } all;747 } lvt_thermal;748 /* 0x340 - Local Vector Table (LVT) Performance Monitor Counter (PMC) Register. */749 union750 {751 struct752 {753 uint32_t u8Vector : 8;754 uint32_t u3DeliveryMode : 3;755 uint32_t u1Reserved0 : 1;756 uint32_t u1DeliveryStatus : 1;757 uint32_t u3Reserved1 : 3;758 uint32_t u1Mask : 1;759 uint32_t u15Reserved2 : 15;760 uint32_t u32Reserved0[3];761 } u;762 struct763 {764 uint32_t u32LvtPerf;765 uint32_t u32Reserved0[3];766 } all;767 } lvt_perf;768 /* 0x350 - Local Vector Table (LVT) LINT0 Register. */769 union770 {771 struct772 {773 uint32_t u8Vector : 8;774 uint32_t u3DeliveryMode : 3;775 uint32_t u1Reserved0 : 1;776 uint32_t u1DeliveryStatus : 1;777 uint32_t u1IntrPolarity : 1;778 uint32_t u1RemoteIrr : 1;779 uint32_t u1TriggerMode : 1;780 uint32_t u1Mask : 1;781 uint32_t u15Reserved2 : 15;782 uint32_t u32Reserved0[3];783 } u;784 struct785 {786 uint32_t u32LvtLint0;787 uint32_t u32Reserved0[3];788 } all;789 } lvt_lint0;790 /* 0x360 - Local Vector Table (LVT) LINT1 Register. */791 union792 {793 struct794 {795 uint32_t u8Vector : 8;796 uint32_t u3DeliveryMode : 3;797 uint32_t u1Reserved0 : 1;798 uint32_t u1DeliveryStatus : 1;799 uint32_t u1IntrPolarity : 1;800 uint32_t u1RemoteIrr : 1;801 uint32_t u1TriggerMode : 1;802 uint32_t u1Mask : 1;803 uint32_t u15Reserved2 : 15;804 uint32_t u32Reserved0[3];805 } u;806 struct807 {808 uint32_t u32LvtLint1;809 uint32_t u32Reserved0[3];810 } all;811 } lvt_lint1;812 /* 0x370 - Local Vector Table (LVT) Error Register. */813 union814 {815 struct816 {817 uint32_t u8Vector : 8;818 uint32_t u4Reserved0 : 4;819 uint32_t u1DeliveryStatus : 1;820 uint32_t u3Reserved1 : 3;821 uint32_t u1Mask : 1;822 uint32_t u15Reserved2 : 15;823 uint32_t u32Reserved0[3];824 } u;825 struct826 {827 uint32_t u32LvtError;828 uint32_t u32Reserved0[3];829 } all;830 } lvt_error;831 /* 0x380 - Timer Initial Counter Register. */832 struct833 {834 uint32_t u32InitialCount;835 uint32_t u32Reserved0[3];836 } timer_icr;837 /* 0x390 - Timer Current Counter Register. */838 struct839 {840 uint32_t u32CurrentCount;841 uint32_t u32Reserved0[3];842 } timer_ccr;843 /* 0x3A0 - Reserved. */844 uint32_t uReserved5[16];845 /* 0x3E0 - Timer Divide Configuration Register. */846 union847 {848 struct849 {850 uint32_t u2DivideValue0 : 2;851 uint32_t u1Reserved0 : 1;852 uint32_t u1DivideValue1 : 1;853 uint32_t u28Reserved1 : 28;854 uint32_t u32Reserved0[3];855 } u;856 struct857 {858 uint32_t u32DivideValue;859 uint32_t u32Reserved0[3];860 } all;861 } timer_dcr;862 /* 0x3F0 - Self IPI Register. */863 struct864 {865 uint32_t u8Vector : 8;866 uint32_t u24Reserved0 : 24;867 uint32_t u32Reserved0[3];868 } self_ipi;869 /* 0x400 - Reserved. */870 uint8_t u8Reserved0[3072];871 } X2APICPAGE;872 /** Pointer to a X2APICPAGE struct. */873 typedef X2APICPAGE *PX2APICPAGE;874 /** Pointer to a const X2APICPAGE struct. */875 typedef const X2APICPAGE *PCX2APICPAGE;876 AssertCompileSize(X2APICPAGE, 4096);877 AssertCompileSize(X2APICPAGE, sizeof(XAPICPAGE));878 AssertCompileMemberOffset(X2APICPAGE, id, XAPIC_OFF_ID);879 AssertCompileMemberOffset(X2APICPAGE, version, XAPIC_OFF_VERSION);880 AssertCompileMemberOffset(X2APICPAGE, tpr, XAPIC_OFF_TPR);881 AssertCompileMemberOffset(X2APICPAGE, ppr, XAPIC_OFF_PPR);882 AssertCompileMemberOffset(X2APICPAGE, eoi, XAPIC_OFF_EOI);883 AssertCompileMemberOffset(X2APICPAGE, rrd, XAPIC_OFF_RRD);884 AssertCompileMemberOffset(X2APICPAGE, ldr, XAPIC_OFF_LDR);885 AssertCompileMemberOffset(X2APICPAGE, svr, XAPIC_OFF_SVR);886 AssertCompileMemberOffset(X2APICPAGE, isr, XAPIC_OFF_ISR0);887 AssertCompileMemberOffset(X2APICPAGE, tmr, XAPIC_OFF_TMR0);888 AssertCompileMemberOffset(X2APICPAGE, irr, XAPIC_OFF_IRR0);889 AssertCompileMemberOffset(X2APICPAGE, esr, XAPIC_OFF_ESR);890 AssertCompileMemberOffset(X2APICPAGE, icr_lo, XAPIC_OFF_ICR_LO);891 AssertCompileMemberOffset(X2APICPAGE, icr_hi, XAPIC_OFF_ICR_HI);892 AssertCompileMemberOffset(X2APICPAGE, lvt_timer, XAPIC_OFF_LVT_TIMER);893 AssertCompileMemberOffset(X2APICPAGE, lvt_thermal, XAPIC_OFF_LVT_THERMAL);894 AssertCompileMemberOffset(X2APICPAGE, lvt_perf, XAPIC_OFF_LVT_PERF);895 AssertCompileMemberOffset(X2APICPAGE, lvt_lint0, XAPIC_OFF_LVT_LINT0);896 AssertCompileMemberOffset(X2APICPAGE, lvt_lint1, XAPIC_OFF_LVT_LINT1);897 AssertCompileMemberOffset(X2APICPAGE, lvt_error, XAPIC_OFF_LVT_ERROR);898 AssertCompileMemberOffset(X2APICPAGE, timer_icr, XAPIC_OFF_TIMER_ICR);899 AssertCompileMemberOffset(X2APICPAGE, timer_ccr, XAPIC_OFF_TIMER_CCR);900 AssertCompileMemberOffset(X2APICPAGE, timer_dcr, XAPIC_OFF_TIMER_DCR);901 AssertCompileMemberOffset(X2APICPAGE, self_ipi, X2APIC_OFF_SELF_IPI);902 903 159 RT_C_DECLS_BEGIN 904 160
Note:
See TracChangeset
for help on using the changeset viewer.