• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

lib/H29-Dec-2021-18,63315,197

tests/H29-Dec-2021-3,7382,990

MANIFESTH A D29-Dec-2021878 4241

META.ymlH A D29-Dec-2021500 1918

Makefile.PLH A D29-Dec-2021404 1815

READMEH A D29-Dec-20212.8 KiB6552

TODOH A D29-Dec-20211.3 KiB4531

expr.ypH A D29-Dec-20213.7 KiB203182

idl.ypH A D29-Dec-202111.9 KiB697610

pidlH A D29-Dec-202122.8 KiB805331

wscriptH A D29-Dec-20213.5 KiB10464

README

1Introduction:
2=============
3This directory contains the source code of the pidl (Perl IDL)
4compiler for Samba 4.
5
6The main sources for pidl are available using Git as part of
7the Samba source tree. Use:
8git clone git://git.samba.org/samba.git
9
10Pidl works by building a parse tree from a .pidl file (a simple
11dump of it's internal parse tree) or a .idl file
12(a file format mostly like the IDL file format midl uses).
13The IDL file parser is in idl.yp (a yacc file converted to
14perl code by yapp)
15
16Standalone installation:
17========================
18Run Makefile.PL to generate the Makefile.
19
20Then run "make install" (as root) to install.
21
22Internals overview:
23===================
24
25After a parse tree is present, pidl will call one of it's backends
26(which one depends on the options given on the command-line). Here is
27a list of current backends:
28
29-- Generic --
30Parse::Pidl::Dump - Converts the parse tree back to an IDL file
31Parse::Pidl::Samba4::Header - Generates header file with data structures defined in IDL file
32Parse::Pidl::NDR - Generates intermediate datastructures for use by NDR parses/generators
33Parse::Pidl::ODL - Generates IDL structures from ODL structures for use in the NDR parser generator
34Parse::Pidl::Test - Utility functions for use in pidl's testsuite
35
36-- Samba NDR --
37Parse::Pidl::Samba4::NDR::Client - Generates client call functions in C using the NDR parser
38Parse::Pidl::Samba4::NDR::Parser - Generates pull/push functions for parsing NDR
39Parse::Pidl::Samba4::NDR::Server - Generates server side implementation in C
40Parse::Pidl::Samba4::TDR - Parser generator for the "Trivial Data Representation"
41Parse::Pidl::Samba4::Template - Generates stubs in C for server implementation
42Parse::Pidl::Samba4::Python - Generates bindings for Python
43
44-- Samba COM / DCOM --
45Parse::Pidl::Samba4::COM::Proxy - Generates proxy object for DCOM (client-side)
46Parse::Pidl::Samba4::COM::Stub - Generates stub call handler for DCOM (server-side)
47Parse::Pidl::Samba4::COM::Header - Generates headers for COM
48
49-- Wireshark --
50Parse::Pidl::Wireshark::NDR - Generates a parser for the Wireshark network sniffer
51Parse::Pidl::Wireshark::Conformance - Reads conformance files containing additional data for generating Wireshark parsers
52
53-- Utility modules --
54Parse::Pidl::Util - Misc utility functions used by *.pm and pidl.pl
55Parse::Pidl::Typelist - Utility functions for keeping track of known types and their representation in C
56
57Tips for hacking on pidl:
58 - Inspect pidl's parse tree by using the --keep option and looking at the
59   generated .pidl file.
60 - The various backends have a lot in common, if you don't understand how one
61   implements something, look at the others.
62 - See pidl(1) and the documentation on midl
63 - See 'info bison' and yapp(1) for information on the file format of idl.yp
64 - Run the tests (all in tests/)
65