summaryrefslogtreecommitdiff
path: root/source4/build/pidl/header.pm
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r5320: Treat structs and unions somewhat more similarly:Jelmer Vernooij1-5/+5
- use same names in hashes (DATA -> ELEMENTS, etc) - [case()] and [default] are no longer special case, they're just regular properties (This used to be commit 6a0f599f822f5c42d93e78c13765804ab2223968)
2007-10-10r5319: Make some more alignment code generic, move NDR-specific stuff toJelmer Vernooij1-1/+1
parser.pm (now renamed to ndr.pm). (This used to be commit a469a5fefb4e6941264c11f4bde60eab71f6f7aa)
2007-10-10r5286: Some first steps in making the pidl code somewhat more generic for theJelmer Vernooij1-4/+4
various data types: Add ndr_flags argument to all ndr push/pull scalar functions (This used to be commit ab490c0c882bb13de190546c50a0631ecb8255ad)
2007-10-10r5034: - added a type mapping function in pidl, so the type names in our IDLAndrew Tridgell1-2/+2
files don't need to match the type names in the generated headers - with this type mapping we no longer need definitions for the deprecated "int32", "uint8" etc form of types. We can now force everyone to use the standard types int32_t, uint8_t etc. - fixed all the code that used the deprecated types - converted the IDL types "int64" and "uint64" to "dlong" and "udlong". These are the 4 byte aligned 64 bit integers that Microsoft internally define as two 32 bit integers in a structure. After discussions with Ronnie Sahlberg we decided that calling these "int64" was confusing, as it implied a true 8 byte aligned type - fixed all the cases where we incorrectly used things like "NTTIME_hyper" in our C code. The generated API now uses a NTTIME for those. The fact that it is hyper-aligned on the wire is not relevant to the API, and should remain just a IDL property (This used to be commit f86521677d7ff16bdc4815f9524e5286026f10f3)
2007-10-10r4883: support ndr_size_ generation on unions as well as structuresAndrew Tridgell1-1/+6
(This used to be commit 852ad354b481f130f80213f2924ad44d10340b21)
2007-10-10r4553: fix typoStefan Metzmacher1-1/+1
metze (This used to be commit 6f75a06b8691dd0d684a51b7851696613c6a6b11)
2007-10-10r4551: add support for a pidl extensionsStefan Metzmacher1-1/+33
'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 (This used to be commit a8d61aa47388b82595ee02b9cfd35f15afb93c2a)
2007-10-10r4540: sync enum and bitmap codeStefan Metzmacher1-1/+1
metze (This used to be commit 2f3aea72ee7d9d90f7b910d11bdd1e96f9f0ebe1)
2007-10-10r4535: add full support forStefan Metzmacher1-2/+27
typedef bitmap { FLAG1 = 0x01 } fooflags; typedef struct { fooflags flags; } metze (This used to be commit 052a7d4f9a3a178149c65a616fdfd87152dff7eb)
2007-10-10r4526: - much simpler (and more accurate!) ndr_size_*() code generation. ItAndrew Tridgell1-3/+5
is less efficient, but I really doubt that matters. - use enum in epmapper.idl for protocol type - added support for "enum8bit" flag, used in epmapper.idl (This used to be commit 1a24a50384b7f588844cd012f1218ca242ca4507)
2007-10-10r4521: fixed up the handling of PROPERTIES elements after the change to ↵Andrew Tridgell1-3/+3
support enum (This used to be commit dee8eff2590be58c59b0db089fcca4af3e011c42)
2007-10-10r4518: added proper support for "typedef enum" in pidl. We can now use enums ↵Andrew Tridgell1-0/+5
as types in switch statements and variable types, and the value will be printed with its string name and value (This used to be commit 1852033f2ec7584657d586e44d25a280959e4d81)
2007-10-10r4468: Don't be a slacker and leave out parameter names when generatingTim Potter1-12/+12
prototypes for ndr push/pull/print functions. (This used to be commit 1fe95ad1720f48a353ec77178e303b437bb13fed)
2007-10-10r3998: allow const arrays (see next commit to drsuapi.idl)Stefan Metzmacher1-2/+6
metze (This used to be commit 7264a2227d7a1881db01964d0d713c144eb77152)
2007-10-10r3861: - Put ndr and rpc client code in seperate filesJelmer Vernooij1-1/+1
- Add some const (This used to be commit a00bda88e1b6abdc36e5aa8c2a35f64855f67c96)
2007-10-10r3689: Large number of COM updates:Jelmer Vernooij1-11/+34
- 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-10r3667: Small COM fixesJelmer Vernooij1-3/+14
(This used to be commit 7484b9be7423ccd7e37432951700939e8a53d513)
2007-10-10r3611: DCOM client support works!!Jelmer Vernooij1-0/+1
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 (This used to be commit 8693344772a9b700533179f4bacfe27ec27dfcfe)
2007-10-10r3601: Lots of smaller DCOM updates and fixes. Adds oxid tables, properJelmer Vernooij1-6/+4
use of contexts. (This used to be commit 93eb3cd99c4fb065a69eabcead0c33804259c976)
2007-10-10r3586: Fix some of the issues with the module init functions.Jelmer Vernooij1-1/+1
Both subsystems and modules can now have init functions, which can be specified in .mk files (INIT_FUNCTION = ...) The build system will define : - SUBSYSTEM_init_static_modules that calls the init functions of all statically compiled modules. Failing to load will generate an error which is not fatal - BINARY_init_subsystems that calls the init functions (if defined) for the subsystems the binary depends on This removes the hack with the "static bool Initialised = " and the "lazy_init" functions (This used to be commit 7a8244761bfdfdfb48f8264d76951ebdfbf7bd8a)
2007-10-10r3513: Add (the infrastructure for) DCOM support. Contents:Jelmer Vernooij1-2/+7
- 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 (This used to be commit c052f2e1edd816206d8974af3140cec7ef97a70c)
2007-10-10r3442: Add support for the "call_as" and "local" attributes.Jelmer Vernooij1-0/+3
(This used to be commit 8e25117103b0339441bc6328176ed34034005528)
2007-10-10r3428: switched to using minimal includes for the auto-generated RPC code.Andrew Tridgell1-0/+7
The thing that finally convinced me that minimal includes was worth pursuing for rpc was a compiler (tcc) that failed to build Samba due to reaching internal limits of the size of include files. Also the fact that includes.h.gch was 16MB, which really seems excessive. This patch brings it back to 12M, which is still too large, but better. Note that this patch speeds up compile times for both the pch and non-pch case. This change also includes the addition iof a "depends()" option in our IDL files, allowing you to specify that one IDL file depends on another. This capability was needed for the auto-includes generation. (This used to be commit b8f5fa8ac8e8725f3d321004f0aedf4246fc6b49)
2007-10-10r3423: auto-generate prototypes for all external functions in pidlAndrew Tridgell1-2/+50
(This used to be commit 009488dfe55f5219b24c30222b1a8bf411a7e939)
2007-10-10r3282: some C pre-processors don't like expressions likeAndrew Tridgell1-1/+2
uuid(1ff70682-0a51-30e8-076d-740be8cee98b) so we now accept uuid("1ff70682-0a51-30e8-076d-740be8cee98b") in pidl, and automagically add quotes only if needed (This used to be commit 4aab2cb210eb9678bb72aebb33dcf6fd499206c1)
2007-10-10r3281: some compilers can't handle empty structures, so for empty IDLAndrew Tridgell1-0/+6
structures generate a single _empty_ element in the header (This used to be commit 00ff1ca1d284bb698e98c773b18a29695e927605)
2007-10-10r1909: nicer formatStefan Metzmacher1-2/+2
metze (This used to be commit e9e5fb2cb0b428de11d8e91da8b44394b6221a43)
2007-10-10r1786: Add support for the 'helpstring' attribute on interfacesJelmer Vernooij1-0/+5
(This used to be commit 85fb26a05d57e58795b0c0ffa93dc9e0fa902431)
2007-10-10r1736: - Pidl updates:Jelmer Vernooij1-20/+6
- 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-10r1700: make version default to 0.0 (same as midl)Jelmer Vernooij1-0/+2
(This used to be commit b380324c938d0c5069dce02e468c92e24363a36b)
2004-01-08This patch adds a better dcerpc server infastructure.Stefan Metzmacher1-1/+1
1.) We now register endpoint servers add startup via register_backend() and later use the smb.conf 'dcerpc endpoint servers' parameter to setup the dcesrv_context 2.) each endpoint server can register at context creation time as much interfaces as it wants (multiple interfaces on one endpoint are supported!) (NOTE: there's a difference between 'endpoint server' and 'endpoint'! for details look at rpc_server/dcesrv_server.h) 3.) one endpoint can have a security descriptor registered to it self this will be checked in the future when a client wants to connect to an smb pipe endpoint. 4.) we now have a 'remote' endpoint server, which works like the ntvfs_cifs module it takes this options in the [globals] section: dcerpc remote:interfaces = srvsvc, winreg, w32time, epmapper dcerpc remote:binding = ... dcerpc remote:user = ... dcerpc remote:password = ... 5.) we currently have tree endpoint servers: epmapper, rpcecho and remote the default for the 'dcerpc endpiont servers = epmapper, rpcecho' for testing you can also do dcerpc endpoint servers = rpcecho, remote, epmapper dcerpc remote:interfaces = srvsvc, samr, netlogon 6,) please notice the the epmapper now only returns NO_ENTRIES (but I think we'll find a solution for this too:-) 7.) also there're some other stuff left, but step by step :-) This patch also includes updates for the register_subsystem() , ntvfs_init(), and some other funtions to check for duplicate subsystem registration metze (hmmm, my first large commit...I hope it works as supposed :-) (This used to be commit 917e45dafd5be4c2cd90ff425b8d6f8403122349)
2003-12-16a fairly large commit!Andrew Tridgell1-0/+4
This adds support for bigendian rpc in the client. I have installed SUN pcnetlink locally and am using it to test the samba4 rpc code. This allows us to easily find places where we have stuffed up the types (such as 2 uint16 versus a uint32), as testing both big-endian and little-endian easily shows which is correct. I have now used this to fix several bugs like that in the samba4 IDL. In order to make this work I also had to redefine a GUID as a true structure, not a blob. From the pcnetlink wire it is clear that it is indeed defined as a structure (the byte order changes). This required changing lots of Samba code to use a GUID as a structure. I also had to fix the if_version code in dcerpc syntax IDs, as it turns out they are a single uint32 not two uint16s. The big-endian support is a bit ugly at the moment, and breaks the layering in some places. More work is needed, especially on the server side. (This used to be commit bb1af644a5a7b188290ce36232f255da0e5d66d2)
2003-12-16the out substructure is not empty if there is a return from theAndrew Tridgell1-0/+6
function (This used to be commit d18a08a870aa9ee12ed2913775b70d1b8a09c84b)
2003-12-16some compilers can't handle structures with no elements. GenerateAndrew Tridgell1-16/+46
dummy elements if need be. (This used to be commit b6fdc984023a76a6c77d03cb3ec12c6c18d215a6)
2003-12-15make pidl no longer dependent on Data::Dumper, which isn't installedAndrew Tridgell1-1/+0
on some systems (This used to be commit a4aa9168c0f80cf6e758c380d41335db50d06869)
2003-12-14added auto-generation of the server side boilerplate code for eachAndrew Tridgell1-1/+2
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-02added netr_DatabaseSync(). It doesn't work as I haven't done schannelAndrew Tridgell1-19/+17
yet, but at least the request is understood by w2k3 Also modified pidl to allow multiple branches in a union to have the same element. This is used in netlogon. (This used to be commit 983c0e9683fa9666a6e055d1776ebeef8cd2e700)
2003-11-27added an rpc scanner. This prints messages like this:Andrew Tridgell1-2/+1
uuid 82273fdc-e32a-18c3-3f78-827929dc23ea version 0x0000:0x0000 'eventlog' 24 calls available WARNING: local IDL defines 4 calls when all the WARNINGs are gone then we know we have all the calls :) (This used to be commit f5821b2468a0c46d0e5590de59562926d746c349)
2003-11-26added some paranoid checking for enumsAndrew Tridgell1-2/+5
(This used to be commit 3492f37b0bf14797514f1dc603f518bf5b801c3c)
2003-11-23added a tool called 'ndrdump' that allows you to dump NDR dataAndrew Tridgell1-0/+2
according to the current IDL taking the data from a file. In combination with a little hack to ethereal to extract data this is a quite powerful IDL development tool. (This used to be commit 229a325c3cf0d4dc1e910ed32e1d7391040aeba1)
2003-11-22added support for enumerated types in IDL files. This makes unionsAndrew Tridgell1-1/+28
easier to work with. (This used to be commit 60be15d306e7b65efdd27df02250c0264996ccf3)
2003-11-22added support for 'const' in IDL files. This makes it easy to defineAndrew Tridgell1-4/+14
symbolic names for bitfields etc. (This used to be commit 344a6e1682cc1afab24735e73d05cf15f6eb9816)
2003-11-21* changed the way strings are handled in pidl to a much more generalAndrew Tridgell1-6/+3
interface. We now support an arbitrary set of flags to each parser, and these can be used to control the string types. I have provided some common IDL string types in librpc/idl/idl_types.h which needs to be included in every IDL file. * added IDL for the endpoint mapper. Added a test suite that enumerates all endpoints on the server. (This used to be commit d2665f36a75b482ff82733f72ffac938c2acf87a)
2003-11-21added support for 'ascstr', a ascii string in MSRPC !Andrew Tridgell1-4/+4
(This used to be commit a5eeb3be0577e0ce91ac1f6e641782e4acbbda07)
2003-11-20use a precompiled grammer in pidl. This speeds up pidl by about aAndrew Tridgell1-0/+1
factor of 2 on my system. (This used to be commit a291dd835f68ae5a109670b1d1ca1a48b2aacfb6)
2003-11-20use strict perl package everywhere for error checkingAndrew Tridgell1-1/+2
(This used to be commit 3b7a4b70a321a1e8e378b8c5cc1e87a1c3399e91)
2003-11-20 * added a 'lstring' type for spoolssAndrew Tridgell1-0/+2
* added some notes on type equivalents in NOTES.txt (This used to be commit a44d952fcb7ebf85d3072b622e5656dcf25cfbb0)
2003-11-20 * added support for empty case elements (including default cases)Andrew Tridgell1-1/+3
* changed to midl syntax using [case(x)] instead of case(x) (This used to be commit 6ecdb25e137c25e6bf9a7037a4eb602ae1afc514)
2003-11-18auto-generate the pipe UUID version and nameAndrew Tridgell1-9/+32
(This used to be commit cdba426e62a5b30263b75f53f97b191da224a55f)
2003-11-17started documenting the extension to IDL that pidl implementsAndrew Tridgell1-8/+0
(This used to be commit 22b5418a53149b42e71fd887866f75cdd53b81af)