[PATCH 2/7] include: Add a macro to paper over LP64/LLP64 differences for numeric constants.
Michael Stefaniuc
mstefani at redhat.de
Wed Oct 26 16:45:45 CDT 2011
Based on an idea by Kai Tietz.
---
include/winnt.h | 173 +++++++++++++++++++++++++++++--------------------------
1 files changed, 91 insertions(+), 82 deletions(-)
diff --git a/include/winnt.h b/include/winnt.h
index 541d2d0..14b3bbc 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -497,6 +497,15 @@ typedef BYTE FCHAR;
typedef WORD FSHORT;
typedef DWORD FLONG;
+/* Macro to deal with LP64 <=> LLP64 differences in numeric constants with 'l' modifier */
+#ifndef __MSABI_LONG
+#if defined(__MSC_VER) || defined(__MINGW32__)
+#define __MSABI_LONG(x) x ## l
+#else
+#define __MSABI_LONG(x) x
+#endif
+#endif
+
/* Defines */
#ifndef WIN32_NO_STATUS
@@ -4105,9 +4114,9 @@ typedef struct _SID_AND_ATTRIBUTES {
} SID_AND_ATTRIBUTES, *PSID_AND_ATTRIBUTES;
/* security entities */
-#define SECURITY_NULL_RID (0x00000000L)
-#define SECURITY_WORLD_RID (0x00000000L)
-#define SECURITY_LOCAL_RID (0X00000000L)
+#define SECURITY_NULL_RID __MSABI_LONG(0x00000000)
+#define SECURITY_WORLD_RID __MSABI_LONG(0x00000000)
+#define SECURITY_LOCAL_RID __MSABI_LONG(0X00000000)
#define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0}
@@ -4119,97 +4128,97 @@ typedef struct _SID_AND_ATTRIBUTES {
/* S-1-3 */
#define SECURITY_CREATOR_SID_AUTHORITY {0,0,0,0,0,3}
-#define SECURITY_CREATOR_OWNER_RID (0x00000000L)
-#define SECURITY_CREATOR_GROUP_RID (0x00000001L)
-#define SECURITY_CREATOR_OWNER_SERVER_RID (0x00000002L)
-#define SECURITY_CREATOR_GROUP_SERVER_RID (0x00000003L)
+#define SECURITY_CREATOR_OWNER_RID __MSABI_LONG(0x00000000)
+#define SECURITY_CREATOR_GROUP_RID __MSABI_LONG(0x00000001)
+#define SECURITY_CREATOR_OWNER_SERVER_RID __MSABI_LONG(0x00000002)
+#define SECURITY_CREATOR_GROUP_SERVER_RID __MSABI_LONG(0x00000003)
/* S-1-4 */
#define SECURITY_NON_UNIQUE_AUTHORITY {0,0,0,0,0,4}
/* S-1-5 */
#define SECURITY_NT_AUTHORITY {0,0,0,0,0,5}
-#define SECURITY_DIALUP_RID 0x00000001L
-#define SECURITY_NETWORK_RID 0x00000002L
-#define SECURITY_BATCH_RID 0x00000003L
-#define SECURITY_INTERACTIVE_RID 0x00000004L
-#define SECURITY_LOGON_IDS_RID 0x00000005L
-#define SECURITY_SERVICE_RID 0x00000006L
-#define SECURITY_ANONYMOUS_LOGON_RID 0x00000007L
-#define SECURITY_PROXY_RID 0x00000008L
-#define SECURITY_ENTERPRISE_CONTROLLERS_RID 0x00000009L
+#define SECURITY_DIALUP_RID __MSABI_LONG(0x00000001)
+#define SECURITY_NETWORK_RID __MSABI_LONG(0x00000002)
+#define SECURITY_BATCH_RID __MSABI_LONG(0x00000003)
+#define SECURITY_INTERACTIVE_RID __MSABI_LONG(0x00000004)
+#define SECURITY_LOGON_IDS_RID __MSABI_LONG(0x00000005)
+#define SECURITY_SERVICE_RID __MSABI_LONG(0x00000006)
+#define SECURITY_ANONYMOUS_LOGON_RID __MSABI_LONG(0x00000007)
+#define SECURITY_PROXY_RID __MSABI_LONG(0x00000008)
+#define SECURITY_ENTERPRISE_CONTROLLERS_RID __MSABI_LONG(0x00000009)
#define SECURITY_SERVER_LOGON_RID SECURITY_ENTERPRISE_CONTROLLERS_RID
-#define SECURITY_PRINCIPAL_SELF_RID 0x0000000AL
-#define SECURITY_AUTHENTICATED_USER_RID 0x0000000BL
-#define SECURITY_RESTRICTED_CODE_RID 0x0000000CL
-#define SECURITY_TERMINAL_SERVER_RID 0x0000000DL
-#define SECURITY_REMOTE_LOGON_RID 0x0000000EL
-#define SECURITY_THIS_ORGANIZATION_RID 0x0000000FL
-#define SECURITY_LOCAL_SYSTEM_RID 0x00000012L
-#define SECURITY_LOCAL_SERVICE_RID 0x00000013L
-#define SECURITY_NETWORK_SERVICE_RID 0x00000014L
-#define SECURITY_NT_NON_UNIQUE 0x00000015L
-#define SECURITY_BUILTIN_DOMAIN_RID 0x00000020L
-
-#define SECURITY_PACKAGE_BASE_RID 0x00000040L
-#define SECURITY_PACKAGE_NTLM_RID 0x0000000AL
-#define SECURITY_PACKAGE_SCHANNEL_RID 0x0000000EL
-#define SECURITY_PACKAGE_DIGEST_RID 0x00000015L
-#define SECURITY_MAX_ALWAYS_FILTERED 0x000003E7L
-#define SECURITY_MIN_NEVER_FILTERED 0x000003E8L
-#define SECURITY_OTHER_ORGANIZATION_RID 0x000003E8L
-
-#define FOREST_USER_RID_MAX 0x000001F3L
-#define DOMAIN_USER_RID_ADMIN 0x000001F4L
-#define DOMAIN_USER_RID_GUEST 0x000001F5L
-#define DOMAIN_USER_RID_KRBTGT 0x000001F6L
-#define DOMAIN_USER_RID_MAX 0x000003E7L
-
-#define DOMAIN_GROUP_RID_ADMINS 0x00000200L
-#define DOMAIN_GROUP_RID_USERS 0x00000201L
-#define DOMAIN_GROUP_RID_GUESTS 0x00000202L
-#define DOMAIN_GROUP_RID_COMPUTERS 0x00000203L
-#define DOMAIN_GROUP_RID_CONTROLLERS 0x00000204L
-#define DOMAIN_GROUP_RID_CERT_ADMINS 0x00000205L
-#define DOMAIN_GROUP_RID_SCHEMA_ADMINS 0x00000206L
-#define DOMAIN_GROUP_RID_ENTERPRISE_ADMINS 0x00000207L
-#define DOMAIN_GROUP_RID_POLICY_ADMINS 0x00000208L
+#define SECURITY_PRINCIPAL_SELF_RID __MSABI_LONG(0x0000000A)
+#define SECURITY_AUTHENTICATED_USER_RID __MSABI_LONG(0x0000000B)
+#define SECURITY_RESTRICTED_CODE_RID __MSABI_LONG(0x0000000C)
+#define SECURITY_TERMINAL_SERVER_RID __MSABI_LONG(0x0000000D)
+#define SECURITY_REMOTE_LOGON_RID __MSABI_LONG(0x0000000E)
+#define SECURITY_THIS_ORGANIZATION_RID __MSABI_LONG(0x0000000F)
+#define SECURITY_LOCAL_SYSTEM_RID __MSABI_LONG(0x00000012)
+#define SECURITY_LOCAL_SERVICE_RID __MSABI_LONG(0x00000013)
+#define SECURITY_NETWORK_SERVICE_RID __MSABI_LONG(0x00000014)
+#define SECURITY_NT_NON_UNIQUE __MSABI_LONG(0x00000015)
+#define SECURITY_BUILTIN_DOMAIN_RID __MSABI_LONG(0x00000020)
+
+#define SECURITY_PACKAGE_BASE_RID __MSABI_LONG(0x00000040)
+#define SECURITY_PACKAGE_NTLM_RID __MSABI_LONG(0x0000000A)
+#define SECURITY_PACKAGE_SCHANNEL_RID __MSABI_LONG(0x0000000E)
+#define SECURITY_PACKAGE_DIGEST_RID __MSABI_LONG(0x00000015)
+#define SECURITY_MAX_ALWAYS_FILTERED __MSABI_LONG(0x000003E7)
+#define SECURITY_MIN_NEVER_FILTERED __MSABI_LONG(0x000003E8)
+#define SECURITY_OTHER_ORGANIZATION_RID __MSABI_LONG(0x000003E8)
+
+#define FOREST_USER_RID_MAX __MSABI_LONG(0x000001F3)
+#define DOMAIN_USER_RID_ADMIN __MSABI_LONG(0x000001F4)
+#define DOMAIN_USER_RID_GUEST __MSABI_LONG(0x000001F5)
+#define DOMAIN_USER_RID_KRBTGT __MSABI_LONG(0x000001F6)
+#define DOMAIN_USER_RID_MAX __MSABI_LONG(0x000003E7)
+
+#define DOMAIN_GROUP_RID_ADMINS __MSABI_LONG(0x00000200)
+#define DOMAIN_GROUP_RID_USERS __MSABI_LONG(0x00000201)
+#define DOMAIN_GROUP_RID_GUESTS __MSABI_LONG(0x00000202)
+#define DOMAIN_GROUP_RID_COMPUTERS __MSABI_LONG(0x00000203)
+#define DOMAIN_GROUP_RID_CONTROLLERS __MSABI_LONG(0x00000204)
+#define DOMAIN_GROUP_RID_CERT_ADMINS __MSABI_LONG(0x00000205)
+#define DOMAIN_GROUP_RID_SCHEMA_ADMINS __MSABI_LONG(0x00000206)
+#define DOMAIN_GROUP_RID_ENTERPRISE_ADMINS __MSABI_LONG(0x00000207)
+#define DOMAIN_GROUP_RID_POLICY_ADMINS __MSABI_LONG(0x00000208)
#define SECURITY_MANDATORY_LABEL_AUTHORITY {0,0,0,0,0,16}
-#define SECURITY_MANDATORY_UNTRUSTED_RID 0x00000000L
-#define SECURITY_MANDATORY_LOW_RID 0x00001000L
-#define SECURITY_MANDATORY_MEDIUM_RID 0x00002000L
-#define SECURITY_MANDATORY_HIGH_RID 0x00003000L
-#define SECURITY_MANDATORY_SYSTEM_RID 0x00004000L
-#define SECURITY_MANDATORY_PROTECTED_PROCESS_RID 0x00005000L
-
-#define DOMAIN_ALIAS_RID_ADMINS 0x00000220L
-#define DOMAIN_ALIAS_RID_USERS 0x00000221L
-#define DOMAIN_ALIAS_RID_GUESTS 0x00000222L
-#define DOMAIN_ALIAS_RID_POWER_USERS 0x00000223L
-
-#define DOMAIN_ALIAS_RID_ACCOUNT_OPS 0x00000224L
-#define DOMAIN_ALIAS_RID_SYSTEM_OPS 0x00000225L
-#define DOMAIN_ALIAS_RID_PRINT_OPS 0x00000226L
-#define DOMAIN_ALIAS_RID_BACKUP_OPS 0x00000227L
-
-#define DOMAIN_ALIAS_RID_REPLICATOR 0x00000228L
-#define DOMAIN_ALIAS_RID_RAS_SERVERS 0x00000229L
-#define DOMAIN_ALIAS_RID_PREW2KCOMPACCESS 0x0000022AL
-#define DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS 0x0000022BL
-#define DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS 0x0000022CL
-#define DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS 0x0000022DL
-
-#define DOMAIN_ALIAS_RID_MONITORING_USERS 0x0000022EL
-#define DOMAIN_ALIAS_RID_LOGGING_USERS 0x0000022FL
-#define DOMAIN_ALIAS_RID_AUTHORIZATIONACCESS 0x00000230L
-#define DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS 0x00000231L
-#define DOMAIN_ALIAS_RID_DCOM_USERS 0x00000232L
+#define SECURITY_MANDATORY_UNTRUSTED_RID __MSABI_LONG(0x00000000)
+#define SECURITY_MANDATORY_LOW_RID __MSABI_LONG(0x00001000)
+#define SECURITY_MANDATORY_MEDIUM_RID __MSABI_LONG(0x00002000)
+#define SECURITY_MANDATORY_HIGH_RID __MSABI_LONG(0x00003000)
+#define SECURITY_MANDATORY_SYSTEM_RID __MSABI_LONG(0x00004000)
+#define SECURITY_MANDATORY_PROTECTED_PROCESS_RID __MSABI_LONG(0x00005000)
+
+#define DOMAIN_ALIAS_RID_ADMINS __MSABI_LONG(0x00000220)
+#define DOMAIN_ALIAS_RID_USERS __MSABI_LONG(0x00000221)
+#define DOMAIN_ALIAS_RID_GUESTS __MSABI_LONG(0x00000222)
+#define DOMAIN_ALIAS_RID_POWER_USERS __MSABI_LONG(0x00000223)
+
+#define DOMAIN_ALIAS_RID_ACCOUNT_OPS __MSABI_LONG(0x00000224)
+#define DOMAIN_ALIAS_RID_SYSTEM_OPS __MSABI_LONG(0x00000225)
+#define DOMAIN_ALIAS_RID_PRINT_OPS __MSABI_LONG(0x00000226)
+#define DOMAIN_ALIAS_RID_BACKUP_OPS __MSABI_LONG(0x00000227)
+
+#define DOMAIN_ALIAS_RID_REPLICATOR __MSABI_LONG(0x00000228)
+#define DOMAIN_ALIAS_RID_RAS_SERVERS __MSABI_LONG(0x00000229)
+#define DOMAIN_ALIAS_RID_PREW2KCOMPACCESS __MSABI_LONG(0x0000022A)
+#define DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS __MSABI_LONG(0x0000022B)
+#define DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS __MSABI_LONG(0x0000022C)
+#define DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS __MSABI_LONG(0x0000022D)
+
+#define DOMAIN_ALIAS_RID_MONITORING_USERS __MSABI_LONG(0x0000022E)
+#define DOMAIN_ALIAS_RID_LOGGING_USERS __MSABI_LONG(0x0000022F)
+#define DOMAIN_ALIAS_RID_AUTHORIZATIONACCESS __MSABI_LONG(0x00000230)
+#define DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS __MSABI_LONG(0x00000231)
+#define DOMAIN_ALIAS_RID_DCOM_USERS __MSABI_LONG(0x00000232)
#define SECURITY_SERVER_LOGON_RID SECURITY_ENTERPRISE_CONTROLLERS_RID
-#define SECURITY_PACKAGE_RID_COUNT 2L
-#define SECURITY_LOGON_IDS_RID_COUNT 3L
+#define SECURITY_PACKAGE_RID_COUNT __MSABI_LONG(2)
+#define SECURITY_LOGON_IDS_RID_COUNT __MSABI_LONG(3)
typedef enum {
WinNullSid = 0,
--
1.7.6.4
More information about the wine-patches
mailing list