wireshark/tools/pidl/README

65 lines
2.8 KiB
Plaintext
Raw Normal View History

Introduction:
=============
This directory contains the source code of the pidl (Perl IDL)
compiler for Samba 4.
The main sources for pidl are available using Git as part of
the Samba source tree. Use:
git clone git://git.samba.org/samba.git
Pidl works by building a parse tree from a .pidl file (a simple
dump of it's internal parse tree) or a .idl file
(a file format mostly like the IDL file format midl uses).
The IDL file parser is in idl.yp (a yacc file converted to
perl code by yapp)
Standalone installation:
========================
Run Makefile.PL to generate the Makefile.
Then run "make install" (as root) to install.
Internals overview:
===================
After a parse tree is present, pidl will call one of it's backends
(which one depends on the options given on the command-line). Here is
a list of current backends:
-- Generic --
Parse::Pidl::Dump - Converts the parse tree back to an IDL file
Update from samba tree revision 12488 to 12669 ============================ Samba log start ============ ------------------------------------------------------------------------ r12488 | jelmer | 2005-12-26 02:37:18 +0100 (Mon, 26 Dec 2005) | 2 lines Fix MANIFEST to match recent changes ------------------------------------------------------------------------ r12490 | jelmer | 2005-12-26 03:14:18 +0100 (Mon, 26 Dec 2005) | 2 lines Fix --warn-compat ------------------------------------------------------------------------ r12501 | jelmer | 2005-12-26 23:47:40 +0100 (Mon, 26 Dec 2005) | 4 lines Merge EJSHeader.pm into EJS.pm and simplify smbcalls_rpc.c a bit, now that it is guaranteed that the smbcalls modules are always initialized after the EJS subsystem itself. ------------------------------------------------------------------------ r12512 | jelmer | 2005-12-27 17:22:35 +0100 (Tue, 27 Dec 2005) | 3 lines Use GUID structs in API functions everywhere rather then converting back and forth between GUID structs and strings in several places. ------------------------------------------------------------------------ r12515 | jelmer | 2005-12-27 18:50:53 +0100 (Tue, 27 Dec 2005) | 2 lines Use UUID directly rather then string containing UUID ------------------------------------------------------------------------ r12517 | jelmer | 2005-12-27 20:13:18 +0100 (Tue, 27 Dec 2005) | 2 lines Don't generate empty init functions ------------------------------------------------------------------------ r12528 | jelmer | 2005-12-27 23:51:30 +0100 (Tue, 27 Dec 2005) | 2 lines Add seperate proto headers for ntvfs, tdr, smb_server and nbt_server. ------------------------------------------------------------------------ r12539 | metze | 2005-12-28 10:31:43 +0100 (Wed, 28 Dec 2005) | 3 lines fix the pidl tests metze ------------------------------------------------------------------------ r12572 | jelmer | 2005-12-29 17:03:03 +0100 (Thu, 29 Dec 2005) | 2 lines No longer parse coclasses as interfaces ------------------------------------------------------------------------ r12573 | jelmer | 2005-12-29 17:03:47 +0100 (Thu, 29 Dec 2005) | 2 lines Update README to recent changes in pidls namespace ------------------------------------------------------------------------ r12574 | jelmer | 2005-12-29 17:04:34 +0100 (Thu, 29 Dec 2005) | 3 lines Bring tables.pl back to life and move registration of interfaces now completely to a new subsystem. ------------------------------------------------------------------------ r12651 | jelmer | 2005-12-31 15:57:43 +0100 (Sat, 31 Dec 2005) | 2 lines Changed paths: M /branches/SAMBA_4_0/source/librpc/idl/idl_types.h M /branches/SAMBA_4_0/source/librpc/ndr/libndr.h M /branches/SAMBA_4_0/source/librpc/ndr/ndr_string.c Remove STR_LARGE_SIZE as it's no longer used ------------------------------------------------------------------------ ============================ Samba log end ============== svn path=/trunk/; revision=16927
2006-01-01 23:14:44 +00:00
Parse::Pidl::Samba4::Header - Generates header file with data structures defined in IDL file
Parse::Pidl::NDR - Generates intermediate datastructures for use by NDR parses/generators
Parse::Pidl::ODL - Generates IDL structures from ODL structures for use in the NDR parser generator
Parse::Pidl::Test - Utility functions for use in pidl's testsuite
-- Samba NDR --
Update from samba tree revision 12488 to 12669 ============================ Samba log start ============ ------------------------------------------------------------------------ r12488 | jelmer | 2005-12-26 02:37:18 +0100 (Mon, 26 Dec 2005) | 2 lines Fix MANIFEST to match recent changes ------------------------------------------------------------------------ r12490 | jelmer | 2005-12-26 03:14:18 +0100 (Mon, 26 Dec 2005) | 2 lines Fix --warn-compat ------------------------------------------------------------------------ r12501 | jelmer | 2005-12-26 23:47:40 +0100 (Mon, 26 Dec 2005) | 4 lines Merge EJSHeader.pm into EJS.pm and simplify smbcalls_rpc.c a bit, now that it is guaranteed that the smbcalls modules are always initialized after the EJS subsystem itself. ------------------------------------------------------------------------ r12512 | jelmer | 2005-12-27 17:22:35 +0100 (Tue, 27 Dec 2005) | 3 lines Use GUID structs in API functions everywhere rather then converting back and forth between GUID structs and strings in several places. ------------------------------------------------------------------------ r12515 | jelmer | 2005-12-27 18:50:53 +0100 (Tue, 27 Dec 2005) | 2 lines Use UUID directly rather then string containing UUID ------------------------------------------------------------------------ r12517 | jelmer | 2005-12-27 20:13:18 +0100 (Tue, 27 Dec 2005) | 2 lines Don't generate empty init functions ------------------------------------------------------------------------ r12528 | jelmer | 2005-12-27 23:51:30 +0100 (Tue, 27 Dec 2005) | 2 lines Add seperate proto headers for ntvfs, tdr, smb_server and nbt_server. ------------------------------------------------------------------------ r12539 | metze | 2005-12-28 10:31:43 +0100 (Wed, 28 Dec 2005) | 3 lines fix the pidl tests metze ------------------------------------------------------------------------ r12572 | jelmer | 2005-12-29 17:03:03 +0100 (Thu, 29 Dec 2005) | 2 lines No longer parse coclasses as interfaces ------------------------------------------------------------------------ r12573 | jelmer | 2005-12-29 17:03:47 +0100 (Thu, 29 Dec 2005) | 2 lines Update README to recent changes in pidls namespace ------------------------------------------------------------------------ r12574 | jelmer | 2005-12-29 17:04:34 +0100 (Thu, 29 Dec 2005) | 3 lines Bring tables.pl back to life and move registration of interfaces now completely to a new subsystem. ------------------------------------------------------------------------ r12651 | jelmer | 2005-12-31 15:57:43 +0100 (Sat, 31 Dec 2005) | 2 lines Changed paths: M /branches/SAMBA_4_0/source/librpc/idl/idl_types.h M /branches/SAMBA_4_0/source/librpc/ndr/libndr.h M /branches/SAMBA_4_0/source/librpc/ndr/ndr_string.c Remove STR_LARGE_SIZE as it's no longer used ------------------------------------------------------------------------ ============================ Samba log end ============== svn path=/trunk/; revision=16927
2006-01-01 23:14:44 +00:00
Parse::Pidl::Samba4::NDR::Client - Generates client call functions in C using the NDR parser
Parse::Pidl::Samba4::NDR::Parser - Generates pull/push functions for parsing NDR
Parse::Pidl::Samba4::NDR::Server - Generates server side implementation in C
Parse::Pidl::Samba4::TDR - Parser generator for the "Trivial Data Representation"
Parse::Pidl::Samba4::Template - Generates stubs in C for server implementation
Parse::Pidl::Samba4::Python - Generates bindings for Python
-- Samba COM / DCOM --
Update from samba tree revision 12488 to 12669 ============================ Samba log start ============ ------------------------------------------------------------------------ r12488 | jelmer | 2005-12-26 02:37:18 +0100 (Mon, 26 Dec 2005) | 2 lines Fix MANIFEST to match recent changes ------------------------------------------------------------------------ r12490 | jelmer | 2005-12-26 03:14:18 +0100 (Mon, 26 Dec 2005) | 2 lines Fix --warn-compat ------------------------------------------------------------------------ r12501 | jelmer | 2005-12-26 23:47:40 +0100 (Mon, 26 Dec 2005) | 4 lines Merge EJSHeader.pm into EJS.pm and simplify smbcalls_rpc.c a bit, now that it is guaranteed that the smbcalls modules are always initialized after the EJS subsystem itself. ------------------------------------------------------------------------ r12512 | jelmer | 2005-12-27 17:22:35 +0100 (Tue, 27 Dec 2005) | 3 lines Use GUID structs in API functions everywhere rather then converting back and forth between GUID structs and strings in several places. ------------------------------------------------------------------------ r12515 | jelmer | 2005-12-27 18:50:53 +0100 (Tue, 27 Dec 2005) | 2 lines Use UUID directly rather then string containing UUID ------------------------------------------------------------------------ r12517 | jelmer | 2005-12-27 20:13:18 +0100 (Tue, 27 Dec 2005) | 2 lines Don't generate empty init functions ------------------------------------------------------------------------ r12528 | jelmer | 2005-12-27 23:51:30 +0100 (Tue, 27 Dec 2005) | 2 lines Add seperate proto headers for ntvfs, tdr, smb_server and nbt_server. ------------------------------------------------------------------------ r12539 | metze | 2005-12-28 10:31:43 +0100 (Wed, 28 Dec 2005) | 3 lines fix the pidl tests metze ------------------------------------------------------------------------ r12572 | jelmer | 2005-12-29 17:03:03 +0100 (Thu, 29 Dec 2005) | 2 lines No longer parse coclasses as interfaces ------------------------------------------------------------------------ r12573 | jelmer | 2005-12-29 17:03:47 +0100 (Thu, 29 Dec 2005) | 2 lines Update README to recent changes in pidls namespace ------------------------------------------------------------------------ r12574 | jelmer | 2005-12-29 17:04:34 +0100 (Thu, 29 Dec 2005) | 3 lines Bring tables.pl back to life and move registration of interfaces now completely to a new subsystem. ------------------------------------------------------------------------ r12651 | jelmer | 2005-12-31 15:57:43 +0100 (Sat, 31 Dec 2005) | 2 lines Changed paths: M /branches/SAMBA_4_0/source/librpc/idl/idl_types.h M /branches/SAMBA_4_0/source/librpc/ndr/libndr.h M /branches/SAMBA_4_0/source/librpc/ndr/ndr_string.c Remove STR_LARGE_SIZE as it's no longer used ------------------------------------------------------------------------ ============================ Samba log end ============== svn path=/trunk/; revision=16927
2006-01-01 23:14:44 +00:00
Parse::Pidl::Samba4::COM::Proxy - Generates proxy object for DCOM (client-side)
Parse::Pidl::Samba4::COM::Stub - Generates stub call handler for DCOM (server-side)
Parse::Pidl::Samba4::COM::Header - Generates headers for COM
-- Wireshark --
Parse::Pidl::Wireshark::NDR - Generates a parser for the Wireshark network sniffer
Parse::Pidl::Wireshark::Conformance - Reads conformance files containing additional data for generating Wireshark parsers
-- Utility modules --
Parse::Pidl::Util - Misc utility functions used by *.pm and pidl.pl
Parse::Pidl::Typelist - Utility functions for keeping track of known types and their representation in C
Tips for hacking on pidl:
- Inspect pidl's parse tree by using the --keep option and looking at the
generated .pidl file.
- The various backends have a lot in common, if you don't understand how one
implements something, look at the others.
- See pidl(1) and the documentation on midl
- See 'info bison' and yapp(1) for information on the file format of idl.yp
- Run the tests (all in tests/)