1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-26 10:04:02 +03:00

36 Commits

Author SHA1 Message Date
Jelmer Vernooij
d1f754a0a3 r8274: Export some more symbols. 2007-10-10 13:19:29 -05:00
Jelmer Vernooij
c620095692 r8264: - Use standard perl package structure for pidl.
- Only "use" pidl modules in the main executable when necessary

Try 'make install' in build/pidl to install the package (should work stand-alone).
2007-10-10 13:19:27 -05:00
Jelmer Vernooij
6731e0a654 r7161: - 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)
2007-10-10 13:17:21 -05:00
Jelmer Vernooij
2b08c4b92b r7059: Use namespaces for pidl and the build system, so we can later on
call out to the build system to compile the various pidl tests
(without having to rely on shared library support).

Initial work on an ndr_array test.
2007-10-10 13:17:10 -05:00
Jelmer Vernooij
86de98ee09 r7036: Allow more operations in several properties (such as size_is, length_is,
switch_is, etc) and simplify the code involved
2007-10-10 13:17:07 -05:00
Jelmer Vernooij
a34f848b02 r7022: Add support for parsing definitions of multi-dimension arrays.
This will also be required for supporting
parsing pointers to arrays and arrays of pointers simultaneously.
2007-10-10 13:17:07 -05:00
Jelmer Vernooij
13cf227615 r6973: Merge new version of pidl into the main SAMBA_4_0 branch.
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:

IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }

This makes the ndr_parser.pm internals much more sane.

Other changes include:

- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
  most other IDL compilers). This can be overridden using the
  default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
  is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
  useful for making sure IDL files work with other IDL compilers.

oh, and there's probably some other things I can't think of right now..
2007-10-10 13:17:01 -05:00
Jelmer Vernooij
6bf8126ae9 r6926: More build farm fixes:
- Warn about unknown attributes in .mk
 - Remove more unused functions
2007-10-10 13:16:57 -05:00
Stefan Metzmacher
f3c64120a1 r6098: fix parsing of empty union cases
metze
2007-10-10 13:11:19 -05:00
Jelmer Vernooij
3110c2ec44 r5486: - Use references to interfaces in coclasses rather then
full interfaces.
- Couple of bugfixes in odl.pm
- First use of multiple pointers in dcom.idl
2007-10-10 13:10:49 -05:00
Jelmer Vernooij
a339765d99 r5479: Add ODL input support.
The ODL module can convert an ODL structure to an IDL structure so that:
 - The COM subsystem can use the ODL structure
 - The DCE/RPC subsystem can use the IDL structure
2007-10-10 13:10:49 -05:00
Jelmer Vernooij
efc2e41b8d r5376: ORPC is NDR specific, so move it to ndr.pm.
Get rid of register_enum/register_bitmap, etc. (use list of
types in ndr.pm instead)
2007-10-10 13:09:48 -05:00
Jelmer Vernooij
95c4f31499 r5338: More efforts to handle types similarly. 2007-10-10 13:09:44 -05:00
Jelmer Vernooij
6a0f599f82 r5320: Treat structs and unions somewhat more similarly:
- use same names in hashes (DATA -> ELEMENTS, etc)
 - [case()] and [default] are no longer special case, they're just regular properties
2007-10-10 13:09:41 -05:00
Andrew Tridgell
f65f239978 r4884: - 2nd part of support ndr_size_ generation on unions as well as structures
- added "nopull" and "nopush" flags, to allow for externally written parsers for sub-structures
2007-10-10 13:09:01 -05:00
Stefan Metzmacher
a8d61aa473 r4551: add support for a pidl extensions
'declare bitmap foo1;'
'declare enum foo2;'

and also allow

typedef [public] bitmap ...
typedef [public] enum ...

you need to a forward declaration of bitmaps and enums

when you want to use them in another idl file,
and you need to make the real declaration to be public

see the next commit to samr.idl and netlogon.idl

metze
2007-10-10 13:08:26 -05:00
Stefan Metzmacher
192f249546 r4533: parsing support for:
typedef [bitmap16bit] bitmap {
	FLAG1 = 0x0001,
	FLAG2 = 0x8000
} fooflags;

metze
2007-10-10 13:08:19 -05:00
Andrew Tridgell
73d5a033e8 r4522: PROPERTIES are now handled at the typedef level 2007-10-10 13:08:18 -05:00
Andrew Tridgell
1852033f2e r4518: added proper support for "typedef enum" in pidl. We can now use enums as types in switch
statements and variable types, and the value will be printed with its string name and value
2007-10-10 13:08:17 -05:00
Stefan Metzmacher
7264a2227d r3998: allow const arrays (see next commit to drsuapi.idl)
metze
2007-10-10 13:06:12 -05:00
Jelmer Vernooij
7484b9be74 r3667: Small COM fixes 2007-10-10 13:05:43 -05:00
Jelmer Vernooij
8693344772 r3611: DCOM client support works!!
The torture test DCOM-SIMPLE now successfully does an
IStream_Read and a IStream_Write call.

This test can now be run successfully against the "Simple DCOM" Visual
Studio example.

(You have to quote out line 337 in pidl. pidl complains if the variable
 that contains the array size follows the array. I still need to fix this
 properly)

Next goals:
 - Clean up code
 - Server side support
 - Support custom marshalling
 - Support DCOM interfaces in files other then dcom.idl
2007-10-10 13:05:39 -05:00
Jelmer Vernooij
c052f2e1ed r3513: Add (the infrastructure for) DCOM support. Contents:
- Support for sending over the object UUID in DCERPC calls
 - Simple torture test for the DCOM "Simple" object
 - Generate extra argument for "object" interfaces in pidl
 - Some stubs for common DCOM functions
2007-10-10 13:05:23 -05:00
Jelmer Vernooij
05dd840b6f r3440: Add support for "coclass" to the pidl parser - the idl keyword that
describes a COM class.  A coclass is the implementation of one or more
interfaces. It has a UUID referred to as it's CLSID (Class ID).

Also adding an example coclass called "CoffeeMachine". You can give
it a string (or a cup, whatever you like ;-) and it will fill it with
"COFFEE" (kind of the like the echo pipe is for regular RPC). CoffeeMachine's
Windows implementation already works, a torture test for Samba will follow
soon.
2007-10-10 13:05:11 -05:00
Jelmer Vernooij
edbd789abb r3431: Allow optional semicolon after interface definitions 2007-10-10 13:05:10 -05:00
Jelmer Vernooij
ab2a788fe7 r2973: Allow comma's inside parentheses in property arguments 2007-10-10 12:59:53 -05:00
Jelmer Vernooij
ef0fc269f0 r1838: Updates from the airplane:
- IDL fixes + adding comments
 - Start working on dcom infrastructure
2007-10-10 12:58:00 -05:00
Jelmer Vernooij
45c3d0036b r1736: - Pidl updates:
- Support for "object oriented" interfaces in pidl
 - Support for inherited interfaces in pidl
 - Simplification of the support for properties on an interface
- Start on dcom rpc torture tests
2007-10-10 12:57:51 -05:00
Jelmer Vernooij
6857efaccc r738: Use same error message format as is used by compilers when reporting
syntax errors (some editors parse these strings and jump to the erroneous
			   line directly)
2007-10-10 12:53:46 -05:00
Andrew Tridgell
003c6c493b cope with different cpp formatting on some systems, and make sure we
don't loop forever if we get a cpp format line we don't understand
-
Andrew Tridgell
c47e88dabf use the @CPP@ value from configure if possible when determining cpp in
pidl
-
Andrew Tridgell
66e648f20f lets see if "cc -E" keeps more of the build farm happy then "cpp"
We'll probably need a configure entry for this
-
Andrew Tridgell
2b1300386d commit idl.pm now, as many build farm machines don't have 'yapp' -
Andrew Tridgell
be2c2be459 * reduced the number of grammer conflicts a lot using (arbitrary)
precedence rules

 * build a standalone parser. When we come to distributing Samba4 we
   can just include idl.pm and other developers won't need Parse::Yapp
   installed

 * avoid the recursive make in most cases in build_idl.sh
-
Andrew Tridgell
788f6c44db a bit more speed and better line matching in errors -
Andrew Tridgell
4bbaffeb44 re-wrote pidl to use Parse::Yapp instead of Parse::RecDescent, This
makes pidl about 3x faster, and also gives us much better error
reporting and a more standard grammer definition that will be much
easier to code in lex/yacc if we want to do so at a later
date. (Parse::Yapp uses essentially the same grammer file as lex/yacc)

It also means we no longer need Parse::RecDescent, which should make
pidl much more portable.
-