diff options
author | Andrew Tridgell <tridge@samba.org> | 2000-05-14 14:05:10 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2000-05-14 14:05:10 +0000 |
commit | b7022e94d2ab62d522b0a7c2886cce3afaff6872 (patch) | |
tree | 6663fe08efd72d9a95d9cf4cf70baa07ded15aca /source3/aparser/spool.struct | |
parent | b7f9a2794273266a0c64a6c02f88d65d37554ea9 (diff) | |
download | samba-b7022e94d2ab62d522b0a7c2886cce3afaff6872.tar.gz samba-b7022e94d2ab62d522b0a7c2886cce3afaff6872.tar.bz2 samba-b7022e94d2ab62d522b0a7c2886cce3afaff6872.zip |
vastly improved awk based code generator
now handles recursive function definitions, unions etc
it is sufficient for some basic types like UNISTR2 and BUFFER5
to be defined in the *.struct file and used successfully
this generator uses templates (in *.tpl files) for all code
generation, allowing easy replacement of the backend functions
(This used to be commit 14ded82dc92ae6eff7639351f391a33b9cc31c0d)
Diffstat (limited to 'source3/aparser/spool.struct')
-rw-r--r-- | source3/aparser/spool.struct | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/source3/aparser/spool.struct b/source3/aparser/spool.struct new file mode 100644 index 0000000000..319a09941d --- /dev/null +++ b/source3/aparser/spool.struct @@ -0,0 +1,76 @@ +module spool +test PRINTER_DRIVER_INFO_LEVEL_3 + +struct BUFFER5 { + .align 4; + uint32 buf_len; + {buf_len} uint16 buffer; +}; + +struct UNISTR2 { + .align 4; + uint32 max_len; + uint32 undoc; + uint32 str_len; + {str_len} uint16 buffer; +}; + +struct UINT64_S { + uint32 low; + uint32 high; +}; + +struct NTTIME { + uint32 low; + uint32 high; +}; + +struct PRINTER_DRIVER_INFO_LEVEL_3 { + .align 4; + uint32 cversion; + UNISTR2 *name; + UNISTR2 *environment; + UNISTR2 *driverpath; + UNISTR2 *datafile; + UNISTR2 *configfile; + UNISTR2 *helpfile; + UNISTR2 *monitorname; + UNISTR2 *defaultdatatype; + uint32 dependentfiles_len; + BUFFER5 *dependentfiles; +}; + +struct PRINTER_DRIVER_INFO_LEVEL_6 { + .align 4; + uint32 dummy1; + uint32 version; + UNISTR2 *name; + UNISTR2 *environment; + UNISTR2 *driverpath; + UNISTR2 *datafile; + UNISTR2 *configfile; + UNISTR2 *helpfile; + UNISTR2 *monitorname; + UNISTR2 *defaultdatatype; + uint32 dependentfiles_len; + BUFFER5 *dependentfiles; + uint32 previousnames_len; + BUFFER5 *previousnames; + NTTIME driverdate; + UINT64_S driverversion; + uint32 dummy4; + UNISTR2 *mfgname; + UNISTR2 *oemurl; + UNISTR2 *hardwareid; + UNISTR2 *provider; +}; + + +struct PRINTER_DRIVER_INFO { + .align 4; + uint32 level; + union level *info { + case 3 PRINTER_DRIVER_INFO_LEVEL_3 info_3; + case 6 PRINTER_DRIVER_INFO_LEVEL_6 info_6; + } +}; |