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