From ffae01d432c715961c44e499258ee2a9f7e3d5f1 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 6 Mar 2005 17:02:14 +0000 Subject: r5672: Use switch_type() and the token storage mechanism for unions: - Makes union handling less special - Allows unions in arrays, etc - Compatible with midl - Pidl will warn about switch_type() and the type of the switch_is() variable being different (This used to be commit dc6b4ffc82a191631bc16a4b93a4916a39183ec6) --- source4/librpc/idl/drsuapi.idl | 18 +++++++++--------- source4/librpc/idl/dssetup.idl | 2 +- source4/librpc/idl/echo.idl | 4 ++-- source4/librpc/idl/lsa.idl | 4 ++-- source4/librpc/idl/netlogon.idl | 8 ++++---- source4/librpc/idl/samr.idl | 10 +++++----- source4/librpc/idl/xattr.idl | 4 ++-- 7 files changed, 25 insertions(+), 25 deletions(-) (limited to 'source4/librpc/idl') diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 72197aec16..759599e707 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -127,7 +127,7 @@ interface drsuapi uint32 unknown1; } drsuapi_DsReplicaSyncRequest1; - typedef union { + typedef [switch_type(int32)] union { [case(1)] drsuapi_DsReplicaSyncRequest1 req1; } drsuapi_DsReplicaSyncRequest; @@ -222,7 +222,7 @@ interface drsuapi [size_is(count)] drsuapi_DsNameString *names[]; } drsuapi_DsNameRequest1; - typedef union { + typedef [switch_type(int32)] union { [case(1)] drsuapi_DsNameRequest1 req1; } drsuapi_DsNameRequest; @@ -237,7 +237,7 @@ interface drsuapi [size_is(count)] drsuapi_DsNameInfo1 *array[]; } drsuapi_DsNameCtr1; - typedef union { + typedef [switch_type(int32)] union { [case(1)] drsuapi_DsNameCtr1 *ctr1; } drsuapi_DsNameCtr; @@ -264,7 +264,7 @@ interface drsuapi [size_is(count)] drsuapi_DsNameString *spn_names[]; } drsuapi_DsWriteAccountSpnRequest1; - typedef union { + typedef [switch_type(int32)] union { [case(1)] drsuapi_DsWriteAccountSpnRequest1 req1; } drsuapi_DsWriteAccountSpnRequest; @@ -272,7 +272,7 @@ interface drsuapi WERROR status; } drsuapi_DsWriteAccountSpnResult1; - typedef union { + typedef [switch_type(int32)] union { [case(1)] drsuapi_DsWriteAccountSpnResult1 res1; } drsuapi_DsWriteAccountSpnResult; @@ -298,7 +298,7 @@ interface drsuapi int32 level; /* specifies the switch level for the request */ } drsuapi_DsGetDCInfoRequest1; - typedef union { + typedef [switch_type(int32)] union { [case(1)] drsuapi_DsGetDCInfoRequest1 req1; } drsuapi_DsGetDCInfoRequest; @@ -354,7 +354,7 @@ interface drsuapi [size_is(count)] drsuapi_DsGetDCInfo01 *array[]; } drsuapi_DsGetDCInfoCtr01; - typedef union { + typedef [switch_type(int32)] union { [case(1)] drsuapi_DsGetDCInfoCtr1 ctr1; [case(2)] drsuapi_DsGetDCInfoCtr2 ctr2; [case(-1)] drsuapi_DsGetDCInfoCtr01 ctr01; @@ -416,7 +416,7 @@ interface drsuapi uint32 unknown2; } drsuapi_DsReplicaGetInfoRequest2; - typedef union { + typedef [switch_type(drsuapi_DsReplicaGetInfoLevel)] union { [case(DRSUAPI_DS_REPLICA_GET_INFO)] drsuapi_DsReplicaGetInfoRequest1 req1; [case(DRSUAPI_DS_REPLICA_GET_INFO2)] drsuapi_DsReplicaGetInfoRequest2 req2; } drsuapi_DsReplicaGetInfoRequest; @@ -628,7 +628,7 @@ interface drsuapi [size_is(count)] drsuapi_DsReplica06 array[]; } drsuapi_DsReplica06Ctr; - typedef union { + typedef [switch_type(drsuapi_DsReplicaInfoType)] union { [case(DRSUAPI_DS_REPLICA_INFO_NEIGHBORS)] drsuapi_DsReplicaNeighbourCtr *neighbours; [case(DRSUAPI_DS_REPLICA_INFO_CURSORS)] drsuapi_DsReplicaCoursorCtr *coursors; [case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA)] drsuapi_DsReplicaObjMetaDataCtr *objmetadata; diff --git a/source4/librpc/idl/dssetup.idl b/source4/librpc/idl/dssetup.idl index 9a4fcafccc..098a148904 100644 --- a/source4/librpc/idl/dssetup.idl +++ b/source4/librpc/idl/dssetup.idl @@ -72,7 +72,7 @@ DS_ROLE_OP_STATUS = 3 } dssetup_DsRoleInfoLevel; - typedef union { + typedef [switch_type(dssetup_DsRoleInfoLevel)] union { [case(DS_ROLE_BASIC_INFORMATION)] dssetup_DsRolePrimaryDomInfoBasic basic; [case(DS_ROLE_UPGRADE_STATUS)] dssetup_DsRoleUpgradeStatus upgrade; [case(DS_ROLE_OP_STATUS)] dssetup_DsRoleOpStatus opstatus; diff --git a/source4/librpc/idl/echo.idl b/source4/librpc/idl/echo.idl index e7a2571235..86e16763c2 100644 --- a/source4/librpc/idl/echo.idl +++ b/source4/librpc/idl/echo.idl @@ -75,7 +75,7 @@ interface rpcecho echo_info4 info4; } echo_info7; - typedef union { + typedef [switch_type(uint16)] union { [case(1)] echo_info1 info1; [case(2)] echo_info2 info2; [case(3)] echo_info3 info3; @@ -109,7 +109,7 @@ interface rpcecho echo_Enum1_32 e2; } echo_Enum2; - typedef union { + typedef [switch_type(echo_Enum1)] union { [case(ECHO_ENUM1)] echo_Enum1 e1; [case(ECHO_ENUM2)] echo_Enum2 e2; } echo_Enum3; diff --git a/source4/librpc/idl/lsa.idl b/source4/librpc/idl/lsa.idl index 8b20b6db90..68adcf1d9d 100644 --- a/source4/librpc/idl/lsa.idl +++ b/source4/librpc/idl/lsa.idl @@ -191,7 +191,7 @@ LSA_POLICY_INFO_DNS=12 } lsaPolicyInfo; - typedef union { + typedef [switch_type(uint16)] union { [case(LSA_POLICY_INFO_AUDIT_LOG)] lsa_AuditLogInfo audit_log; [case(LSA_POLICY_INFO_AUDIT_EVENTS)] lsa_AuditEventsInfo audit_events; [case(LSA_POLICY_INFO_DOMAIN)] lsa_DomainInfo domain; @@ -515,7 +515,7 @@ lsa_TrustDomainInfoAuthInfo auth_info; } lsa_TrustDomainInfoInfoAll; - typedef union { + typedef [switch_type(lsa_TrustDomInfoEnum)] union { [case(LSA_TRUSTED_DOMAIN_INFO_NAME)] lsa_TrustDomainInfoName name; [case(LSA_TRUSTED_DOMAIN_INFO_POSIX_OFFSET)] lsa_TrustDomainInfoPosixOffset posix_offset; [case(LSA_TRUSTED_DOMAIN_INFO_PASSWORD)] lsa_TrustDomainInfoPassword password; diff --git a/source4/librpc/idl/netlogon.idl b/source4/librpc/idl/netlogon.idl index 5a7477bdfb..b99f13638d 100644 --- a/source4/librpc/idl/netlogon.idl +++ b/source4/librpc/idl/netlogon.idl @@ -118,7 +118,7 @@ interface netlogon netr_ChallengeResponse lm; } netr_NetworkInfo; - typedef union { + typedef [switch_type(uint16)] union { [case(1)] netr_PasswordInfo *password; [case(2)] netr_NetworkInfo *network; [case(3)] netr_PasswordInfo *password; @@ -208,7 +208,7 @@ interface netlogon netr_String unknown4; } netr_PacInfo; - typedef union { + typedef [switch_type(uint16)] union { [case(2)] netr_SamInfo2 *sam2; [case(3)] netr_SamInfo3 *sam3; [case(4)] netr_PacInfo *pac; @@ -613,7 +613,7 @@ interface netlogon NETR_DELTA_MODIFY_COUNT = 22 } netr_DeltaEnum; - typedef union { + typedef [switch_type(netr_DeltaEnum)] union { [case(NETR_DELTA_DOMAIN)] netr_DELTA_DOMAIN *domain; [case(NETR_DELTA_GROUP)] netr_DELTA_GROUP *group; [case(NETR_DELTA_DELETE_GROUP)] ; /* rid only */ @@ -638,7 +638,7 @@ interface netlogon [case(NETR_DELTA_MODIFY_COUNT)] udlong *modified_count; } netr_DELTA_UNION; - typedef union { + typedef [switch_type(netr_DeltaEnum)] union { [case(NETR_DELTA_DOMAIN)] uint32 rid; [case(NETR_DELTA_GROUP)] uint32 rid; [case(NETR_DELTA_DELETE_GROUP)] uint32 rid; diff --git a/source4/librpc/idl/samr.idl b/source4/librpc/idl/samr.idl index 85f032c414..e8b269dc66 100644 --- a/source4/librpc/idl/samr.idl +++ b/source4/librpc/idl/samr.idl @@ -202,7 +202,7 @@ uint32 unknown2; } samr_DomInfo13; - typedef union { + typedef [switch_type(uint16)] union { [case(1)] samr_DomInfo1 info1; [case(2)] samr_DomInfo2 info2; [case(3)] samr_DomInfo3 info3; @@ -383,7 +383,7 @@ GROUPINFOALL2 = 5 } samr_GroupInfoEnum; - typedef union { + typedef [switch_type(samr_GroupInfoEnum)] union { [case(GROUPINFOALL)] samr_GroupInfoAll all; [case(GROUPINFONAME)] samr_String name; [case(GROUPINFOX)] samr_GroupInfoX unknown; @@ -482,7 +482,7 @@ ALIASINFODESCRIPTION = 3 } samr_AliasInfoEnum; - typedef union { + typedef [switch_type(samr_AliasInfoEnum)] union { [case(ALIASINFOALL)] samr_AliasInfoAll all; [case(ALIASINFONAME)] samr_String name; [case(ALIASINFODESCRIPTION)] samr_String description; @@ -745,7 +745,7 @@ uint8 pw_len; } samr_UserInfo26; - typedef union { + typedef [switch_type(uint16)] union { [case(1)] samr_UserInfo1 info1; [case(2)] samr_UserInfo2 info2; [case(3)] samr_UserInfo3 info3; @@ -873,7 +873,7 @@ [size_is(count)] samr_DispEntryAscii *entries[]; } samr_DispInfoAscii; - typedef union { + typedef [switch_type(uint16)] union { [case(1)] samr_DispInfoGeneral info1;/* users */ [case(2)] samr_DispInfoFull info2; /* trust accounts? */ [case(3)] samr_DispInfoFull info3; /* groups */ diff --git a/source4/librpc/idl/xattr.idl b/source4/librpc/idl/xattr.idl index 84d055ea88..4aa92ca5b2 100644 --- a/source4/librpc/idl/xattr.idl +++ b/source4/librpc/idl/xattr.idl @@ -44,7 +44,7 @@ interface xattr utf8string name; /* will be used for case-insensitive speedup */ } xattr_DosInfo2; - typedef union { + typedef [switch_type(uint16)] union { [case(1)] xattr_DosInfo1 info1; [case(2)] xattr_DosInfo2 info2; } xattr_DosInfo; @@ -102,7 +102,7 @@ interface xattr */ const string XATTR_NTACL_NAME = "security.NTACL"; - typedef union { + typedef [switch_type(uint16)] union { [case(1)] security_descriptor *sd; } xattr_NTACL_Info; -- cgit