summaryrefslogtreecommitdiffstats
path: root/src/VBox/Devices/Graphics/shaderlib/wine/include/wine/rpcfc.h
blob: 53dd1633087493a6b4039c84ac31552717cb59c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
/*
 * RPC format chars, as found by studying MIDL output.
 * Some, but not all, usage of these are explained on MSDN.
 */

#ifndef __WINE_RPCFC_H
#define __WINE_RPCFC_H

/* base types */
#define RPC_FC_BYTE			0x01
#define RPC_FC_CHAR			0x02
#define RPC_FC_SMALL			0x03
#define RPC_FC_USMALL			0x04
#define RPC_FC_WCHAR			0x05
#define RPC_FC_SHORT			0x06
#define RPC_FC_USHORT			0x07
#define RPC_FC_LONG			0x08
#define RPC_FC_ULONG			0x09
#define RPC_FC_FLOAT			0x0a
#define RPC_FC_HYPER			0x0b
#define RPC_FC_DOUBLE			0x0c
#define RPC_FC_ENUM16			0x0d
#define RPC_FC_ENUM32			0x0e
#define RPC_FC_IGNORE			0x0f
#define RPC_FC_ERROR_STATUS_T		0x10

/* other stuff */
#define RPC_FC_RP			0x11 /* reference pointer */
#define RPC_FC_UP			0x12 /* unique pointer */
#define RPC_FC_OP			0x13 /* unique pointer in object ? */
#define RPC_FC_FP			0x14 /* full pointer */

#define RPC_FC_STRUCT			0x15 /* simple structure */
/* FC_STRUCT: align-1, NdrFcShort(size), fields */

#define RPC_FC_PSTRUCT			0x16 /* simple structure w/ pointers */
/* FC_PTRUCT: align-1, NdrFcShort(size), ptrs, fields */

#define RPC_FC_CSTRUCT			0x17 /* conformant structure */

#define RPC_FC_CPSTRUCT                 0x18 /* conformant structure w/ pointers */

#define RPC_FC_CVSTRUCT                 0x19 /* conformant varying struct */

#define RPC_FC_BOGUS_STRUCT		0x1a /* complex structure */

#define RPC_FC_CARRAY			0x1b /* conformant array */
/* FC_CARRAY: align-1, NdrFcShort(size), conformance, ptrs, fields */
#define RPC_FC_CVARRAY			0x1c /* conformant varying array */
/* FC_CARRAY: align-1, NdrFcShort(size), conformance, variance, ptrs, fields */
#define RPC_FC_SMFARRAY			0x1d /* small (<64K) fixed array */
/* FC_SMFARRAY: align-1, NdrFcShort(size), ptrs, fields */

#define RPC_FC_LGFARRAY                 0x1e /* large (>= 64k) fixed array */

#define RPC_FC_SMVARRAY                 0x1f /* small (<64k) varying array */

#define RPC_FC_LGVARRAY                 0x20 /* large (>= 64k) varying array */

#define RPC_FC_BOGUS_ARRAY		0x21 /* complex array */

#define RPC_FC_C_CSTRING		0x22
#define RPC_FC_C_SSTRING		0x24
#define RPC_FC_C_WSTRING		0x25
#define RPC_FC_CSTRING                  0x26
#define RPC_FC_SSTRING			0x28
#define RPC_FC_WSTRING                  0x29

#define RPC_FC_ENCAPSULATED_UNION	0x2a
#define RPC_FC_NON_ENCAPSULATED_UNION	0x2b

#define RPC_FC_BYTE_COUNT_POINTER       0x2c /* [byte_count] ACF attribute */

#define RPC_FC_TRANSMIT_AS              0x2d
#define RPC_FC_REPRESENT_AS             0x2e

#define RPC_FC_IP			0x2f /* interface pointer */
/* FC_IP: FC_CONSTANT_IID iid */
/* FC_IP: FC_PAD correlation */

#define RPC_FC_BIND_CONTEXT		0x30

#define RPC_FC_BIND_GENERIC		0x31
#define RPC_FC_BIND_PRIMITIVE		0x32
#define RPC_FC_AUTO_HANDLE		0x33
#define RPC_FC_CALLBACK_HANDLE		0x34

#define RPC_FC_POINTER			0x36

#define RPC_FC_ALIGNM2			0x37
#define RPC_FC_ALIGNM4			0x38
#define RPC_FC_ALIGNM8			0x39

#define RPC_FC_STRUCTPAD1		0x3d
#define RPC_FC_STRUCTPAD2		0x3e
#define RPC_FC_STRUCTPAD3		0x3f
#define RPC_FC_STRUCTPAD4       0x40
#define RPC_FC_STRUCTPAD5       0x41
#define RPC_FC_STRUCTPAD6       0x42
#define RPC_FC_STRUCTPAD7       0x43

#define RPC_FC_STRING_SIZED		0x44

#define RPC_FC_NO_REPEAT		0x46
#define RPC_FC_FIXED_REPEAT		0x47
#define RPC_FC_VARIABLE_REPEAT		0x48
#define RPC_FC_FIXED_OFFSET		0x49
#define RPC_FC_VARIABLE_OFFSET		0x4a

#define RPC_FC_PP			0x4b /* pointer layout */
/* FC_PP: FC_PAD layouts */
/* layouts: FC_NO_REPEAT FC_PAD instance */
/* instance: NdrFcShort(memofs), NdrFcShort(bufofs), desc */

#define RPC_FC_EMBEDDED_COMPLEX		0x4c
/* FC_EMBEDDED_COMPLEX: padding, NdrFcShort(typeofs) */

#define RPC_FC_IN_PARAM			0x4d
/* FC_IN_PARAM: stacksiz, NdrFcShort(typeofs) */
#define RPC_FC_IN_PARAM_BASETYPE	0x4e
/* FC_IN_PARAM_BASETYPE: basetype */
#define RPC_FC_IN_PARAM_NO_FREE_INST	0x4f
#define RPC_FC_IN_OUT_PARAM		0x50
/* FC_IN_OUT_PARAM: stacksiz, NdrFcShort(typeofs) */
#define RPC_FC_OUT_PARAM		0x51
/* FC_OUT_PARAM: stacksiz, NdrFcShort(typeofs) */
#define RPC_FC_RETURN_PARAM		0x52
/* FC_RETURN_PARAM: stacksiz, NdrFcShort(typeofs) */
#define RPC_FC_RETURN_PARAM_BASETYPE	0x53
/* FC_RETURN_PARAM_BASETYPE: basetype */

#define RPC_FC_DEREFERENCE		0x54
#define RPC_FC_DIV_2			0x55
#define RPC_FC_MULT_2			0x56
#define RPC_FC_ADD_1			0x57
#define RPC_FC_SUB_1			0x58

#define RPC_FC_CALLBACK			0x59

#define RPC_FC_CONSTANT_IID		0x5a
/* FC_CONSTANT_IID: NdrFcLong(), NdrFcShort(), NdrFcShort(), 8x () */

#define RPC_FC_END			0x5b
#define RPC_FC_PAD			0x5c

#define RPC_FC_USER_MARSHAL		0xb4

#define RPC_FC_RANGE			0xb7

#define RPC_FC_INT3264			0xb8
#define RPC_FC_UINT3264			0xb9

/* FC_RP/UP/OP/FP: flags, NdrFcShort(typeofs)/basetype */
#define RPC_FC_P_ALLOCALLNODES		0x01
#define RPC_FC_P_DONTFREE		0x02
#define RPC_FC_P_ONSTACK		0x04 /* [alloced_on_stack] */
#define RPC_FC_P_SIMPLEPOINTER		0x08 /* [simple_pointer] */
#define RPC_FC_P_DEREF			0x10

#define RPC_FC_BIND_EXPLICIT		0x00

/* proc header: oiflags, NdrFcLong(rpcflags), NdrFcShort(procnum), NdrFcShort(stacksiz),
 *  oi2 header: NdrFcShort(clientbuf), NdrFcShort(servbuf), oi2flags, parmcount
 * oi2 parameters: NdrFcShort(flags), NdrFcShort(stackofs), NdrFcShort(typeofs)/basetype */
#define RPC_FC_PROC_OIF_FULLPTR         0x01
#define RPC_FC_PROC_OIF_RPCSSALLOC      0x02
#define RPC_FC_PROC_OIF_OBJECT          0x04
#define RPC_FC_PROC_OIF_RPCFLAGS        0x08
#define RPC_FC_PROC_OIF_OBJ_V2          0x20
#define RPC_FC_PROC_OIF_HAS_COMM_OR_FAULT 0x20
#define RPC_FC_PROC_OIF_NEWINIT         0x40

#define RPC_FC_PROC_PF_MUSTSIZE         0x0001
#define RPC_FC_PROC_PF_MUSTFREE         0x0002
#define RPC_FC_PROC_PF_PIPE             0x0004
#define RPC_FC_PROC_PF_IN               0x0008
#define RPC_FC_PROC_PF_OUT              0x0010
#define RPC_FC_PROC_PF_RETURN           0x0020
#define RPC_FC_PROC_PF_BASETYPE         0x0040
#define RPC_FC_PROC_PF_BYVAL            0x0080
#define RPC_FC_PROC_PF_SIMPLEREF        0x0100
#define RPC_FC_PROC_PF_DONTFREEINST     0x0200
#define RPC_FC_PROC_PF_SAVEASYNC        0x0400
#define RPC_FC_PROC_PF_SRVALLOCSIZE     0xe000 /* in 8 byte units */

/* correlation types */
#define RPC_FC_NORMAL_CONFORMANCE		0x00
#define RPC_FC_POINTER_CONFORMANCE		0x10
#define RPC_FC_TOP_LEVEL_CONFORMANCE		0x20
#define RPC_FC_CONSTANT_CONFORMANCE		0x40
#define RPC_FC_TOP_LEVEL_MULTID_CONFORMANCE	0x80

/* user marshal flags */
#define USER_MARSHAL_UNIQUE	0x80
#define USER_MARSHAL_REF	0x40
#define USER_MARSHAL_POINTER	0xc0
#define USER_MARSHAL_IID	0x20

/* context handle flags */
#define NDR_CONTEXT_HANDLE_CANNOT_BE_NULL   0x01
#define NDR_CONTEXT_HANDLE_SERIALIZE        0x02
#define NDR_CONTEXT_HANDLE_NO_SERIALIZE     0x04
#define NDR_STRICT_CONTEXT_HANDLE           0x08

#endif /* __WINE_RPCFC_H */