svn commit: samba r7161 - in branches/SAMBA_4_0: source/build/pidl testprogs/win32/rpcecho

jelmer at samba.org jelmer at samba.org
Wed Jun 1 00:34:29 GMT 2005


Author: jelmer
Date: 2005-06-01 00:34:28 +0000 (Wed, 01 Jun 2005)
New Revision: 7161

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=7161

Log:
- Add support for "aliases" for pidls scalar types and add a few aliases.
- Define __PIDL__ when preprocessing IDL files.
- Remove a couple of useless defines from rpcecho.idl
rpcecho.idl now works in both pidl and midl 
(althought pidl is a bit pedantic and gives two warnings)

Modified:
   branches/SAMBA_4_0/source/build/pidl/idl.pm
   branches/SAMBA_4_0/source/build/pidl/idl.yp
   branches/SAMBA_4_0/source/build/pidl/typelist.pm
   branches/SAMBA_4_0/testprogs/win32/rpcecho/rpcecho.idl


Changeset:
Modified: branches/SAMBA_4_0/source/build/pidl/idl.pm
===================================================================
--- branches/SAMBA_4_0/source/build/pidl/idl.pm	2005-06-01 00:12:34 UTC (rev 7160)
+++ branches/SAMBA_4_0/source/build/pidl/idl.pm	2005-06-01 00:34:28 UTC (rev 7161)
@@ -2470,7 +2470,7 @@
 	if (! defined $cpp) {
 		$cpp = "cpp"
 	}
-	my $data = `$cpp -xc $filename`;
+	my $data = `$cpp -D__PIDL__ -xc $filename`;
 	$/ = $saved_delim;
 
     $self->YYData->{INPUT} = $data;

Modified: branches/SAMBA_4_0/source/build/pidl/idl.yp
===================================================================
--- branches/SAMBA_4_0/source/build/pidl/idl.yp	2005-06-01 00:12:34 UTC (rev 7160)
+++ branches/SAMBA_4_0/source/build/pidl/idl.yp	2005-06-01 00:34:28 UTC (rev 7161)
@@ -384,7 +384,7 @@
 	if (! defined $cpp) {
 		$cpp = "cpp"
 	}
-	my $data = `$cpp -xc $filename`;
+	my $data = `$cpp -D__PIDL__ -xc $filename`;
 	$/ = $saved_delim;
 
     $self->YYData->{INPUT} = $data;

Modified: branches/SAMBA_4_0/source/build/pidl/typelist.pm
===================================================================
--- branches/SAMBA_4_0/source/build/pidl/typelist.pm	2005-06-01 00:12:34 UTC (rev 7160)
+++ branches/SAMBA_4_0/source/build/pidl/typelist.pm	2005-06-01 00:34:28 UTC (rev 7161)
@@ -153,7 +153,7 @@
 
 	# it's a bug when a type is not in the list
 	# of known scalars or has no mapping
-	return $scalars->{$name}{C_TYPE} if defined($scalars->{$name}) and defined($scalars->{$name}{C_TYPE});
+	return $typedefs{$name}->{DATA}->{C_TYPE} if defined($typedefs{$name}) and defined($typedefs{$name}->{DATA}->{C_TYPE});
 
 	die("Unknown scalar type $name");
 }
@@ -225,14 +225,30 @@
 		$typedefs{$k} = {
 			NAME => $k,
 			TYPE => "TYPEDEF",
-			DATA => {
-				TYPE => "SCALAR",
-				NAME => $k
-			}
+			DATA => $scalars->{$k}
 		};
+		$typedefs{$k}->{DATA}->{TYPE} = "SCALAR";
+		$typedefs{$k}->{DATA}->{NAME} = $k;
 	}
 }
 
+my $aliases = {
+	"DWORD" => "uint32",
+	"int" => "int32",
+	"WORD" => "uint16",
+	"char" => "uint8",
+	"long" => "int32",
+	"short" => "int16",
+	"hyper" => "HYPER_T"
+};
+
+sub RegisterAliases()
+{
+	foreach my $k (keys %{$aliases}) {
+		$typedefs{$k} = $typedefs{$aliases->{$k}};
+	}
+}
+
 sub enum_type_fn($)
 {
 	my $enum = shift;
@@ -304,5 +320,6 @@
 }
 
 RegisterScalars();
+RegisterAliases();
 
 1;

Modified: branches/SAMBA_4_0/testprogs/win32/rpcecho/rpcecho.idl
===================================================================
--- branches/SAMBA_4_0/testprogs/win32/rpcecho/rpcecho.idl	2005-06-01 00:12:34 UTC (rev 7160)
+++ branches/SAMBA_4_0/testprogs/win32/rpcecho/rpcecho.idl	2005-06-01 00:34:28 UTC (rev 7161)
@@ -18,6 +18,10 @@
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
+#ifndef __PIDL__
+#define unistr [string] wchar_t *
+#endif
+
 [
 uuid(60a15ec5-4de8-11d7-a637-005056a20182),
 version(1.0)
@@ -45,13 +49,6 @@
 		[in] int len,
 		[out] [size_is(len)] char out_data[]
 	);
-
-#define unistr [string] wchar_t *
-#define uint8 char
-#define uint16 short
-#define uint32 long
-#define HYPER_T hyper
-
 	const long myconstant = 42;
 
 	/* test strings */
@@ -60,36 +57,35 @@
 		[out]  unistr *s2
  		);
 
-
 	/* test some alignment issues */
 	typedef struct {
-		uint8 v;
+		char v;
 	} echo_info1;
 
 	typedef struct {
-		uint16 v;
+		short v;
 	} echo_info2;
 
 	typedef struct {
-		uint32 v;
+		long v;
 	} echo_info3;
 
 	typedef struct {
-		HYPER_T v;
+		hyper v;
 	} echo_info4;
 
 	typedef struct {
-		uint8 v1;
-		HYPER_T v2;
+		char v1;
+		hyper v2;
 	} echo_info5;
 
 	typedef struct {
-		uint8 v1;
+		char v1;
 		echo_info1 info1;
 	} echo_info6;
 
 	typedef struct {
-		uint8 v1;
+		char v1;
 		echo_info4 info4;
 	} echo_info7;
 
@@ -139,13 +135,13 @@
 		);
 
 	typedef struct {
-		uint32 x;
-		[size_is(x)] uint16 surrounding[*];
+		long x;
+		[size_is(x)] short surrounding[*];
 	} echo_Surrounding;
 
 	void echo_TestSurrounding(
 		[in,out,ref] echo_Surrounding *data
 	);
 
-	uint16 echo_TestDoublePointer([in] uint16 ***data);
+	short echo_TestDoublePointer([in] short ***data);
 }



More information about the samba-cvs mailing list