summaryrefslogtreecommitdiff
path: root/source4/build/pidl/pidl.pl
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r5490: The big (D)COM commit! :-) Contains most of the changes described in theJelmer Vernooij1-49/+69
DCOM paper in lorikeet. This is the result of 1.5 months work (mainly figuring out how things *really* work) at the end of 2004. In general: - Clearer distinction between COM and DCOM. DCOM is now merely the glue between DCE/RPC+ORPC and COM. COM can also work without DCOM now. This makes the code a lot clearer. - Clearer distinction between NDR and DCOM. Before, NDR had a couple of "if"s to cope with DCOM, which are now gone. - Use "real" arguments rather then structures for function arguments in COM, mainly because most of these calls are local so packing/unpacking data for every call is too much overhead (both speed- and code-wise) - Support several mechanisms to load class objects: - from memory (e.g. part of the current executable, registered at start-up) - from shared object files - remotely - Most things are now also named COM rather then DCOM because that's what it really is. After an object is created, it no longer matters whether it was created locally or remotely. There is a very simple example class that contains both a class factory and a class that implements the IStream interface. It can be tested (locally only, remotely is broken at the moment) by running the COM-SIMPLE smbtorture test. Still to-do: - Autogenerate parts of the class implementation code (using the coclass definitions in IDL) - Test server-side - Implement some of the common classes, add definitions for common interfaces. (This used to be commit 71fd3e5c3aac5f0002001ab29d2248e6c6842d6f)
2007-10-10r5479: Add ODL input support.Jelmer Vernooij1-0/+10
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 (This used to be commit a339765d99c90c46f29e2bd71a6aa271febb096d)
2007-10-10r5477: - Move some more of the typelist stuff out of ndr.pmJelmer Vernooij1-0/+5
- Remember INTERFACEs as well (they can be types in DCOM) (This used to be commit d914cd1804636eb1a34805d48c18e016835e973b)
2007-10-10r5319: Make some more alignment code generic, move NDR-specific stuff toJelmer Vernooij1-3/+3
parser.pm (now renamed to ndr.pm). (This used to be commit a469a5fefb4e6941264c11f4bde60eab71f6f7aa)
2007-10-10r5073: Call new autogenerator function for swig stuff instead of old one.Tim Potter1-6/+6
(This used to be commit a1c98101e4ebdcc4a9504d401a9d34c88c797e6e)
2007-10-10r5044: fix pidl--swigStefan Metzmacher1-1/+1
metze (This used to be commit 030bfd8d7feb16fd6d5117d17913b77b1468a507)
2007-10-10r5024: Fix build.Tim Potter1-7/+1
(This used to be commit 425b988541fa669e7f2905fe959522f2d2d50da1)
2007-10-10r5019: Some tweaks to building the swig .i files.Tim Potter1-7/+12
(This used to be commit c252a286efcb9ca2024c8d234c8a65855522fb25)
2007-10-10r4599: Remove some duplicated code in pidl.pl.Tim Potter1-20/+8
Start working on adding support for bitmaps and enums. In progress tweaks for arrays of structures. (This used to be commit d39cb7ecb4c193cbba628ee6d6f9b5c5bbf89d33)
2007-10-10r4469: Version n + 1 of the pidl ethereal parser generator. This version isTim Potter1-9/+17
based on the idea of manipulating the .c and .h files generated by parser.pm with perl regexps and glueing it all together to make an ethereal plugin. I thought this was a pretty crazy idea to start off with but it has turned out to be not as complicated as I thought and has the huge advantage of not duplicating any of the difficult code in parser.pm. (This used to be commit 7007522f83740f41f9a47f5ad5942ea46320d405)
2007-10-10r3881: Split up the LIBNDR_GEN subsystem into NDR_* and RPC_NDR_* subsystems.Jelmer Vernooij1-5/+22
This reduces the total size of the samba binaries from 119 Mb to 73 Mb. Next step will be to have the build system obtain some of this information by itself, so that we don't have to write ~10 lines per interface manually. (This used to be commit 16d905f6b0cbec591eebc44ee2ac9516a5730378)
2007-10-10r3861: - Put ndr and rpc client code in seperate filesJelmer Vernooij1-0/+29
- Add some const (This used to be commit a00bda88e1b6abdc36e5aa8c2a35f64855f67c96)
2007-10-10r3689: Large number of COM updates:Jelmer Vernooij1-1/+12
- Work on server side and local COM support (should work, just no example classes yet) - Use vtables so that local and remote calls can be used transparently - Generate 'proxies and stubs' rather then heavily modified code in client.pm and server.pm. proxies (client side code) are generated in proxy.pm, stubs (server side dispatchers) are generated in stubs.pm - Support registering classes and interfaces - DCOM interfaces no longer have to be in the same IDL file as their base interface, which will allow us to split up dcom.idl (This used to be commit 7466947a23985f9bb15209b67880f7b94dc515c8)
2007-10-10r3442: Add support for the "call_as" and "local" attributes.Jelmer Vernooij1-0/+1
(This used to be commit 8e25117103b0339441bc6328176ed34034005528)
2007-10-10r2777: Correctly abort if an idl file fails to parse. Bloody perl...Tim Potter1-1/+1
(This used to be commit 35ff140b43b353a8848e417bb309046605e98085)
2007-10-10r2704: Complain about 'object interfaces' that don't have version 0.0 (the ↵Jelmer Vernooij1-1/+1
standard doesn't allow them to! I think the idea is that you just create a new interface that inherits your old interface, thus ensuring backwards-compatibility) Re-enable to validator (This used to be commit e364e46a88e5a222c94cdb9cf8e7a124e43f0bcf)
2007-10-10r2253: Add test program, as small example of what's going on.Tim Potter1-1/+11
(This used to be commit fd31ae38dfe2d005b3e01ac059c2e15fa389aad4)
2007-10-10r2223: Include autogenerated header file for idl file we are processing withTim Potter1-0/+1
--eparser. (This used to be commit 68b10c4aeebc4aa1225aab3c8a9fc0a4d28d6455)
2007-10-10r1736: - Pidl updates:Jelmer Vernooij1-1/+1
- 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 (This used to be commit 45c3d0036b8510102816f9cdff9210098259cc5f)
2007-10-10r1083: Generate prototypes for structs and unions marked "public" in the idl.Tim Potter1-0/+6
Delete various hacks to work around not doing this before. (This used to be commit 5c3c3d3e72d8dd5d995a5bc5b2c7d7217b7c0432)
2007-10-10r955: Update debian package rules... builds nowJelmer Vernooij1-1/+1
(This used to be commit 3df8ff6cf111c6601554bffb411506bd43f726c7)
2007-10-10r948: Tridge suggested that the best way to write the ethereal parser is toTim Potter1-1/+1
base it on the generator for the ndr pull/push code rather than trying to get all the alignment and other junk sorted out by hand. This commit (nearly) gets eparser to the same state it previously was but based on parser.pm. We correctly parse simple types, strings and sids. (This used to be commit 6739cd5fdd353c575626cbfbc6339a8a6908daf7)
2007-10-10r602: Autogenerated packet-dcerpc-samr.c now compiles!Tim Potter1-1/+1
(This used to be commit 0c1069b56e7c80e2b428f6a6b550eacd5ac3d762)
2007-10-10r600: Get rid of trailing whitespace which freaks out emacs' fontification.Tim Potter1-6/+6
(This used to be commit d0383e9a7a0a5bee9a52ddc81d5f89c9f01c269b)
2007-10-10r550: Remove clientfns.pm module - it was a bad idea.Tim Potter1-9/+1
Start to resurrect eparser.pm for auto-generating ethereal dissectors for rpc. (This used to be commit 993a18dd35fb0b09c088eb2bb38d3e14ff755130)
2007-10-10r363: nicer error handling in pidlAndrew Tridgell1-1/+2
(This used to be commit cafc8a5e763834a26432c467abfe84f140bb7d80)
2007-10-10r356: Start of auto-generated client functions. Tridge can you take a lookTim Potter1-0/+8
and tell me what you think? Output does not compile yet. (This used to be commit 65692c9a9301329ad93628778e3d8f9188a67059)
2003-12-15added "pidl.pl --template" to dump a rough template to save typingAndrew Tridgell1-0/+8
when starting a pipe. Thanks to metze for a script that gave the idea. do something like this to use it: pidl.pl --parse --template librpc/idl/XXX.idl > rpc_server/XXX/rpc_XXX.c then fill in the functions in rpc_XXX.c (This used to be commit 68e71d7497ddc7b8239fc4bd7cb3e780a1f53a39)
2003-12-14added auto-generation of the server side boilerplate code for eachAndrew Tridgell1-5/+14
pipe. The server side code gets generated as librpc/gen_ndr/ndr_NAME_s.c and gets included in the pipe module (This used to be commit bd3dcfe5820489a838e19b244266bd9126af5eb4)
2003-12-07don't save the intermediate form to disk unless we need toAndrew Tridgell1-19/+14
(This used to be commit 4e1a5a21a4c8da0d2a23d5ba02168eac1987c260)
2003-12-07make pidl a little less verboseAndrew Tridgell1-4/+2
(This used to be commit 76f48affe5d1e8fd96d5dc9af2ec1059f3dd741c)
2003-12-07re-wrote pidl to use Parse::Yapp instead of Parse::RecDescent, ThisAndrew Tridgell1-13/+4
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. (This used to be commit 4bbaffeb44dca99ad8c0245beb1fddbe01557215)
2003-11-28 * support multiple interfaces in one IDL file in pidlAndrew Tridgell1-12/+0
* make far more generated functions static * get rid of gen_rpc, and include the client calls in ndr_*.c * added placeholder IDL for a number of intefaces (dcom, wzcsvc, browser etc) (This used to be commit a2bdf0be0119023df3c2b9ea515ed355020f2625)
2003-11-28added auto-generation of the IDL interface tables. This makes two lessAndrew Tridgell1-1/+1
places that need to be edited when someone adds a new IDL file. (This used to be commit ccd9ddeed679baa6cbb05ac728b381b50420e00f)
2003-11-23save about 35% of the time for "make idl" by processing multiple IDLAndrew Tridgell1-58/+72
files at once, which means less perl startup time. (This used to be commit 64b2c67e479ddc754d18f752d347ba22a6d77682)
2003-11-22added the beginnings of an IDL validator, to give clearer errors whenAndrew Tridgell1-0/+3
IDL is not valid (This used to be commit c1b708708e262350d697829d444d0fb6a981a80f)
2003-11-22added Parse::RecDescent module into pidl to ensure we all use the sameAndrew Tridgell1-0/+1
version. This should fix the problems Richard was seeing. (This used to be commit 76c24a5cb09b096a9cb490f3bb42af0b9d0f5fa9)
2003-11-20a bit neater way of emitting codeAndrew Tridgell1-1/+1
(This used to be commit 964c3237215b36f5768b98c19689ddc43cf86cac)
2003-11-20 * cope with pidl not being in $HOME/pidlAndrew Tridgell1-2/+2
* cope with empty structures in unions (This used to be commit a706ff78937bea64acd28381466770749566399f)
2003-11-20use a precompiled grammer in pidl. This speeds up pidl by about aAndrew Tridgell1-5/+2
factor of 2 on my system. (This used to be commit a291dd835f68ae5a109670b1d1ca1a48b2aacfb6)
2003-11-17* support inline arraysAndrew Tridgell1-1/+1
* add enough to allow security descriptors to be IDL described * added "noprint" property to allow fancy printing for specific functions (This used to be commit 08df20c8bed57bbb9a9a907c807ad850382fd4e8)
2003-11-14* make pidl.pl exit with an error on a parse errorAndrew Tridgell1-0/+1
* fixed a buffers/scalars bug in structures (This used to be commit e66daf527357c65228db55a3d3319a0c20d8f51c)
2003-11-11- added support for the pull side of unionsAndrew Tridgell1-1/+1
- don't generate parse functions for pull/push functions that are not used (This used to be commit 54613574bcd8b365c13848c6aa9366cadeb5da0e)
2003-11-09added a module for auto-generating the client calls. We can now goAndrew Tridgell1-1/+12
from IDL file to working Samba4 RPC client library in a completely automated fashion. (This used to be commit 566476b3ff91eaa02c4f3c494afbf9ac7c200461)
2003-11-08- include includes.hAndrew Tridgell1-7/+21
- fix ref ptrs in push - add NTSTATUS return (This used to be commit cba9df9aa4cef7d35ae786a90d6c34b54e9a086a)
2003-11-06updated pidl to auto-generate the ndr_push_*() functions for theAndrew Tridgell1-1/+6
Samba4 rpc framework not complete, but sufficient for a number of lsa functions (This used to be commit 42cd6904f51bac1ff92f0aea0deffb11864dfac2)
2001-11-24Added --eparser to call ethereal parser generator.Tim Potter1-1/+12
(This used to be commit e1f191a9dc563648f9d151c56020e3324854f52f)
2000-12-14beginnings of the C parser generatorAndrew Tridgell1-3/+16
(This used to be commit a9b1e03b334a2ad106b3f42a513565b530baba93)
2000-12-14fixed helpAndrew Tridgell1-5/+16
(This used to be commit 649e8ca0bb2af328db62942c146c5f8fc5e71e49)
2000-12-14first versionAndrew Tridgell1-0/+95
(This used to be commit 14135ed6bbff54d7b493f9be7748c2ad7440a97b)