Changeset 22885 in vbox
- Timestamp:
- Sep 9, 2009 9:58:49 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
-
include/VBox/vm.h (modified) (27 diffs)
-
include/VBox/vm.mac (modified) (1 diff)
-
src/VBox/Devices/testcase/tstDeviceStructSize.cpp (modified) (4 diffs)
-
src/VBox/Devices/testcase/tstDeviceStructSizeGC.cpp (modified) (2 diffs)
-
src/VBox/VMM/VM.cpp (modified) (1 diff)
-
src/VBox/VMM/testcase/tstHelp.h (modified) (4 diffs)
-
src/VBox/VMM/testcase/tstVMStructSize.cpp (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vm.h
r22789 r22885 134 134 struct PGMCPU s; 135 135 #endif 136 char padding[ 32*1024]; /* multiple of 64 */136 char padding[28*1024]; /* multiple of 64 */ 137 137 } pgm; 138 138 … … 143 143 struct HWACCMCPU s; 144 144 #endif 145 char padding[ 6144]; /* multiple of 64 */145 char padding[5248]; /* multiple of 64 */ 146 146 } hwaccm; 147 147 … … 152 152 struct EMCPU s; 153 153 #endif 154 char padding[ 2048]; /* multiple of 64 */154 char padding[1280]; /* multiple of 64 */ 155 155 } em; 156 156 … … 179 179 struct VMMCPU s; 180 180 #endif 181 char padding[ 384]; /* multiple of 64 */181 char padding[256]; /* multiple of 64 */ 182 182 } vmm; 183 183 … … 210 210 } dbgf; 211 211 212 /** Align at page boundrary. */ 213 uint8_t abReserved[HC_ARCH_BITS == 32 ? 448 : 64]; 212 214 } VMCPU; 213 215 … … 716 718 * @remark Assume interrupts disabled. 717 719 */ 718 RTRCPTR pfnVMMGCGuestToHostAsmGuestCtx/*(int32_t eax, CPUMCTXCORE Ctx)*/;720 RTRCPTR pfnVMMGCGuestToHostAsmGuestCtx/*(int32_t eax, CPUMCTXCORE Ctx)*/; 719 721 720 722 /** … … 731 733 * @remark Assume interrupts disabled. 732 734 */ 733 RTRCPTR pfnVMMGCGuestToHostAsmHyperCtx/*(int32_t eax, PCPUMCTXCORE ecx)*/;735 RTRCPTR pfnVMMGCGuestToHostAsmHyperCtx/*(int32_t eax, PCPUMCTXCORE ecx)*/; 734 736 735 737 /** … … 743 745 * @remark Assume interrupts disabled. 744 746 */ 745 RTRCPTR pfnVMMGCGuestToHostAsm/*(int32_t eax)*/;747 RTRCPTR pfnVMMGCGuestToHostAsm/*(int32_t eax)*/; 746 748 /** @} */ 747 749 … … 749 751 /** @name Various VM data owned by VM. 750 752 * @{ */ 751 RTTHREAD uPadding1;753 RTTHREAD uPadding1; 752 754 /** The native handle of ThreadEMT. Getting the native handle 753 755 * is generally faster than getting the IPRT one (except on OS/2 :-). */ 754 RTNATIVETHREAD uPadding2;756 RTNATIVETHREAD uPadding2; 755 757 /** @} */ 756 758 … … 759 761 * @{ */ 760 762 /** Raw ring-3 indicator. */ 761 bool fRawR3Enabled;763 bool fRawR3Enabled; 762 764 /** Raw ring-0 indicator. */ 763 bool fRawR0Enabled;765 bool fRawR0Enabled; 764 766 /** PATM enabled flag. 765 767 * This is placed here for performance reasons. */ 766 bool fPATMEnabled;768 bool fPATMEnabled; 767 769 /** CSAM enabled flag. 768 770 * This is placed here for performance reasons. */ 769 bool fCSAMEnabled;771 bool fCSAMEnabled; 770 772 /** Hardware VM support is available and enabled. 771 773 * This is placed here for performance reasons. */ 772 bool fHWACCMEnabled;774 bool fHWACCMEnabled; 773 775 /** Hardware VM support is required and non-optional. 774 776 * This is initialized together with the rest of the VM structure. */ 775 bool fHwVirtExtForced;777 bool fHwVirtExtForced; 776 778 /** PARAV enabled flag. */ 777 bool fPARAVEnabled;779 bool fPARAVEnabled; 778 780 /** @} */ 779 781 … … 781 783 /* padding to make gnuc put the StatQemuToGC where msc does. */ 782 784 #if HC_ARCH_BITS == 32 783 uint32_t padding0;785 uint32_t padding0; 784 786 #endif 785 787 786 788 /** Profiling the total time from Qemu to GC. */ 787 STAMPROFILEADV StatTotalQemuToGC;789 STAMPROFILEADV StatTotalQemuToGC; 788 790 /** Profiling the total time from GC to Qemu. */ 789 STAMPROFILEADV StatTotalGCToQemu;791 STAMPROFILEADV StatTotalGCToQemu; 790 792 /** Profiling the total time spent in GC. */ 791 STAMPROFILEADV StatTotalInGC;793 STAMPROFILEADV StatTotalInGC; 792 794 /** Profiling the total time spent not in Qemu. */ 793 STAMPROFILEADV StatTotalInQemu;795 STAMPROFILEADV StatTotalInQemu; 794 796 /** Profiling the VMMSwitcher code for going to GC. */ 795 STAMPROFILEADV StatSwitcherToGC;797 STAMPROFILEADV StatSwitcherToGC; 796 798 /** Profiling the VMMSwitcher code for going to HC. */ 797 STAMPROFILEADV StatSwitcherToHC;798 STAMPROFILEADV StatSwitcherSaveRegs;799 STAMPROFILEADV StatSwitcherSysEnter;800 STAMPROFILEADV StatSwitcherDebug;801 STAMPROFILEADV StatSwitcherCR0;802 STAMPROFILEADV StatSwitcherCR4;803 STAMPROFILEADV StatSwitcherJmpCR3;804 STAMPROFILEADV StatSwitcherRstrRegs;805 STAMPROFILEADV StatSwitcherLgdt;806 STAMPROFILEADV StatSwitcherLidt;807 STAMPROFILEADV StatSwitcherLldt;808 STAMPROFILEADV StatSwitcherTSS;799 STAMPROFILEADV StatSwitcherToHC; 800 STAMPROFILEADV StatSwitcherSaveRegs; 801 STAMPROFILEADV StatSwitcherSysEnter; 802 STAMPROFILEADV StatSwitcherDebug; 803 STAMPROFILEADV StatSwitcherCR0; 804 STAMPROFILEADV StatSwitcherCR4; 805 STAMPROFILEADV StatSwitcherJmpCR3; 806 STAMPROFILEADV StatSwitcherRstrRegs; 807 STAMPROFILEADV StatSwitcherLgdt; 808 STAMPROFILEADV StatSwitcherLidt; 809 STAMPROFILEADV StatSwitcherLldt; 810 STAMPROFILEADV StatSwitcherTSS; 809 811 810 812 /** @todo Realign everything on 64 byte boundaries to better match the 811 813 * cache-line size. */ 812 814 /* padding - the unions must be aligned on 32 bytes boundraries. */ 813 uint32_t padding[HC_ARCH_BITS == 32 ? 4+8 : 6];815 uint32_t padding[HC_ARCH_BITS == 32 ? 4+8 : 6]; 814 816 815 817 /** CPUM part. */ … … 819 821 struct CPUM s; 820 822 #endif 821 char padding[2048]; /* multiple of 32*/823 uint8_t padding[1472]; /* multiple of 64 */ 822 824 } cpum; 823 825 … … 828 830 struct VMM s; 829 831 #endif 830 char padding[1600]; /* multiple of 32*/832 uint8_t padding[1536]; /* multiple of 64 */ 831 833 } vmm; 832 834 … … 837 839 struct PGM s; 838 840 #endif 839 char padding[16*1024]; /* multiple of 32*/841 uint8_t padding[5184]; /* multiple of 64 */ 840 842 } pgm; 841 843 … … 846 848 struct HWACCM s; 847 849 #endif 848 char padding[8192]; /* multiple of 32*/850 uint8_t padding[5376]; /* multiple of 64 */ 849 851 } hwaccm; 850 852 … … 855 857 struct TRPM s; 856 858 #endif 857 char padding[5344]; /* multiple of 32*/859 uint8_t padding[5184]; /* multiple of 64 */ 858 860 } trpm; 859 861 … … 864 866 struct SELM s; 865 867 #endif 866 char padding[544]; /* multiple of 32*/868 uint8_t padding[576]; /* multiple of 64 */ 867 869 } selm; 868 870 … … 873 875 struct MM s; 874 876 #endif 875 char padding[192]; /* multiple of 32*/877 uint8_t padding[192]; /* multiple of 64 */ 876 878 } mm; 877 878 /** CFGM part. */879 union880 {881 #ifdef ___CFGMInternal_h882 struct CFGM s;883 #endif884 char padding[32]; /* multiple of 32 */885 } cfgm;886 879 887 880 /** PDM part. */ … … 891 884 struct PDM s; 892 885 #endif 893 char padding[1824]; /* multiple of 32*/886 uint8_t padding[1024]; /* multiple of 64 */ 894 887 } pdm; 895 888 … … 900 893 struct IOM s; 901 894 #endif 902 char padding[4544]; /* multiple of 32*/895 uint8_t padding[768]; /* multiple of 64 */ 903 896 } iom; 904 897 … … 909 902 struct PATM s; 910 903 #endif 911 char padding[768]; /* multiple of 32*/904 uint8_t padding[768]; /* multiple of 64 */ 912 905 } patm; 913 906 … … 918 911 struct CSAM s; 919 912 #endif 920 char padding[3328]; /* multiple of 32*/913 uint8_t padding[1024]; /* multiple of 64 */ 921 914 } csam; 922 923 /** PARAV part. */924 union925 {926 #ifdef ___PARAVInternal_h927 struct PARAV s;928 #endif929 char padding[128];930 } parav;931 915 932 916 /** EM part. */ … … 936 920 struct EM s; 937 921 #endif 938 char padding[256]; /* multiple of 32*/922 uint8_t padding[256]; /* multiple of 64 */ 939 923 } em; 940 924 … … 945 929 struct TM s; 946 930 #endif 947 char padding[2112]; /* multiple of 32*/931 uint8_t padding[2112]; /* multiple of 64 */ 948 932 } tm; 949 933 … … 954 938 struct DBGF s; 955 939 #endif 956 char padding[2368]; /* multiple of 32*/940 uint8_t padding[2368]; /* multiple of 64 */ 957 941 } dbgf; 958 942 … … 963 947 struct SSM s; 964 948 #endif 965 char padding[32]; /* multiple of 32*/949 uint8_t padding[64]; /* multiple of 64 */ 966 950 } ssm; 967 968 /** VM part. */969 union970 {971 #ifdef ___VMInternal_h972 struct VMINT s;973 #endif974 char padding[768]; /* multiple of 32 */975 } vm;976 951 977 952 /** REM part. */ … … 985 960 * Must be multiple of 32 and coherent with REM_ENV_SIZE from REMInternal.h. */ 986 961 # define VM_REM_SIZE 0x11100 987 charpadding[VM_REM_SIZE]; /* multiple of 32 */962 uint8_t padding[VM_REM_SIZE]; /* multiple of 32 */ 988 963 } rem; 989 964 965 /* ---- begin small stuff ---- */ 966 967 /** VM part. */ 968 union 969 { 970 #ifdef ___VMInternal_h 971 struct VMINT s; 972 #endif 973 uint8_t padding[24]; /* multiple of 8 */ 974 } vm; 975 976 /** PARAV part. */ 977 union 978 { 979 #ifdef ___PARAVInternal_h 980 struct PARAV s; 981 #endif 982 uint8_t padding[24]; /* multiple of 8 */ 983 } parav; 984 985 /** CFGM part. */ 986 union 987 { 988 #ifdef ___CFGMInternal_h 989 struct CFGM s; 990 #endif 991 uint8_t padding[8]; /* multiple of 8 */ 992 } cfgm; 993 990 994 /** Padding for aligning the cpu array on a 64 byte boundrary. */ 991 uint32_t u32Reserved2[8]; 995 uint8_t abReserved2[8 + (HC_ARCH_BITS == 32 ? 3712 : 0)]; 996 997 /* ---- end small stuff ---- */ 992 998 993 999 /** VMCPU array for the configured number of virtual CPUs. 994 * Must be aligned on a 64-byte boundrary. */ 995 VMCPU aCpus[1]; 1000 * Must be aligned on a page boundrary for TLB hit reasons as well as 1001 * alignment of VMCPU members. */ 1002 VMCPU aCpus[1]; 996 1003 } VM; 997 1004 -
trunk/include/VBox/vm.mac
r22042 r22885 97 97 98 98 alignb 64 99 .cpum resb 2048100 .vmm resb 1 02499 .cpum resb 1472 100 .vmm resb 1536 101 101 102 102 endstruc -
trunk/src/VBox/Devices/testcase/tstDeviceStructSize.cpp
r21232 r22885 134 134 do \ 135 135 { \ 136 if ( RT_OFFSETOF(strct, member) & ((align) - 1) ) \ 137 { \ 138 printf("%s::%s offset=%d expected alignment %d, meaning %d off\n", #strct, #member, RT_OFFSETOF(strct, member), \ 139 align, RT_OFFSETOF(strct, member) & (align - 1)); \ 136 if (RT_OFFSETOF(strct, member) & ((align) - 1) ) \ 137 { \ 138 printf("%s::%s offset=%#x (%u) expected alignment %x, meaning %#x (%u) off\n", \ 139 #strct, #member, \ 140 (unsigned)RT_OFFSETOF(strct, member), \ 141 (unsigned)RT_OFFSETOF(strct, member), \ 142 (unsigned)(align), \ 143 (unsigned)((align) - RT_OFFSETOF(strct, member) & ((align) - 1)), \ 144 (unsigned)((align) - RT_OFFSETOF(strct, member) & ((align) - 1)) ); \ 140 145 rc++; \ 141 146 } \ … … 149 154 if (RT_ALIGN_Z(sizeof(type), (align)) != sizeof(type)) \ 150 155 { \ 151 printf("%s size=%#x, align=%#x %#x bytes off\n", #type, (int)sizeof(type), (align), (int)RT_ALIGN_Z(sizeof(type), align) - (int)sizeof(type)); \ 156 printf("%s size=%#x (%u), align=%#x %#x (%u) bytes off\n", \ 157 #type, \ 158 (unsigned)sizeof(type), \ 159 (unsigned)sizeof(type), \ 160 (align), \ 161 (unsigned)RT_ALIGN_Z(sizeof(type), align) - (unsigned)sizeof(type), \ 162 (unsigned)RT_ALIGN_Z(sizeof(type), align) - (unsigned)sizeof(type)); \ 152 163 rc++; \ 153 164 } \ … … 157 168 * Checks that a internal struct padding is big enough. 158 169 */ 159 #define CHECK_PADDING(strct, member ) \170 #define CHECK_PADDING(strct, member, align) \ 160 171 do \ 161 172 { \ … … 164 175 { \ 165 176 printf("padding of %s::%s is too small, padding=%d struct=%d correct=%d\n", #strct, #member, \ 166 (int)sizeof(p->member.padding), (int)sizeof(p->member.s), (int)RT_ALIGN_Z(sizeof(p->member.s), 32)); \ 177 (int)sizeof(p->member.padding), (int)sizeof(p->member.s), (int)RT_ALIGN_Z(sizeof(p->member.s), (align))); \ 178 rc++; \ 179 } \ 180 else if (RT_ALIGN_Z(sizeof(p->member.padding), (align)) != sizeof(p->member.padding)) \ 181 { \ 182 printf("padding of %s::%s is misaligned, padding=%d correct=%d\n", #strct, #member, \ 183 (int)sizeof(p->member.padding), (int)RT_ALIGN_Z(sizeof(p->member.s), (align))); \ 167 184 rc++; \ 168 185 } \ -
trunk/src/VBox/Devices/testcase/tstDeviceStructSizeGC.cpp
r22839 r22885 94 94 #include <stdio.h> 95 95 96 #define GEN_CHECK_SIZE(s) printf(" CHECK_SIZE(%s, %d);\n", #s, (int)sizeof(s))97 #define GEN_CHECK_OFF(s, m) printf(" CHECK_OFF(%s, %d, %s);\n", #s, (int)RT_OFFSETOF(s, m), #m)98 #define GEN_CHECK_PADDING(s, m ) printf(" CHECK_PADDING(%s, %s);\n", #s, #m)96 #define GEN_CHECK_SIZE(s) printf(" CHECK_SIZE(%s, %d);\n", #s, (int)sizeof(s)) 97 #define GEN_CHECK_OFF(s, m) printf(" CHECK_OFF(%s, %d, %s);\n", #s, (int)RT_OFFSETOF(s, m), #m) 98 #define GEN_CHECK_PADDING(s, m, a) printf(" CHECK_PADDING(%s, %s, %u);\n", #s, #m, (a)) 99 99 100 100 int main() … … 141 141 GEN_CHECK_OFF(PCIDEVICE, Int.s.pfnBridgeConfigRead); 142 142 GEN_CHECK_OFF(PCIDEVICE, Int.s.pfnBridgeConfigWrite); 143 GEN_CHECK_PADDING(PCIDEVICE, Int );143 GEN_CHECK_PADDING(PCIDEVICE, Int, 8); 144 144 GEN_CHECK_SIZE(PIIX3State); 145 145 GEN_CHECK_SIZE(PCIBUS); -
trunk/src/VBox/VMM/VM.cpp
r22792 r22885 1896 1896 rc = CPUMR3Term(pVM); 1897 1897 AssertRC(rc); 1898 SSMR3Term(pVM); 1898 1899 rc = PDMR3CritSectTerm(pVM); 1899 1900 AssertRC(rc); -
trunk/src/VBox/VMM/testcase/tstHelp.h
r20374 r22885 70 70 do \ 71 71 { \ 72 if ( RT_OFFSETOF(strct, member) & ((align) - 1) ) \72 if (RT_OFFSETOF(strct, member) & ((align) - 1) ) \ 73 73 { \ 74 printf("%s::%s offset=%#x expected alignment %x, meaning %#x off\n", #strct, #member, (unsigned)RT_OFFSETOF(strct, member), \ 75 (unsigned)(align), (unsigned)(RT_OFFSETOF(strct, member) & ((align) - 1))); \ 74 printf("%s::%s offset=%#x (%u) expected alignment %x, meaning %#x (%u) off\n", \ 75 #strct, #member, \ 76 (unsigned)RT_OFFSETOF(strct, member), \ 77 (unsigned)RT_OFFSETOF(strct, member), \ 78 (unsigned)(align), \ 79 (unsigned)((align) - RT_OFFSETOF(strct, member) & ((align) - 1)), \ 80 (unsigned)((align) - RT_OFFSETOF(strct, member) & ((align) - 1)) ); \ 76 81 rc++; \ 77 82 } \ … … 85 90 if (RT_ALIGN_Z(sizeof(type), (align)) != sizeof(type)) \ 86 91 { \ 87 printf("%s size=%#x, align=%#x %#x bytes off\n", #type, (int)sizeof(type), \ 88 (align), (int)RT_ALIGN_Z(sizeof(type), align) - (int)sizeof(type)); \ 92 printf("%s size=%#x (%u), align=%#x %#x (%u) bytes off\n", \ 93 #type, \ 94 (unsigned)sizeof(type), \ 95 (unsigned)sizeof(type), \ 96 (align), \ 97 (unsigned)RT_ALIGN_Z(sizeof(type), align) - (unsigned)sizeof(type), \ 98 (unsigned)RT_ALIGN_Z(sizeof(type), align) - (unsigned)sizeof(type)); \ 89 99 rc++; \ 90 100 } \ … … 94 104 * Checks that a internal struct padding is big enough. 95 105 */ 96 #define CHECK_PADDING(strct, member ) \106 #define CHECK_PADDING(strct, member, align) \ 97 107 do \ 98 108 { \ … … 101 111 { \ 102 112 printf("padding of %s::%s is too small, padding=%d struct=%d correct=%d\n", #strct, #member, \ 103 (int)sizeof(p->member.padding), (int)sizeof(p->member.s), (int)RT_ALIGN_Z(sizeof(p->member.s), 64)); \ 113 (int)sizeof(p->member.padding), (int)sizeof(p->member.s), (int)RT_ALIGN_Z(sizeof(p->member.s), (align))); \ 114 rc++; \ 115 } \ 116 else if (RT_ALIGN_Z(sizeof(p->member.padding), (align)) != sizeof(p->member.padding)) \ 117 { \ 118 printf("padding of %s::%s is misaligned, padding=%d correct=%d\n", #strct, #member, \ 119 (int)sizeof(p->member.padding), (int)RT_ALIGN_Z(sizeof(p->member.s), (align))); \ 104 120 rc++; \ 105 121 } \ -
trunk/src/VBox/VMM/testcase/tstVMStructSize.cpp
r21989 r22885 73 73 printf("struct VM: %d bytes\n", (int)sizeof(VM)); 74 74 75 #define CHECK_PADDING_VM( member) \75 #define CHECK_PADDING_VM(align, member) \ 76 76 do \ 77 77 { \ 78 CHECK_PADDING(VM, member); \ 79 CHECK_MEMBER_ALIGNMENT(VM, member, 32); \ 78 CHECK_PADDING(VM, member, align); \ 79 CHECK_MEMBER_ALIGNMENT(VM, member, align); \ 80 VM *p; \ 81 if (sizeof(p->member.padding) >= (ssize_t)sizeof(p->member.s) + 128 + sizeof(p->member.s) / 20) \ 82 printf("warning: VM::%-8s: padding=%-5d s=%-5d -> %-4d suggest=%-5u\n", \ 83 #member, (int)sizeof(p->member.padding), (int)sizeof(p->member.s), \ 84 (int)sizeof(p->member.padding) - (int)sizeof(p->member.s), \ 85 (int)RT_ALIGN_Z(sizeof(p->member.s), (align))); \ 80 86 } while (0) 81 87 82 88 83 #define CHECK_PADDING_VMCPU( member) \89 #define CHECK_PADDING_VMCPU(align, member) \ 84 90 do \ 85 91 { \ 86 CHECK_PADDING(VMCPU, member); \ 87 CHECK_MEMBER_ALIGNMENT(VMCPU, member, 32); \ 92 CHECK_PADDING(VMCPU, member, align); \ 93 CHECK_MEMBER_ALIGNMENT(VMCPU, member, align); \ 94 VMCPU *p; \ 95 if (sizeof(p->member.padding) >= (ssize_t)sizeof(p->member.s) + 128 + sizeof(p->member.s) / 20) \ 96 printf("warning: VMCPU::%-8s: padding=%-5d s=%-5d -> %-4d suggest=%-5u\n", \ 97 #member, (int)sizeof(p->member.padding), (int)sizeof(p->member.s), \ 98 (int)sizeof(p->member.padding) - (int)sizeof(p->member.s), \ 99 (int)RT_ALIGN_Z(sizeof(p->member.s), (align))); \ 88 100 } while (0) 89 101 … … 137 149 CHECK_SIZE(X86PML4, PAGE_SIZE); 138 150 139 CHECK_PADDING_VM(cfgm); 140 CHECK_PADDING_VM(cpum); 141 CHECK_PADDING_VM(dbgf); 142 CHECK_PADDING_VM(em); 143 CHECK_PADDING_VM(iom); 144 CHECK_PADDING_VM(mm); 145 CHECK_PADDING_VM(pdm); 146 CHECK_PADDING_VM(pgm); 147 CHECK_PADDING_VM(selm); 148 CHECK_PADDING_VM(tm); 149 CHECK_PADDING_VM(trpm); 150 CHECK_PADDING_VM(vm); 151 CHECK_PADDING_VM(vmm); 152 CHECK_PADDING_VM(ssm); 153 CHECK_PADDING_VM(rem); 154 CHECK_PADDING_VM(hwaccm); 155 CHECK_PADDING_VM(patm); 156 CHECK_PADDING_VM(csam); 157 158 CHECK_PADDING_VMCPU(cpum); 159 CHECK_PADDING_VMCPU(pgm); 160 CHECK_PADDING_VMCPU(em); 161 CHECK_PADDING_VMCPU(hwaccm); 162 CHECK_PADDING_VMCPU(trpm); 163 CHECK_PADDING_VMCPU(tm); 164 CHECK_PADDING_VMCPU(vmm); 151 CHECK_PADDING_VM(64, cpum); 152 CHECK_PADDING_VM(64, vmm); 153 CHECK_PADDING_VM(64, pgm); 154 CHECK_PADDING_VM(64, hwaccm); 155 CHECK_PADDING_VM(64, trpm); 156 CHECK_PADDING_VM(64, selm); 157 CHECK_PADDING_VM(64, mm); 158 CHECK_PADDING_VM(64, pdm); 159 CHECK_PADDING_VM(64, iom); 160 CHECK_PADDING_VM(64, patm); 161 CHECK_PADDING_VM(64, csam); 162 CHECK_PADDING_VM(64, em); 163 CHECK_PADDING_VM(64, tm); 164 CHECK_PADDING_VM(64, dbgf); 165 CHECK_PADDING_VM(64, ssm); 166 CHECK_PADDING_VM(64, rem); 167 CHECK_PADDING_VM(8, vm); 168 #ifdef VBOX_WITH_VMI 169 CHECK_PADDING_VM(8, parav); 170 #endif 171 CHECK_PADDING_VM(8, cfgm); 172 173 CHECK_PADDING_VMCPU(64, cpum); 174 CHECK_PADDING_VMCPU(64, pgm); 175 CHECK_PADDING_VMCPU(64, hwaccm); 176 CHECK_PADDING_VMCPU(64, em); 177 CHECK_PADDING_VMCPU(64, trpm); 178 CHECK_PADDING_VMCPU(64, tm); 179 CHECK_PADDING_VMCPU(64, vmm); 180 CHECK_PADDING_VMCPU(64, pdm); 181 CHECK_PADDING_VMCPU(64, iom); 182 CHECK_PADDING_VMCPU(64, dbgf); 165 183 166 184 CHECK_MEMBER_ALIGNMENT(VM, selm.s.Tss, 16); … … 207 225 CHECK_MEMBER_ALIGNMENT(VM, rem.s.StatsInQEMU, 8); 208 226 CHECK_MEMBER_ALIGNMENT(VM, rem.s.Env, 32); 209 CHECK_MEMBER_ALIGNMENT(VM, aCpus, 64); 210 211 /* vmcpu */ 212 CHECK_MEMBER_ALIGNMENT(VMCPU, cpum, 64); 213 CHECK_MEMBER_ALIGNMENT(VMCPU, vmm, 32); 214 CHECK_MEMBER_ALIGNMENT(VMCPU, pgm, 32); 215 CHECK_MEMBER_ALIGNMENT(VMCPU, em, 32); 216 CHECK_MEMBER_ALIGNMENT(VMCPU, hwaccm, 32); 217 CHECK_MEMBER_ALIGNMENT(VMCPU, tm, 32); 218 CHECK_SIZE_ALIGNMENT(VMCPU, 32); 227 228 /* the VMCPUs are page aligned TLB hit reassons. */ 229 CHECK_MEMBER_ALIGNMENT(VM, aCpus, 4096); 230 CHECK_SIZE_ALIGNMENT(VMCPU, 4096); 219 231 220 232 /* cpumctx */ … … 268 280 /* pdm */ 269 281 CHECK_MEMBER_ALIGNMENT(PDMDEVINS, achInstanceData, 64); 270 CHECK_PADDING(PDMDEVINS, Internal );282 CHECK_PADDING(PDMDEVINS, Internal, 1); 271 283 CHECK_MEMBER_ALIGNMENT(PDMUSBINS, achInstanceData, 16); 272 CHECK_PADDING(PDMUSBINS, Internal );284 CHECK_PADDING(PDMUSBINS, Internal, 1); 273 285 CHECK_MEMBER_ALIGNMENT(PDMDRVINS, achInstanceData, 16); 274 CHECK_PADDING(PDMDRVINS, Internal );286 CHECK_PADDING(PDMDRVINS, Internal, 1); 275 287 CHECK_PADDING2(PDMCRITSECT); 276 288 CHECK_MEMBER_ALIGNMENT(PGMPOOLPAGE, idx, sizeof(uint16_t));
Note:
See TracChangeset
for help on using the changeset viewer.

