union _IOMMU_SVM_CAPABILITIES { struct { unsigned long AtsCapability : 1;/* 0x0:0 4 */ unsigned long PriCapability : 1;/* 0x0:1 4 */ unsigned long PasidCapability : 1;/* 0x0:2 4 */ unsigned long Rsvd0 : 29;/* 0x0:3 4 */ };/* 0x0 4 */ struct { unsigned long Padding : 3;/* 0x0:0 4 */ unsigned long PasidMaxWidth : 5;/* 0x0:3 4 */ unsigned long PasidExePerm : 1;/* 0x0:8 4 */ unsigned long PasidPrivMode : 1;/* 0x0:9 4 */ unsigned long AtsPageAlignedRequest : 1;/* 0x0:10 4 */ unsigned long AtsGlobalInvalidate : 1;/* 0x0:11 4 */ unsigned long AtsInvalidateQueueDepth : 5;/* 0x0:12 4 */ unsigned long PriPrgResponsePasidRequired : 1;/* 0x0:17 4 */ unsigned long Rsvd : 14;/* 0x0:18 4 */ } CapReg;/* 0x0 4 */ struct { unsigned long Padding : 18;/* 0x0:0 4 */ unsigned long AtsEnable : 1;/* 0x0:18 4 */ unsigned long PriEnable : 1;/* 0x0:19 4 */ unsigned long PasidEnable : 1;/* 0x0:20 4 */ unsigned long ExecutePermissionEnable : 1;/* 0x0:21 4 */ unsigned long PrivilegedModeEnable : 1;/* 0x0:22 4 */ unsigned long Rsvd : 9;/* 0x0:23 4 */ } EnabledCaps;/* 0x0 4 */ struct { unsigned long Padding : 23;/* 0x0:0 4 */ unsigned long IsSecureDevice : 1;/* 0x0:23 4 */ unsigned long Rsvd : 8;/* 0x0:24 4 */ } DeviceInformation;/* 0x0 4 */ struct { unsigned long AtsPriPasidBits : 3;/* 0x0:0 4 */ unsigned long CapRegBits : 15;/* 0x0:3 4 */ unsigned long EnabledCapsBits : 5;/* 0x0:18 4 */ unsigned long DeviceInformationBits : 1;/* 0x0:23 4 */ unsigned long Rsvd1 : 8;/* 0x0:24 4 */ };/* 0x0 4 */ unsigned long AsULONG;/* 0x0 4 */};size 4 (0x4)13 members0 holespadding 01 cacheline
Used in (2)