ReactOS  0.4.12-dev-18-gf469aca
nfs41_callback.h File Reference
#include "wintirpc.h"
#include "rpc/rpc.h"
#include "nfs41_types.h"
Include dependency graph for nfs41_callback.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  cb_recall_file
 
union  cb_recall_file_args
 
struct  cb_recall
 
struct  cb_layoutrecall_args
 
struct  cb_layoutrecall_res
 
struct  cb_recall_slot_args
 
struct  cb_recall_slot_res
 
struct  cb_sequence_ref
 
struct  cb_sequence_ref_list
 
struct  cb_sequence_args
 
struct  cb_sequence_res_ok
 
struct  cb_sequence_res
 
struct  cb_getattr_args
 
struct  cb_getattr_res
 
struct  cb_recall_args
 
struct  cb_recall_res
 
struct  cb_notify_args
 
struct  cb_notify_res
 
struct  cb_push_deleg_args
 
struct  cb_push_deleg_res
 
struct  cb_recall_any_args
 
struct  cb_recall_any_res
 
struct  cb_recallable_obj_avail_args
 
struct  cb_recallable_obj_avail_res
 
struct  cb_wants_cancelled_args
 
struct  cb_wants_cancelled_res
 
struct  cb_notify_lock_args
 
struct  cb_notify_lock_res
 
struct  notify_deviceid4
 
struct  notify4
 
struct  cb_notify_deviceid_args
 
struct  cb_notify_deviceid_res
 
union  cb_op_args
 
struct  cb_argop
 
struct  cb_compound_tag
 
struct  cb_compound_args
 
union  cb_op_res
 
struct  cb_resop
 
struct  cb_compound_res
 

Macros

#define CB_COMPOUND_MAX_TAG   64
 
#define CB_COMPOUND_MAX_OPERATIONS   16
 

Enumerations

enum  nfs41_callback_proc { CB_NULL = 0, CB_COMPOUND = 1 }
 
enum  nfs41_callback_op {
  OP_CB_GETATTR = 3, OP_CB_RECALL = 4, OP_CB_LAYOUTRECALL = 5, OP_CB_NOTIFY = 6,
  OP_CB_PUSH_DELEG = 7, OP_CB_RECALL_ANY = 8, OP_CB_RECALLABLE_OBJ_AVAIL = 9, OP_CB_RECALL_SLOT = 10,
  OP_CB_SEQUENCE = 11, OP_CB_WANTS_CANCELLED = 12, OP_CB_NOTIFY_LOCK = 13, OP_CB_NOTIFY_DEVICEID = 14,
  OP_CB_ILLEGAL = 10044
}
 
enum  notify_deviceid_type4 { NOTIFY_DEVICEID4_CHANGE = 1, NOTIFY_DEVICEID4_DELETE = 2 }
 

Functions

int nfs41_handle_callback (void *, void *, void *)
 
bool_t proc_cb_compound_args (XDR *xdr, struct cb_compound_args *args)
 
bool_t proc_cb_compound_res (XDR *xdr, struct cb_compound_res *res)
 
void nfs41_callback_session_init (IN struct __nfs41_session *session)
 

Macro Definition Documentation

◆ CB_COMPOUND_MAX_OPERATIONS

#define CB_COMPOUND_MAX_OPERATIONS   16

◆ CB_COMPOUND_MAX_TAG

#define CB_COMPOUND_MAX_TAG   64

Enumeration Type Documentation

◆ nfs41_callback_op

Enumerator
OP_CB_GETATTR 
OP_CB_RECALL 
OP_CB_LAYOUTRECALL 
OP_CB_NOTIFY 
OP_CB_PUSH_DELEG 
OP_CB_RECALL_ANY 
OP_CB_RECALLABLE_OBJ_AVAIL 
OP_CB_RECALL_SLOT 
OP_CB_SEQUENCE 
OP_CB_WANTS_CANCELLED 
OP_CB_NOTIFY_LOCK 
OP_CB_NOTIFY_DEVICEID 
OP_CB_ILLEGAL 

Definition at line 35 of file nfs41_callback.h.

◆ nfs41_callback_proc

Enumerator
CB_NULL 
CB_COMPOUND 

Definition at line 30 of file nfs41_callback.h.

30  {
31  CB_NULL = 0,
32  CB_COMPOUND = 1,
33 };

◆ notify_deviceid_type4

Enumerator
NOTIFY_DEVICEID4_CHANGE 
NOTIFY_DEVICEID4_DELETE 

Definition at line 206 of file nfs41_callback.h.

Function Documentation

◆ nfs41_callback_session_init()

void nfs41_callback_session_init ( IN struct __nfs41_session session)

◆ nfs41_handle_callback()

int nfs41_handle_callback ( void ,
void ,
void  
)

◆ proc_cb_compound_args()

bool_t proc_cb_compound_args ( XDR xdr,
struct cb_compound_args args 
)

Definition at line 590 of file callback_xdr.c.

Referenced by handle_cb_compound(), replay_cache_write(), and replay_validate_args().

591 {
592  bool_t result;
593 
594  result = cb_compound_tag(xdr, &args->tag);
595  if (!result) { CBX_ERR("compound.tag"); goto out; }
596 
597  result = xdr_u_int32_t(xdr, &args->minorversion);
598  if (!result) { CBX_ERR("compound.minorversion"); goto out; }
599 
600  /* "superfluous in NFSv4.1 and MUST be ignored by the client" */
601  result = xdr_u_int32_t(xdr, &args->callback_ident);
602  if (!result) { CBX_ERR("compound.callback_ident"); goto out; }
603 
604  result = xdr_array(xdr, (char**)&args->argarray,
606  sizeof(struct cb_argop), (xdrproc_t)cb_compound_argop);
607  if (!result) { CBX_ERR("compound.argarray"); goto out; }
608 out:
609  return result;
610 }
bool_t xdr_array(XDR *xdrs, caddr_t *addrp, u_int *sizep, u_int maxsize, u_int elsize, xdrproc_t elproc)
Definition: xdr_array.c:61
int32_t bool_t
Definition: types.h:101
bool_t(* xdrproc_t)(XDR *,...)
Definition: xdr.h:144
uint32_t callback_ident
static bool_t cb_compound_tag(XDR *xdr, struct cb_compound_tag *args)
Definition: callback_xdr.c:556
static FILE * out
Definition: regtests2xml.c:44
#define CBX_ERR(msg)
Definition: callback_xdr.c:32
static bool_t cb_compound_argop(XDR *xdr, struct cb_argop *args)
Definition: callback_xdr.c:579
#define CB_COMPOUND_MAX_OPERATIONS
struct cb_argop * argarray
bool_t xdr_u_int32_t(XDR *xdrs, u_int32_t *u_int32_p)
Definition: xdr.c:239
uint32_t argarray_count
GLuint64EXT * result
Definition: glext.h:11304
struct cb_compound_tag tag

◆ proc_cb_compound_res()

bool_t proc_cb_compound_res ( XDR xdr,
struct cb_compound_res res 
)

Definition at line 638 of file callback_xdr.c.

Referenced by get_client_for_netaddr(), replay_cache_read(), and replay_cache_write().

639 {
640  bool_t result;
641 
642  if (res == NULL)
643  return TRUE;
644 
645  result = xdr_enum(xdr, &res->status);
646  if (!result) { CBX_ERR("compound_res.status"); goto out; }
647 
648  result = cb_compound_tag(xdr, &res->tag);
649  if (!result) { CBX_ERR("compound_res.tag"); goto out; }
650 
651  result = xdr_array(xdr, (char**)&res->resarray,
653  sizeof(struct cb_resop), (xdrproc_t)cb_compound_resop);
654  if (!result) { CBX_ERR("compound_res.resarray"); goto out; }
655 out:
656  if (xdr->x_op == XDR_FREE)
657  free(res);
658  return result;
659 }
bool_t xdr_array(XDR *xdrs, caddr_t *addrp, u_int *sizep, u_int maxsize, u_int elsize, xdrproc_t elproc)
Definition: xdr_array.c:61
#define TRUE
Definition: types.h:120
struct cb_resop * resarray
int32_t bool_t
Definition: types.h:101
#define free
Definition: debug_ros.c:5
struct cb_compound_tag tag
bool_t(* xdrproc_t)(XDR *,...)
Definition: xdr.h:144
smooth NULL
Definition: ftsmooth.c:416
static bool_t cb_compound_tag(XDR *xdr, struct cb_compound_tag *args)
Definition: callback_xdr.c:556
bool_t xdr_enum(XDR *xdrs, enum_t *ep)
Definition: xdr.c:458
enum xdr_op x_op
Definition: xdr.h:104
static FILE * out
Definition: regtests2xml.c:44
static bool_t cb_compound_resop(XDR *xdr, struct cb_resop *res)
Definition: callback_xdr.c:628
#define CBX_ERR(msg)
Definition: callback_xdr.c:32
uint32_t resarray_count
#define CB_COMPOUND_MAX_OPERATIONS
Definition: xdr.h:87
GLuint64EXT * result
Definition: glext.h:11304