ReactOS  0.4.12-dev-18-gf469aca
nfs41.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__
23 #define __NFS41__
24 
25 #include "util.h"
26 #include "list.h"
27 
28 
29 struct __nfs41_session;
30 struct __nfs41_client;
31 struct __rpc_client;
32 struct __nfs41_root;
33 
36 
37 typedef struct __nfs41_superblock {
39  struct list_entry entry; /* position in nfs41_server.superblocks */
40 
44 
48 
49  /* constant filesystem attributes */
50  unsigned int layout_types : 3;
51  unsigned int aclsupport : 3;
52  unsigned int cansettime : 1;
53  unsigned int link_support : 1;
54  unsigned int symlink_support : 1;
55  unsigned int ea_support : 1;
56  unsigned int case_preserving : 1;
57  unsigned int case_insensitive : 1;
58 
59  /* variable filesystem attributes */
63  time_t cache_expiration; /* applies to space_ attributes */
64 
65  SRWLOCK lock;
67 
68 typedef struct __nfs41_superblock_list {
69  struct list_entry head;
70  SRWLOCK lock;
72 
73 struct server_addrs {
74  multi_addr4 addrs; /* list of addrs we've used with this server */
76  SRWLOCK lock;
77 };
78 
79 typedef struct __nfs41_server {
80  char scope[NFS4_OPAQUE_LIMIT]; /* server_scope from exchangeid */
81  char owner[NFS4_OPAQUE_LIMIT]; /* server_owner.major_id from exchangeid */
85  struct list_entry entry; /* position in global server list */
87 } nfs41_server;
88 
93 };
94 
95 typedef struct __nfs41_delegation_state {
100  struct list_entry client_entry; /* entry in nfs41_client.delegations */
102 
104  SRWLOCK lock;
105  CONDITION_VARIABLE cond;
106 
107  bool_t revoked; /* for recovery, accessed under client.state.lock */
108 
109  HANDLE srv_open; /* for rdbss cache invalidation */
111 
112 typedef struct __nfs41_lock_state {
113  struct list_entry open_entry; /* entry in nfs41_open_state.locks */
117  uint32_t delegated : 1; /* whether or not there is state on the server */
118  uint32_t id : 30;
120 
121 /* nfs41_open_state reference counting:
122  * one reference is held implicitly by the driver (initialized to 1 on
123  * OPEN and released on CLOSE). other references must be held during
124  * upcalls to prevent a parallel CLOSE from freeing it prematurely. by
125  * calling upcall_open_state_ref() when parsing the upcall, you are
126  * guaranteed a matching dereference on upcall_cleanup() */
127 typedef struct __nfs41_open_state {
138  struct list_entry client_entry; /* entry in nfs41_client.opens */
139  SRWLOCK lock;
143  uint64_t pnfs_last_offset; /* for layoutcommit */
144 
145  struct {
148  CONDITION_VARIABLE cond;
149  } delegation;
150 
151  struct { /* list of open lock state for recovery */
152  stateid4 stateid;
153  struct list_entry list;
156  } locks;
157 
158  struct {
162  } ea;
163 
164  HANDLE srv_open; /* for data cache invalidation */
166 
167 typedef struct __nfs41_rpc_clnt {
168  struct __rpc_client *rpc;
169  SRWLOCK lock;
173  uint32_t addr_index; /* index of addr we're using */
185 
186 struct client_state {
187  struct list_entry opens; /* list of associated nfs41_open_state */
188  struct list_entry delegations; /* list of associated delegations */
190 };
191 
192 typedef struct __nfs41_client {
198  SRWLOCK exid_lock;
200  SRWLOCK session_lock;
205  struct list_entry root_entry; /* position in nfs41_root.clients */
207 
208  struct {
209  CONDITION_VARIABLE cond;
212  } recovery;
213 
214  /* for state recovery on server reboot */
216 } nfs41_client;
217 
218 #define NFS41_MAX_NUM_SLOTS NFS41_MAX_RPC_REQS
219 typedef struct __nfs41_slot_table {
227  CONDITION_VARIABLE cond;
229 
230 typedef struct __nfs41_channel_attrs {
239 
240 struct replay_cache {
243 };
244 
245 typedef struct __nfs41_cb_session {
246  struct {
249  } replay;
250  const unsigned char *cb_sessionid; /* -> nfs41_session.session_id */
254 
255 typedef struct __nfs41_session {
257  unsigned char session_id[NFS4_SESSIONID_SIZE];
262  // array of slots
267 } nfs41_session;
268 
269 /* nfs41_root reference counting:
270  * similar to nfs41_open_state, the driver holds an implicit reference
271  * between MOUNT and UNMOUNT. all other upcalls use upcall_root_ref() on
272  * upcall_parse(), which prevents the root/clients from being freed and
273  * guarantees a matching deref on upcall_cleanup() */
274 typedef struct __nfs41_root {
277  struct list_entry clients;
284 } nfs41_root;
285 
286 
287 /* nfs41_namespace.c */
289  IN const char *name,
291  IN uint32_t wsize,
292  IN uint32_t rsize,
293  OUT nfs41_root **root_out);
294 
295 void nfs41_root_ref(
296  IN nfs41_root *root);
297 
298 void nfs41_root_deref(
299  IN nfs41_root *root);
300 
302  IN nfs41_root *root,
303  IN const multi_addr4 *addrs,
304  IN bool_t is_data,
305  IN OPTIONAL uint32_t lease_time,
306  OUT nfs41_client **client_out);
307 
309  IN nfs41_root *root,
311  IN bool_t is_data,
312  IN OPTIONAL uint32_t lease_time,
313  OUT nfs41_client **client_out);
314 
316  IN nfs41_root *root,
317  IN const fs_locations4 *locations,
318  OUT const fs_location4 **loc_out,
319  OUT nfs41_client **client_out);
320 
322  IN nfs41_root *root)
323 {
325  /* return a session for the server at the root of the namespace.
326  * because we created it on mount, it's the first one in the list */
327  EnterCriticalSection(&root->lock);
328  client = list_container(root->clients.next, nfs41_client, root_entry);
329  LeaveCriticalSection(&root->lock);
330  return client->session;
331 }
332 
333 
334 /* nfs41_session.c */
337  IN nfs41_session **session_out);
338 
340  IN nfs41_session *session);
341 
343  IN nfs41_session *session,
344  IN uint32_t lease_time);
345 
346 void nfs41_session_free(
347  IN nfs41_session *session);
348 
350  IN nfs41_session *session,
351  IN uint32_t slotid,
352  IN uint32_t target_highest_slotid);
353 
355  IN nfs41_session *session,
356  IN uint32_t slotid);
357 
359  IN nfs41_session *session,
360  OUT uint32_t *slot,
361  OUT uint32_t *seq,
362  OUT uint32_t *highest);
363 
365  IN nfs41_session *session,
366  IN OUT uint32_t target_highest_slotid);
367 
368 struct __nfs41_sequence_args;
370  struct __nfs41_sequence_args *args,
371  nfs41_session *session,
372  bool_t cachethis);
373 
375  IN nfs41_session *session,
376  IN OUT struct __nfs41_sequence_args *args);
377 
378 
379 /* nfs41_server.c */
381 
383  IN const char *hostname,
384  IN unsigned short port,
385  OUT multi_addr4 *addrs);
386 
388  IN const char *server_owner_major_id,
389  IN const char *server_scope,
390  IN const netaddr4 *addr,
391  OUT nfs41_server **server_out);
392 
393 void nfs41_server_ref(
395 
396 void nfs41_server_deref(
398 
399 void nfs41_server_addrs(
401  OUT multi_addr4 *addrs);
402 
403 
404 /* nfs41_client.c */
406  IN const char *name,
408  OUT client_owner4 *owner);
409 
411  IN bool_t is_data);
412 
414 
416  IN nfs41_rpc_clnt *rpc,
417  IN const client_owner4 *owner,
418  IN bool_t is_data,
419  IN const struct __nfs41_exchange_id_res *exchangeid,
420  OUT nfs41_client **client_out);
421 
424 
425 void nfs41_client_free(
427 
428 static __inline nfs41_server* client_server(
430 {
431  /* the client's server could change during nfs41_client_renew(),
432  * so access to client->server must be protected */
434  AcquireSRWLockShared(&client->exid_lock);
435  server = client->server;
436  ReleaseSRWLockShared(&client->exid_lock);
437  return server;
438 }
439 
440 
441 /* nfs41_superblock.c */
443  IN nfs41_session *session,
444  IN const nfs41_fsid *fsid,
445  IN const nfs41_fh *parent OPTIONAL,
447 
448 static __inline void nfs41_superblock_getattr_mask(
450  OUT bitmap4 *attrs)
451 {
452  memcpy(attrs, &superblock->default_getattr, sizeof(bitmap4));
453 }
454 static __inline void nfs41_superblock_supported_attrs(
456  IN OUT bitmap4 *attrs)
457 {
458  bitmap_intersect(attrs, &superblock->supported_attrs);
459 }
462  IN OUT bitmap4 *attrs)
463 {
464  bitmap_intersect(attrs, &superblock->suppattr_exclcreat);
465 }
466 
470  OUT struct _FILE_FS_ATTRIBUTE_INFORMATION *FsAttrs);
471 
474 
476  IN nfs41_superblock_list *superblocks);
477 
479  IN nfs41_superblock_list *superblocks);
480 
481 
482 /* nfs41_rpc.c */
484  IN const multi_addr4 *addrs,
485  IN uint32_t wsize,
486  IN uint32_t rsize,
487  IN uint32_t uid,
488  IN uint32_t gid,
490  OUT nfs41_rpc_clnt **rpc_out);
491 
493  IN nfs41_rpc_clnt *rpc);
494 
496  IN nfs41_rpc_clnt *rpc,
497  IN char *inbuf,
498  OUT char *outbuf);
499 
500 static __inline netaddr4* nfs41_rpc_netaddr(
501  IN nfs41_rpc_clnt *rpc)
502 {
503  uint32_t id;
504  AcquireSRWLockShared(&rpc->lock);
505  /* only addr_index needs to be protected, as rpc->addrs is write-once */
506  id = rpc->addr_index;
507  ReleaseSRWLockShared(&rpc->lock);
508 
509  /* return the netaddr used to create the rpc client */
510  return &rpc->addrs.arr[id];
511 }
512 
513 
514 /* open.c */
517 
520 
521 struct __stateid_arg;
524  OUT struct __stateid_arg *arg);
525 
526 
527 /* ea.c */
528 int nfs41_ea_set(
530  IN struct _FILE_FULL_EA_INFORMATION *ea);
531 
532 #endif /* __NFS41__ */
HANDLE srv_open
Definition: nfs41.h:164
int nfs41_root_mount_referral(IN nfs41_root *root, IN const fs_locations4 *locations, OUT const fs_location4 **loc_out, OUT nfs41_client **client_out)
Definition: namespace.c:459
SRWLOCK lock
Definition: nfs41.h:139
void nfs41_open_state_deref(IN nfs41_open_state *state)
Definition: open.c:104
#define IN
Definition: typedefs.h:38
void nfs41_open_state_ref(IN nfs41_open_state *state)
Definition: open.c:96
struct __nfs41_cb_session nfs41_cb_session
void nfs41_session_bump_seq(IN nfs41_session *session, IN uint32_t slotid, IN uint32_t target_highest_slotid)
Definition: nfs41_session.c:80
uint64_t offset
Definition: nfs41.h:114
SRWLOCK exid_lock
Definition: nfs41.h:198
nfs41_delegation_state * state
Definition: nfs41.h:146
struct __nfs41_session nfs41_session
LONG ref_count
Definition: nfs41.h:86
SRWLOCK lock
Definition: nfs41.h:65
unsigned int link_support
Definition: nfs41.h:53
static __inline void nfs41_superblock_supported_attrs_exclcreat(IN const nfs41_superblock *superblock, IN OUT bitmap4 *attrs)
Definition: nfs41.h:460
static rfbScreenInfoPtr server
Definition: vnc.c:74
void nfs41_client_free(IN nfs41_client *client)
Definition: nfs41_client.c:206
uint64_t space_free
Definition: nfs41.h:61
#define NFS4_SESSIONID_SIZE
Definition: nfs41_const.h:32
int nfs41_rpc_clnt_create(IN const multi_addr4 *addrs, IN uint32_t wsize, IN uint32_t rsize, IN uint32_t uid, IN uint32_t gid, IN uint32_t sec_flavor, OUT nfs41_rpc_clnt **rpc_out)
Definition: nfs41_rpc.c:145
uint32_t ca_maxoperations
Definition: nfs41.h:235
struct outqueuenode * head
Definition: adnsresfilter.c:66
int32_t bool_t
Definition: types.h:101
uint32_t wsize
Definition: nfs41.h:278
uint32_t flags
Definition: nfs41.h:265
struct __nfs41_slot_table nfs41_slot_table
multi_addr4 addrs
Definition: nfs41.h:74
#define NFS41_MAX_NUM_SLOTS
Definition: nfs41.h:218
unsigned int aclsupport
Definition: nfs41.h:51
struct pnfs_layout_list * layouts
Definition: nfs41.h:203
struct list_entry entry
Definition: nfs41.h:39
nfs41_readdir_cookie cookie
Definition: nfs41.h:131
unsigned int ea_support
Definition: nfs41.h:55
struct __nfs41_open_state nfs41_open_state
SRWLOCK session_lock
Definition: nfs41.h:200
uint64_t space_total
Definition: nfs41.h:62
void nfs41_superblock_list_init(IN nfs41_superblock_list *superblocks)
client_owner4 owner
Definition: nfs41.h:194
GLuint buffer
Definition: glext.h:5915
bool_t is_valid_session
Definition: nfs41.h:181
uint32_t rsize
Definition: nfs41.h:175
struct __nfs41_rpc_clnt nfs41_rpc_clnt
struct __nfs41_superblock_list nfs41_superblock_list
nfs41_slot_table table
Definition: nfs41.h:261
struct pnfs_file_device_list * devices
Definition: nfs41.h:204
bool_t needcb
Definition: nfs41.h:183
CRITICAL_SECTION lock
Definition: nfs41.h:226
int nfs41_session_set_lease(IN nfs41_session *session, IN uint32_t lease_time)
const unsigned char * cb_sessionid
Definition: nfs41.h:250
struct __pnfs_layout_state * layout
Definition: nfs41.h:137
uint32_t uid
Definition: nfs41.h:281
void nfs41_rpc_clnt_free(IN nfs41_rpc_clnt *rpc)
Definition: nfs41_rpc.c:243
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
unsigned int cansettime
Definition: nfs41.h:52
Definition: match.c:390
struct __nfs41_session * session
Definition: nfs41.h:132
uint32_t lease_time
Definition: nfs41.h:260
int nfs41_superblock_for_fh(IN nfs41_session *session, IN const nfs41_fsid *fsid, IN const nfs41_fh *parent OPTIONAL, OUT nfs41_path_fh *file)
int nfs41_server_find_or_create(IN const char *server_owner_major_id, IN const char *server_scope, IN const netaddr4 *addr, OUT nfs41_server **server_out)
Definition: nfs41_server.c:221
char * hostname
Definition: ftp.c:88
uint32_t length
Definition: nfs41.h:242
bool_t do_close
Definition: nfs41.h:134
uint32_t highest_used
Definition: nfs41.h:223
struct nfs41_name_cache * name_cache
Definition: nfs41.h:84
static __inline void bitmap_intersect(IN bitmap4 *dst, IN const bitmap4 *src)
Definition: util.h:85
delegation_status
Definition: nfs41.h:89
void nfs41_server_list_init()
Definition: nfs41_server.c:48
struct __nfs41_client * client
Definition: nfs41.h:171
nfs41_cb_session cb_session
Definition: nfs41.h:266
nfs41_path_fh file
Definition: nfs41.h:99
long LONG
Definition: pedump.c:60
client_owner4 client_owner
Definition: nfs41.h:275
uint32_t exclusive
Definition: nfs41.h:116
nfs41_client * client
Definition: nfs41.h:256
bool_t in_recovery
Definition: nfs41.h:182
struct __nfs41_server nfs41_server
uint64_t maxread
Definition: nfs41.h:46
uint32_t roles
Definition: nfs41.h:197
void nfs41_superblock_space_changed(IN nfs41_superblock *superblock)
void nfs41_session_free(IN nfs41_session *session)
#define NFS4_OPAQUE_LIMIT
Definition: nfs41_const.h:31
uint32_t type
Definition: nfs41.h:133
int nfs41_session_recall_slot(IN nfs41_session *session, IN OUT uint32_t target_highest_slotid)
nfs41_rpc_clnt * rpc
Definition: nfs41.h:201
nfstime4 time_delta
Definition: nfs41.h:45
nfs41_fsid fsid
Definition: nfs41.h:38
int nfs41_root_create(IN const char *name, IN uint32_t sec_flavor, IN uint32_t wsize, IN uint32_t rsize, OUT nfs41_root **root_out)
Definition: namespace.c:37
nfs41_path_fh parent
Definition: nfs41.h:98
static __inline netaddr4 * nfs41_rpc_netaddr(IN nfs41_rpc_clnt *rpc)
Definition: nfs41.h:500
unsigned int case_preserving
Definition: nfs41.h:56
void nfs41_open_stateid_arg(IN nfs41_open_state *state, OUT struct __stateid_arg *arg)
uint32_t num_used
Definition: nfs41.h:224
#define list_container(entry, type, field)
Definition: list.h:33
static __inline void nfs41_superblock_supported_attrs(IN const nfs41_superblock *superblock, IN OUT bitmap4 *attrs)
Definition: nfs41.h:454
uint32_t index
Definition: nfs41.h:160
void nfs41_server_ref(IN nfs41_server *server)
Definition: nfs41_server.c:145
#define client_entry(pos)
Definition: namespace.c:33
int nfs41_root_mount_addrs(IN nfs41_root *root, IN const multi_addr4 *addrs, IN bool_t is_data, IN OPTIONAL uint32_t lease_time, OUT nfs41_client **client_out)
Definition: namespace.c:335
bool_t isValidState
Definition: nfs41.h:264
int nfs41_server_resolve(IN const char *hostname, IN unsigned short port, OUT multi_addr4 *addrs)
Definition: nfs41_server.c:275
CONDITION_VARIABLE cond
Definition: nfs41.h:148
SRWLOCK lock
Definition: nfs41.h:76
ULONGLONG target_delay
Definition: nfs41.h:225
uint32_t nfs41_exchange_id_flags(IN bool_t is_data)
Definition: nfs41_client.c:36
static __inline nfs41_server * client_server(IN nfs41_client *client)
Definition: nfs41.h:428
uint32_t ca_maxrequests
Definition: nfs41.h:236
CRITICAL_SECTION lock
Definition: nfs41.h:210
int nfs41_root_mount_server(IN nfs41_root *root, IN nfs41_server *server, IN bool_t is_data, IN OPTIONAL uint32_t lease_time, OUT nfs41_client **client_out)
open_delegation4 state
Definition: nfs41.h:96
bitmap4 default_getattr
Definition: nfs41.h:43
r parent
Definition: btrfs.c:2644
uint32_t wsize
Definition: nfs41.h:174
stateid4 stateid
Definition: nfs41.h:135
uint64_t ULONGLONG
Definition: typedefs.h:65
multi_addr4 addrs
Definition: nfs41.h:172
struct __nfs41_channel_attrs nfs41_channel_attrs
int nfs41_send_compound(IN nfs41_rpc_clnt *rpc, IN char *inbuf, OUT char *outbuf)
Definition: nfs41_rpc.c:337
nfs41_server * server
Definition: nfs41.h:193
HANDLE renew_thread
Definition: nfs41.h:263
int nfs41_ea_set(IN nfs41_open_state *state, IN struct _FILE_FULL_EA_INFORMATION *ea)
static FILE * client
Definition: client.c:41
HANDLE cond
Definition: nfs41.h:170
unsigned long DWORD
Definition: ntddk_ex.h:95
CRITICAL_SECTION lock
Definition: nfs41.h:189
static __inline nfs41_session * nfs41_root_session(IN nfs41_root *root)
Definition: nfs41.h:321
unsigned int layout_types
Definition: nfs41.h:50
bool_t in_recovery
Definition: nfs41.h:211
uint32_t sec_flavor
Definition: nfs41.h:177
uint32_t counter
Definition: nfs41.h:154
#define NI_MAXHOST
Definition: ws2def.h:359
SRWLOCK lock
Definition: nfs41.h:169
uchar inbuf[M_BLOCK]
Definition: unzcrash.c:40
char * server_name
Definition: widl.c:135
CRITICAL_SECTION lock
Definition: nfs41.h:155
struct __nfs41_root * root
Definition: nfs41.h:206
int nfs41_client_renew(IN nfs41_client *client)
Definition: nfs41_client.c:168
uint64_t length
Definition: nfs41.h:115
GLenum const GLvoid * addr
Definition: glext.h:9621
void nfs41_root_ref(IN nfs41_root *root)
Definition: namespace.c:92
static int state
Definition: maze.c:121
nfs41_path_fh parent
Definition: nfs41.h:129
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
GLsizei const GLint * locations
Definition: glext.h:10542
Definition: _list.h:228
int nfs41_session_create(IN nfs41_client *client, IN nfs41_session **session_out)
int nfs41_client_owner(IN const char *name, IN uint32_t sec_flavor, OUT client_owner4 *owner)
Definition: nfs41_client.c:358
uint32_t addr_index
Definition: nfs41.h:173
uint32_t ca_maxresponsesize
Definition: nfs41.h:233
uint64_t clnt_id
Definition: nfs41.h:195
Definition: vfat.h:189
uint32_t delegated
Definition: nfs41.h:117
void nfs41_root_deref(IN nfs41_root *root)
Definition: namespace.c:100
nfs41_superblock_list superblocks
Definition: nfs41.h:83
#define NFS41_MAX_SERVER_CACHE
Definition: nfs41_const.h:39
uint32_t max_slots
Definition: nfs41.h:222
struct __rpc_client * rpc
Definition: nfs41.h:168
UINT64 uint64_t
Definition: types.h:77
nfs41_path_fh file
Definition: nfs41.h:130
uint64_t maxwrite
Definition: nfs41.h:47
unsigned int symlink_support
Definition: nfs41.h:54
__kernel_time_t time_t
Definition: linux.h:252
uint32_t uid
Definition: nfs41.h:178
uint32_t share_access
Definition: nfs41.h:141
struct __nfs41_client nfs41_client
state_owner4 owner
Definition: nfs41.h:136
void nfs41_session_get_slot(IN nfs41_session *session, OUT uint32_t *slot, OUT uint32_t *seq, OUT uint32_t *highest)
Definition: list.h:27
struct _FILE_GET_EA_INFORMATION * list
Definition: nfs41.h:159
uint64_t pnfs_last_offset
Definition: nfs41.h:143
uint32_t id
Definition: nfs41.h:118
struct __nfs41_delegation_state nfs41_delegation_state
static __inline void nfs41_superblock_getattr_mask(IN const nfs41_superblock *superblock, OUT bitmap4 *attrs)
Definition: nfs41.h:448
UINT32 uint32_t
Definition: types.h:75
CONDITION_VARIABLE cond
Definition: nfs41.h:227
void nfs41_session_free_slot(IN nfs41_session *session, IN uint32_t slotid)
time_t cache_expiration
Definition: nfs41.h:63
int nfs41_session_renew(IN nfs41_session *session)
int nfs41_client_create(IN nfs41_rpc_clnt *rpc, IN const client_owner4 *owner, IN bool_t is_data, IN const struct __nfs41_exchange_id_res *exchangeid, OUT nfs41_client **client_out)
void nfs41_session_sequence(struct __nfs41_sequence_args *args, nfs41_session *session, bool_t cachethis)
nfs41_channel_attrs fore_chan_attrs
Definition: nfs41.h:258
struct __nfs41_lock_state nfs41_lock_state
Definition: name.c:36
#define OUT
Definition: typedefs.h:39
uint32_t share_deny
Definition: nfs41.h:142
GLuint res
Definition: glext.h:9613
uint32_t next_index
Definition: nfs41.h:75
GLenum GLuint id
Definition: glext.h:5579
int nfs41_session_bad_slot(IN nfs41_session *session, IN OUT struct __nfs41_sequence_args *args)
void nfs41_server_deref(IN nfs41_server *server)
Definition: nfs41_server.c:155
uint32_t * ca_rdma_ird
Definition: nfs41.h:237
struct __nfs41_superblock nfs41_superblock
uint32_t seq_id
Definition: nfs41.h:196
static int recovery
Definition: xmllint.c:115
CONDITION_VARIABLE cond
Definition: nfs41.h:105
void nfs41_superblock_fs_attributes(IN const nfs41_superblock *superblock, OUT struct _FILE_FS_ATTRIBUTE_INFORMATION *FsAttrs)
uint32_t ca_maxresponsesize_cached
Definition: nfs41.h:234
DWORD sec_flavor
Definition: nfs41.h:283
sec_flavor
Definition: nfs41_ops.h:861
nfs41_channel_attrs back_chan_attrs
Definition: nfs41.h:259
uint32_t gid
Definition: nfs41.h:179
unsigned int case_insensitive
Definition: nfs41.h:57
uint32_t gid
Definition: nfs41.h:282
nfs41_abs_path path
Definition: nfs41.h:97
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
#define open_entry(pos)
Definition: delegation.c:89
nfs41_abs_path path
Definition: nfs41.h:128
uint32_t ca_headerpadsize
Definition: nfs41.h:231
LONG ref_count
Definition: nfs41.h:280
struct __nfs41_root nfs41_root
void nfs41_server_addrs(IN nfs41_server *server, OUT multi_addr4 *addrs)
Definition: nfs41_server.c:203
uint32_t cb_seqnum
Definition: nfs41.h:251
bool_t reclaim
Definition: nfs41.h:147
USHORT port
Definition: uri.c:227
uint64_t space_avail
Definition: nfs41.h:60
CRITICAL_SECTION lock
Definition: nfs41.h:276
static SERVICE_STATUS status
Definition: service.c:31
uint32_t cb_slotid
Definition: nfs41.h:252
uint32_t version
Definition: nfs41.h:176
uint32_t rsize
Definition: nfs41.h:279
bitmap4 suppattr_exclcreat
Definition: nfs41.h:42
void nfs41_superblock_list_free(IN nfs41_superblock_list *superblocks)
VOID WINAPI AcquireSRWLockShared(PSRWLOCK Lock)
Definition: sync.c:61
struct __nfs41_session * session
Definition: nfs41.h:199
bitmap4 supported_attrs
Definition: nfs41.h:41
VOID WINAPI ReleaseSRWLockShared(PSRWLOCK Lock)
Definition: sync.c:89
bool_t is_data
Definition: nfs41.h:202
uint32_t ca_maxrequestsize
Definition: nfs41.h:232
CONDITION_VARIABLE cond
Definition: nfs41.h:209
uchar outbuf[M_BLOCK_OUT]
Definition: unzcrash.c:41
Definition: fci.c:126
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68