From b7022e94d2ab62d522b0a7c2886cce3afaff6872 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sun, 14 May 2000 14:05:10 +0000 Subject: 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) --- source3/aparser/spool.struct | 76 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 source3/aparser/spool.struct (limited to 'source3/aparser/spool.struct') 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; + } +}; -- cgit