Registry server LDB backend: Don't make copies of the same type
[kai/samba.git] / source3 / librpc / idl / idl_types.h
1 #define STR_ASCII       LIBNDR_FLAG_STR_ASCII
2 #define STR_LEN4        LIBNDR_FLAG_STR_LEN4
3 #define STR_SIZE4       LIBNDR_FLAG_STR_SIZE4
4 #define STR_SIZE2       LIBNDR_FLAG_STR_SIZE2
5 #define STR_NOTERM      LIBNDR_FLAG_STR_NOTERM
6 #define STR_NULLTERM    LIBNDR_FLAG_STR_NULLTERM
7 #define STR_BYTESIZE    LIBNDR_FLAG_STR_BYTESIZE
8 #define STR_FIXLEN32    LIBNDR_FLAG_STR_FIXLEN32
9 #define STR_FIXLEN15    LIBNDR_FLAG_STR_FIXLEN15
10 #define STR_CONFORMANT  LIBNDR_FLAG_STR_CONFORMANT
11 #define STR_CHARLEN     LIBNDR_FLAG_STR_CHARLEN
12 #define STR_UTF8        LIBNDR_FLAG_STR_UTF8
13
14 /*
15   a UCS2 string prefixed with [size], 32 bits
16 */
17 #define lstring         [flag(STR_SIZE4)] string
18
19 /*
20   a null terminated UCS2 string
21 */
22 #define nstring         [flag(STR_NULLTERM)] string
23
24 /*
25   fixed length 32 character UCS-2 string
26 */
27 #define string32        [flag(STR_FIXLEN32)] string
28
29 /*
30   fixed length 16 character ascii string
31 */
32 #define astring15       [flag(STR_ASCII|STR_FIXLEN15)] string
33
34 /*
35   an ascii string prefixed with [offset] [length], both 32 bits
36   null terminated
37 */
38 #define ascstr2         [flag(STR_ASCII|STR_LEN4)] string
39
40 /*
41   an ascii string prefixed with [size], 32 bits
42 */
43 #define asclstr         [flag(STR_ASCII|STR_SIZE4)] string
44
45 /*
46   an ascii string prefixed with [size], 16 bits
47   null terminated
48 */
49 #define ascstr3         [flag(STR_ASCII|STR_SIZE2)] string
50
51 /*
52   an ascii string prefixed with [size] [offset] [length], all 32 bits
53   not null terminated
54 */
55 #define ascstr_noterm   [flag(STR_NOTERM|STR_ASCII|STR_SIZE4|STR_LEN4)] string
56
57 /*
58   a null terminated ascii string
59 */
60 #define astring         [flag(STR_ASCII|STR_NULLTERM)] string
61
62 /*
63   a null terminated UTF8 string
64 */
65 #define utf8string      [flag(STR_UTF8|STR_NULLTERM)] string
66
67 /*
68   a null terminated UCS2 string
69 */
70 #define nstring_array   [flag(STR_NULLTERM)] string_array
71
72 #define NDR_NOALIGN       LIBNDR_FLAG_NOALIGN
73 #define NDR_REMAINING     LIBNDR_FLAG_REMAINING
74 #define NDR_ALIGN2        LIBNDR_FLAG_ALIGN2
75 #define NDR_ALIGN4        LIBNDR_FLAG_ALIGN4
76 #define NDR_ALIGN8        LIBNDR_FLAG_ALIGN8
77
78 /* this flag is used to force a section of IDL as little endian. It is
79    needed for the epmapper IDL, which is defined as always being LE */
80 #define NDR_LITTLE_ENDIAN LIBNDR_FLAG_LITTLE_ENDIAN
81 #define NDR_BIG_ENDIAN LIBNDR_FLAG_BIGENDIAN
82
83 /*
84   this is used to control formatting of uint8 arrays
85 */
86 #define NDR_PAHEX LIBNDR_PRINT_ARRAY_HEX