9885ca5bf652f287a8015d6aa3e63d65ba239f20
[kai/samba.git] / source4 / 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_CONFORMANT  LIBNDR_FLAG_STR_CONFORMANT
9 #define STR_CHARLEN     LIBNDR_FLAG_STR_CHARLEN
10 #define STR_UTF8        LIBNDR_FLAG_STR_UTF8
11
12 /*
13   a null terminated UCS2 string
14 */
15 #define nstring         [flag(STR_NULLTERM)] string
16
17 /*
18   an ascii string prefixed with [offset] [length], both 32 bits
19   null terminated
20 */
21 #define ascstr2         [flag(STR_ASCII|STR_LEN4)] string
22
23 /*
24   an ascii string prefixed with [size], 32 bits
25 */
26 #define asclstr         [flag(STR_ASCII|STR_SIZE4)] string
27
28 /*
29   an ascii string prefixed with [size], 16 bits
30   null terminated
31 */
32 #define ascstr3         [flag(STR_ASCII|STR_SIZE2)] string
33
34 /*
35   an ascii string prefixed with [size] [offset] [length], all 32 bits
36   not null terminated
37 */
38 #define ascstr_noterm   [flag(STR_NOTERM|STR_ASCII|STR_SIZE4|STR_LEN4)] string
39
40 /*
41   a null terminated ascii string
42 */
43 #define astring         [flag(STR_ASCII|STR_NULLTERM)] string
44
45 /*
46   a null terminated UTF8 string
47 */
48 #define utf8string      [flag(STR_UTF8|STR_NULLTERM)] string
49
50 /*
51   a null terminated UCS2 string
52 */
53 #define nstring_array   [flag(STR_NULLTERM)] string_array
54
55 #define NDR_NOALIGN       LIBNDR_FLAG_NOALIGN
56 #define NDR_REMAINING     LIBNDR_FLAG_REMAINING
57 #define NDR_ALIGN2        LIBNDR_FLAG_ALIGN2
58 #define NDR_ALIGN4        LIBNDR_FLAG_ALIGN4
59 #define NDR_ALIGN8        LIBNDR_FLAG_ALIGN8
60
61 /* this flag is used to force a section of IDL as little endian. It is
62    needed for the epmapper IDL, which is defined as always being LE */
63 #define NDR_LITTLE_ENDIAN LIBNDR_FLAG_LITTLE_ENDIAN
64 #define NDR_BIG_ENDIAN LIBNDR_FLAG_BIGENDIAN
65
66 /*
67   this is used to control formatting of uint8 arrays
68 */
69 #define NDR_PAHEX LIBNDR_PRINT_ARRAY_HEX