ReactOS  0.4.12-dev-57-g7050ac4
nfs41_callback.h
Go to the documentation of this file.
1 /* NFSv4.1 client for Windows
2  * Copyright 2012 The Regents of the University of Michigan
3  *
4  * Olga Kornievskaia <aglo@umich.edu>
5  * Casey Bodley <cbodley@umich.edu>
6  *
7  * This library is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU Lesser General Public License as published by
9  * the Free Software Foundation; either version 2.1 of the License, or (at
10  * your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful, but
13  * without any warranty; without even the implied warranty of merchantability
14  * or fitness for a particular purpose. See the GNU Lesser General Public
15  * License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public License
18  * along with this library; if not, write to the Free Software Foundation,
19  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20  */
21 
22 #ifndef __NFS41_CALLBACK_H__
23 #define __NFS41_CALLBACK_H__
24 
25 #include "wintirpc.h"
26 #include "rpc/rpc.h"
27 #include "nfs41_types.h"
28 
29 
31  CB_NULL = 0,
33 };
34 
48  OP_CB_ILLEGAL = 10044
49 };
50 
51 int nfs41_handle_callback(void *, void *, void *);
52 
53 /* OP_CB_LAYOUTRECALL */
59 };
63 };
64 struct cb_recall {
65 #ifdef __REACTOS__
66  uint32_t type;
67 #else
69 #endif
71 };
73 #ifdef __REACTOS__
74  uint32_t type;
75  uint32_t iomode;
76 #else
78  enum pnfs_iomode iomode;
79 #endif
81  struct cb_recall recall;
82 };
83 
86 };
87 
88 /* OP_CB_RECALL_SLOT */
91 };
92 
95 };
96 
97 /* OP_CB_SEQUENCE */
101 };
103  char sessionid[NFS4_SESSIONID_SIZE];
106 };
108  char sessionid[NFS4_SESSIONID_SIZE];
115 };
116 
118  char sessionid[NFS4_SESSIONID_SIZE];
123 };
127 };
128 
129 /* OP_CB_GETATTR */
133 };
134 
138 };
139 
140 /* OP_CB_RECALL */
145 };
146 
149 };
150 
151 /* OP_CB_NOTIFY */
154 };
155 
158 };
159 
160 /* OP_CB_PUSH_DELEG */
163 };
164 
167 };
168 
169 /* OP_CB_RECALL_ANY */
172 };
173 
176 };
177 
178 /* OP_CB_RECALLABLE_OBJ_AVAIL */
181 };
182 
185 };
186 
187 /* OP_CB_WANTS_CANCELLED */
190 };
191 
194 };
195 
196 /* OP_CB_NOTIFY_LOCK */
199 };
200 
203 };
204 
205 /* OP_CB_NOTIFY_DEVICEID */
209 };
211  unsigned char deviceid[16];
213 #ifdef __REACTOS__
214  uint32_t layouttype;
215 #else
216  enum pnfs_layout_type layouttype;
217 #endif
219 };
220 struct notify4 {
222  char *list;
224 };
230 };
231 
234 };
235 
236 /* CB_COMPOUND */
237 #define CB_COMPOUND_MAX_TAG 64
238 #define CB_COMPOUND_MAX_OPERATIONS 16
239 
240 union cb_op_args {
241  struct cb_layoutrecall_args layoutrecall;
242  struct cb_recall_slot_args recall_slot;
244  struct cb_getattr_args getattr;
245  struct cb_recall_args recall;
246  struct cb_notify_deviceid_args notify_deviceid;
247 };
248 struct cb_argop {
250  union cb_op_args args;
251 };
255 };
259  uint32_t callback_ident; /* client MUST ignore */
261  uint32_t argarray_count; /* <= CB_COMPOUND_MAX_OPERATIONS */
262 };
263 
264 union cb_op_res {
265  enum_t status; /* all results start with status */
266  struct cb_layoutrecall_res layoutrecall;
267  struct cb_recall_slot_res recall_slot;
269  struct cb_getattr_res getattr;
270  struct cb_recall_res recall;
271  struct cb_notify_deviceid_res notify_deviceid;
272 };
273 struct cb_resop {
275  union cb_op_res res;
277 };
282  uint32_t resarray_count; /* <= CB_COMPOUND_MAX_OPERATIONS */
283 };
284 
285 
286 /* callback_xdr.c */
289 
290 /* callback_server.c */
291 struct __nfs41_session;
293  IN struct __nfs41_session *session);
294 
295 #endif /* !__NFS41_CALLBACK_H__ */
#define IN
Definition: typedefs.h:38
#define NFS4_SESSIONID_SIZE
Definition: nfs41_const.h:32
struct cb_resop * resarray
int32_t bool_t
Definition: types.h:101
uint32_t len
uint32_t target_highest_slotid
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
Definition: ecma_167.h:138
nfs41_callback_proc
enum_t status
stateid4 stateid
Definition: match.c:390
Definition: xdr.h:103
enum_t opnum
bool_t xdr_ok
uint32_t callback_ident
const WCHAR * str
nfs41_callback_op
#define CB_COMPOUND_MAX_TAG
uint32_t target_highest_slotid
int nfs41_handle_callback(void *, void *, void *)
#define ok(value,...)
Definition: CComObject.cpp:34
struct cb_sequence_ref_list * ref_lists
uint32_t target_highest_slotid
notify_deviceid_type4
pnfs_return_type
Definition: pnfs.h:100
pnfs_layout_type
Definition: pnfs.h:74
uint32_t target_highest_slotid
void nfs41_callback_session_init(IN struct __nfs41_session *session)
struct notify_deviceid4 * change_list
bool_t proc_cb_compound_args(XDR *xdr, struct cb_compound_args *args)
Definition: callback_xdr.c:590
uint32_t sequenceid
int32_t enum_t
Definition: types.h:102
static struct message * sequence
Definition: subclass.c:48
uint32_t resarray_count
struct cb_sequence_ref * calls
enum_t opnum
UINT64 uint64_t
Definition: types.h:77
struct cb_argop * argarray
UINT32 uint32_t
Definition: types.h:75
struct notify4 * notify_list
uint32_t target_highest_slotid
bool_t proc_cb_compound_res(XDR *xdr, struct cb_compound_res *res)
Definition: callback_xdr.c:638
uint32_t argarray_count
uint32_t ref_list_count
GLuint res
Definition: glext.h:9613
uint32_t target_highest_slotid
uint32_t highest_slotid
pnfs_iomode
Definition: pnfs.h:80
bitmap4 mask
nfs41_file_info info
char * list
Definition: fci.c:126