VirtualBox

Changeset 46304 in vbox for trunk/include/VBox/vmm/hm_svm.h


Ignore:
Timestamp:
May 29, 2013 9:13:19 AM (12 years ago)
Author:
vboxsync
Message:

VMM/HM: AMD-V bits and clean up.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/hm_svm.h

    r44528 r46304  
    44
    55/*
    6  * Copyright (C) 2006-2012 Oracle Corporation
     6 * Copyright (C) 2006-2013 Oracle Corporation
    77 *
    88 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    269269
    270270
    271 /** @name SVM_VMCB.u64ExitInfo2
     271/** @name SVMVMCB.u64ExitInfo2
    272272 * @{
    273273 */
     
    282282/** @} */
    283283
    284 /** @name SVM_VMCB.ctrl.u32InterceptCtrl1
     284/** @name SVMVMCB.ctrl.u32InterceptCtrl1
    285285 * @{
    286286 */
     
    352352
    353353
    354 /** @name SVM_VMCB.ctrl.u32InterceptCtrl2
     354/** @name SVMVMCB.ctrl.u32InterceptCtrl2
    355355 * @{
    356356 */
     
    385385/** @} */
    386386
    387 /** @name SVM_VMCB.ctrl.u64NestedPaging
     387/** @name SVMVMCB.ctrl.u64NestedPaging
    388388 * @{
    389389 */
     
    391391/** @} */
    392392
    393 /** @name SVM_VMCB.ctrl.u64IntShadow
     393/** @name SVMVMCB.ctrl.u64IntShadow
    394394 * @{
    395395 */
     
    398398
    399399
    400 /** @name SVM_INTCTRL.u3Type
     400/** @name SVMINTCTRL.u3Type
    401401 * @{
    402402 */
     
    412412
    413413
    414 /** @name SVM_VMCB.ctrl.TLBCtrl.n.u8TLBFlush
     414/** @name SVMVMCB.ctrl.TLBCtrl.n.u8TLBFlush
    415415 * @{
    416416 */
     
    470470    } n;
    471471    uint64_t    au64[1];
    472 } SVM_EVENT;
     472} SVMEVENT;
    473473#pragma pack()
    474474
     
    494494    } n;
    495495    uint64_t    au64[1];
    496 } SVM_INTCTRL;
     496} SVMINTCTRL;
    497497#pragma pack()
    498498
     
    511511    } n;
    512512    uint64_t    au64[1];
    513 } SVM_TLBCTRL;
     513} SVMTLBCTRL;
    514514#pragma pack()
    515515
     
    537537    } n;
    538538    uint32_t    au32[1];
    539 } SVM_IOIO_EXIT;
     539} SVMIOIOEXIT;
    540540#pragma pack()
    541541
     
    551551    } n;
    552552    uint64_t    au64[1];
    553 } SVM_NPCTRL;
     553} SVMNPCTRL;
    554554#pragma pack()
    555555
     
    558558 */
    559559#pragma pack(1)
    560 typedef struct _SVM_VMCB
     560typedef struct SVMVMCB
    561561{
    562562    /** Control Area. */
     
    588588        uint64_t    u64TSCOffset;
    589589        /** Offset 0x58 - TLB control field. */
    590         SVM_TLBCTRL TLBCtrl;
     590        SVMTLBCTRL TLBCtrl;
    591591        /** Offset 0x60 - Interrupt control field. */
    592         SVM_INTCTRL IntCtrl;
     592        SVMINTCTRL IntCtrl;
    593593        /** Offset 0x68 - Interrupt shadow. */
    594594        uint64_t    u64IntShadow;
     
    600600        uint64_t    u64ExitInfo2;
    601601        /** Offset 0x88 - Exit Interrupt info. */
    602         SVM_EVENT   ExitIntInfo;
     602        SVMEVENT    ExitIntInfo;
    603603        /** Offset 0x90 - Nested Paging. */
    604         SVM_NPCTRL  NestedPaging;
     604        SVMNPCTRL   NestedPaging;
    605605        /** Offset 0x98-0xA7 - Reserved. */
    606606        uint8_t     u8Reserved2[0xA8-0x98];
    607607        /** Offset 0xA8 - Event injection. */
    608         SVM_EVENT   EventInject;
     608        SVMEVENT    EventInject;
    609609        /** Offset 0xB0 - Host CR3 for nested paging. */
    610610        uint64_t    u64NestedPagingCR3;
     
    715715    /** Offset 0x698-0xFFF- Reserved. */
    716716    uint8_t     u8Reserved10[0x1000-0x698];
    717 } SVM_VMCB;
     717} SVMVMCB;
    718718#pragma pack()
    719 AssertCompileSize(SVM_VMCB, 0x1000);
    720 AssertCompileMemberOffset(SVM_VMCB, ctrl.u16InterceptRdCRx, 0x000);
    721 AssertCompileMemberOffset(SVM_VMCB, ctrl.u16PauseFilterCount,0x03e);
    722 AssertCompileMemberOffset(SVM_VMCB, ctrl.TLBCtrl,           0x058);
    723 AssertCompileMemberOffset(SVM_VMCB, ctrl.ExitIntInfo,       0x088);
    724 AssertCompileMemberOffset(SVM_VMCB, ctrl.EventInject,       0x0A8);
    725 AssertCompileMemberOffset(SVM_VMCB, ctrl.abInstr,           0x0D1);
    726 AssertCompileMemberOffset(SVM_VMCB, guest,                  0x400);
    727 AssertCompileMemberOffset(SVM_VMCB, guest.ES,               0x400);
    728 AssertCompileMemberOffset(SVM_VMCB, guest.u8Reserved4,      0x4A0);
    729 AssertCompileMemberOffset(SVM_VMCB, guest.u8CPL,            0x4CB);
    730 AssertCompileMemberOffset(SVM_VMCB, guest.u8Reserved6,      0x4D8);
    731 AssertCompileMemberOffset(SVM_VMCB, guest.u8Reserved7,      0x580);
    732 AssertCompileMemberOffset(SVM_VMCB, guest.u8Reserved9,      0x648);
    733 AssertCompileMemberOffset(SVM_VMCB, guest.u64GPAT,          0x668);
    734 AssertCompileMemberOffset(SVM_VMCB, guest.u64LASTEXCPTO,    0x690);
    735 AssertCompileMemberOffset(SVM_VMCB, u8Reserved10,           0x698);
     719/** Pointer to the SVMVMCB structure. */
     720typedef SVMVMCB *PSVMVMCB;
     721AssertCompileMemberOffset(SVMVMCB, ctrl.u16InterceptRdCRx,   0x000);
     722AssertCompileMemberOffset(SVMVMCB, ctrl.u16PauseFilterCount, 0x03e);
     723AssertCompileMemberOffset(SVMVMCB, ctrl.TLBCtrl,             0x058);
     724AssertCompileMemberOffset(SVMVMCB, ctrl.ExitIntInfo,         0x088);
     725AssertCompileMemberOffset(SVMVMCB, ctrl.EventInject,         0x0A8);
     726AssertCompileMemberOffset(SVMVMCB, ctrl.abInstr,             0x0D1);
     727AssertCompileMemberOffset(SVMVMCB, guest,                    0x400);
     728AssertCompileMemberOffset(SVMVMCB, guest.ES,                 0x400);
     729AssertCompileMemberOffset(SVMVMCB, guest.TR,                 0x490);
     730AssertCompileMemberOffset(SVMVMCB, guest.u64EFER,            0x4D0);
     731AssertCompileMemberOffset(SVMVMCB, guest.u64CR4,             0x548);
     732AssertCompileMemberOffset(SVMVMCB, guest.u64RIP,             0x578);
     733AssertCompileMemberOffset(SVMVMCB, guest.u64RSP,             0x5D8);
     734AssertCompileMemberOffset(SVMVMCB, guest.u64CR2,             0x640);
     735AssertCompileMemberOffset(SVMVMCB, guest.u8Reserved4,        0x4A0);
     736AssertCompileMemberOffset(SVMVMCB, guest.u8CPL,              0x4CB);
     737AssertCompileMemberOffset(SVMVMCB, guest.u8Reserved6,        0x4D8);
     738AssertCompileMemberOffset(SVMVMCB, guest.u8Reserved7,        0x580);
     739AssertCompileMemberOffset(SVMVMCB, guest.u8Reserved9,        0x648);
     740AssertCompileMemberOffset(SVMVMCB, guest.u64GPAT,            0x668);
     741AssertCompileMemberOffset(SVMVMCB, guest.u64LASTEXCPTO,      0x690);
     742AssertCompileMemberOffset(SVMVMCB, u8Reserved10,             0x698);
     743AssertCompileSize(SVMVMCB, 0x1000);
    736744
    737745#ifdef IN_RING0
     
    741749/** @} */
    742750
    743 #endif
    744 
     751#endif /* ___VBox_vmm_svm_h */
     752
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette