mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
c4f281e9ae
The LIBNDR_FLAG_ namespace is getting dangerously full, with only a single flag value (1 << 9) remaining for use. After that flag is put into use, we won’t be able to add any new flags without increasing the flag width to 64‐bit. Up to now we’ve used a haphazard mix of int, unsigned, and uint32_t to store these flags. Introduce a new type, ‘libndr_flags’, to be used consistently to hold LIBNDR flags. If in the future we find we need to move to 64‐bit flags, this type gives us an opportunity to do that. Bump the NDR version to 4.0.0 — an major version increment, for we’re changing the function ABI and adding the new symbol ndr_print_libndr_flags. Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
157 lines
4.6 KiB
Plaintext
157 lines
4.6 KiB
Plaintext
#include "idl_types.h"
|
|
|
|
/*
|
|
old s3 spoolss tdb on-disc interface definitions
|
|
*/
|
|
|
|
[
|
|
pointer_default(unique),
|
|
helpstring("s3 printing tdb formats"),
|
|
uuid("a025d3cb-c605-40d6-86e1-4cff18e7dd94"),
|
|
helper("../librpc/ndr/ndr_ntprinting.h")
|
|
]
|
|
interface ntprinting
|
|
{
|
|
/* Samba 3 tdb storage format: forms
|
|
* "dddddddd" */
|
|
|
|
typedef [flag(NDR_NOALIGN),public] struct {
|
|
uint32 position;
|
|
uint32 flag;
|
|
uint32 width;
|
|
uint32 length;
|
|
uint32 left;
|
|
uint32 top;
|
|
uint32 right;
|
|
uint32 bottom;
|
|
} ntprinting_form;
|
|
|
|
/*
|
|
* First the string flags and then the Samba 3 tdb storage
|
|
* format: drivers
|
|
* "dffffffff" followed by a remaining buffer of "f" array */
|
|
|
|
typedef [flag(NDR_NOALIGN),public] struct {
|
|
[skip_noinit] libndr_flags string_flags;
|
|
|
|
uint32 version;
|
|
[flag(ndr_ntprinting_string_flags(r->string_flags))] string name;
|
|
[flag(ndr_ntprinting_string_flags(r->string_flags))] string environment;
|
|
[flag(ndr_ntprinting_string_flags(r->string_flags))] string driverpath;
|
|
[flag(ndr_ntprinting_string_flags(r->string_flags))] string datafile;
|
|
[flag(ndr_ntprinting_string_flags(r->string_flags))] string configfile;
|
|
[flag(ndr_ntprinting_string_flags(r->string_flags))] string helpfile;
|
|
[flag(ndr_ntprinting_string_flags(r->string_flags))] string monitorname;
|
|
[flag(ndr_ntprinting_string_flags(r->string_flags))] string defaultdatatype;
|
|
[flag((ndr_ntprinting_string_flags(r->string_flags)&~STR_NULLTERM)|STR_NOTERM|NDR_REMAINING)] string_array dependent_files;
|
|
} ntprinting_driver;
|
|
|
|
/* Samba 3 tdb storage format: devicemode
|
|
* "p" ptr to devicemode
|
|
* "ffwwwwwwwwwwwwwwwwwwdddddddddddddd"
|
|
* "p" ptr to devicemode private data
|
|
* "B" private data blob */
|
|
|
|
typedef [flag(NDR_NOALIGN),public] struct {
|
|
[skip_noinit] libndr_flags string_flags;
|
|
|
|
/* uint32 devicemode_ptr; */
|
|
[flag(ndr_ntprinting_string_flags(r->string_flags))] string devicename;
|
|
[flag(ndr_ntprinting_string_flags(r->string_flags))] string formname;
|
|
uint16 specversion;
|
|
uint16 driverversion;
|
|
uint16 size;
|
|
uint16 driverextra;
|
|
uint16 orientation;
|
|
uint16 papersize;
|
|
uint16 paperlength;
|
|
uint16 paperwidth;
|
|
uint16 scale;
|
|
uint16 copies;
|
|
uint16 defaultsource;
|
|
uint16 printquality;
|
|
uint16 color;
|
|
uint16 duplex;
|
|
uint16 yresolution;
|
|
uint16 ttoption;
|
|
uint16 collate;
|
|
uint16 logpixels;
|
|
uint32 fields;
|
|
uint32 bitsperpel;
|
|
uint32 pelswidth;
|
|
uint32 pelsheight;
|
|
uint32 displayflags;
|
|
uint32 displayfrequency;
|
|
uint32 icmmethod;
|
|
uint32 icmintent;
|
|
uint32 mediatype;
|
|
uint32 dithertype;
|
|
uint32 reserved1;
|
|
uint32 reserved2;
|
|
uint32 panningwidth;
|
|
uint32 panningheight;
|
|
DATA_BLOB *nt_dev_private;
|
|
} ntprinting_devicemode;
|
|
|
|
/*
|
|
* First the string flags and then the Samba 3 tdb storage
|
|
* format: printer_data
|
|
* "p" ptr to printer_data
|
|
* "fdB" */
|
|
|
|
typedef [flag(NDR_NOALIGN),public] struct {
|
|
[skip_noinit] libndr_flags string_flags;
|
|
|
|
uint32 ptr;
|
|
[flag(ndr_ntprinting_string_flags(r->string_flags))] string name;
|
|
uint32 type;
|
|
DATA_BLOB data;
|
|
} ntprinting_printer_data;
|
|
|
|
/*
|
|
* First the string flags and then the Samba 3 tdb storage
|
|
* format: printer_info
|
|
* "dddddddddddfffffPfffff"
|
|
*/
|
|
|
|
typedef [flag(NDR_NOALIGN),public] struct {
|
|
[skip_noinit] libndr_flags string_flags;
|
|
|
|
uint32 attributes;
|
|
uint32 priority;
|
|
uint32 default_priority;
|
|
uint32 starttime;
|
|
uint32 untiltime;
|
|
uint32 status;
|
|
uint32 cjobs;
|
|
uint32 averageppm;
|
|
uint32 changeid;
|
|
uint32 c_setprinter;
|
|
uint32 setuptime;
|
|
[flag(ndr_ntprinting_string_flags(r->string_flags))] string servername;
|
|
[flag(ndr_ntprinting_string_flags(r->string_flags))] string printername;
|
|
[flag(ndr_ntprinting_string_flags(r->string_flags))] string sharename;
|
|
[flag(ndr_ntprinting_string_flags(r->string_flags))] string portname;
|
|
[flag(ndr_ntprinting_string_flags(r->string_flags))] string drivername;
|
|
[flag(ndr_ntprinting_string_flags(r->string_flags))] string comment;
|
|
[flag(ndr_ntprinting_string_flags(r->string_flags))] string location;
|
|
[flag(ndr_ntprinting_string_flags(r->string_flags))] string sepfile;
|
|
[flag(ndr_ntprinting_string_flags(r->string_flags))] string printprocessor;
|
|
[flag(ndr_ntprinting_string_flags(r->string_flags))] string datatype;
|
|
[flag(ndr_ntprinting_string_flags(r->string_flags))] string parameters;
|
|
} ntprinting_printer_info;
|
|
|
|
/* Abstract Samba 3 printer
|
|
* printer_info
|
|
* followed by ntprinting_devicemode
|
|
* followed by remaining buffer of ntprinting_printer_data array */
|
|
|
|
typedef [flag(NDR_NOALIGN),public,nopull] struct {
|
|
ntprinting_printer_info info;
|
|
ntprinting_devicemode *devmode;
|
|
uint32 count;
|
|
ntprinting_printer_data printer_data[count];
|
|
} ntprinting_printer;
|
|
|
|
}
|