#ifndef _LINUX_XDRGEN_NLM3_DEF_H
#define _LINUX_XDRGEN_NLM3_DEF_H
#include <linux/types.h>
#include <linux/sunrpc/xdrgen/_defs.h>
enum { LM_MAXSTRLEN = 1024 };
enum { LM_MAXNAMELEN = 1025 };
enum { MAXNETOBJ_SZ = 1024 };
typedef opaque netobj;
enum nlm_stats {
LCK_GRANTED = 0,
LCK_DENIED = 1,
LCK_DENIED_NOLOCKS = 2,
LCK_BLOCKED = 3,
LCK_DENIED_GRACE_PERIOD = 4,
};
typedef __be32 nlm_stats;
struct nlm_stat {
nlm_stats stat;
};
struct nlm_res {
netobj cookie;
struct nlm_stat stat;
};
struct nlm_holder {
bool exclusive;
s32 uppid;
netobj oh;
u32 l_offset;
u32 l_len;
};
struct nlm_testrply {
nlm_stats stat;
union {
struct nlm_holder holder;
} u;
};
struct nlm_testres {
netobj cookie;
struct nlm_testrply test_stat;
};
struct nlm_lock {
string caller_name;
netobj fh;
netobj oh;
s32 uppid;
u32 l_offset;
u32 l_len;
};
struct nlm_lockargs {
netobj cookie;
bool block;
bool exclusive;
struct nlm_lock alock;
bool reclaim;
s32 state;
};
struct nlm_cancargs {
netobj cookie;
bool block;
bool exclusive;
struct nlm_lock alock;
};
struct nlm_testargs {
netobj cookie;
bool exclusive;
struct nlm_lock alock;
};
struct nlm_unlockargs {
netobj cookie;
struct nlm_lock alock;
};
enum fsh_mode {
fsm_DN = 0,
fsm_DR = 1,
fsm_DW = 2,
fsm_DRW = 3,
};
typedef enum fsh_mode fsh_mode;
enum fsh_access {
fsa_NONE = 0,
fsa_R = 1,
fsa_W = 2,
fsa_RW = 3,
};
typedef enum fsh_access fsh_access;
struct nlm_share {
string caller_name;
netobj fh;
netobj oh;
fsh_mode mode;
fsh_access access;
};
struct nlm_shareargs {
netobj cookie;
struct nlm_share share;
bool reclaim;
};
struct nlm_shareres {
netobj cookie;
nlm_stats stat;
s32 sequence;
};
struct nlm_notify {
string name;
s32 state;
};
enum { SM_PRIV_SIZE = 16 };
struct nlm_notifyargs {
struct nlm_notify notify;
u8 private[SM_PRIV_SIZE];
};
enum {
NLM_NULL = 0,
NLM_TEST = 1,
NLM_LOCK = 2,
NLM_CANCEL = 3,
NLM_UNLOCK = 4,
NLM_GRANTED = 5,
NLM_TEST_MSG = 6,
NLM_LOCK_MSG = 7,
NLM_CANCEL_MSG = 8,
NLM_UNLOCK_MSG = 9,
NLM_GRANTED_MSG = 10,
NLM_TEST_RES = 11,
NLM_LOCK_RES = 12,
NLM_CANCEL_RES = 13,
NLM_UNLOCK_RES = 14,
NLM_GRANTED_RES = 15,
NLM_SM_NOTIFY = 16,
NLM_SHARE = 20,
NLM_UNSHARE = 21,
NLM_NM_LOCK = 22,
NLM_FREE_ALL = 23,
};
#ifndef NLM_PROG
#define NLM_PROG (100021)
#endif
#define NLM3_netobj_sz (XDR_unsigned_int + XDR_QUADLEN(MAXNETOBJ_SZ))
#define NLM3_nlm_stats_sz (XDR_int)
#define NLM3_nlm_stat_sz \
(NLM3_nlm_stats_sz)
#define NLM3_nlm_res_sz \
(NLM3_netobj_sz + NLM3_nlm_stat_sz)
#define NLM3_nlm_holder_sz \
(XDR_bool + XDR_int + NLM3_netobj_sz + XDR_unsigned_int + XDR_unsigned_int)
#define NLM3_nlm_testrply_sz \
(NLM3_nlm_stats_sz + NLM3_nlm_holder_sz)
#define NLM3_nlm_testres_sz \
(NLM3_netobj_sz + NLM3_nlm_testrply_sz)
#define NLM3_nlm_lock_sz \
(XDR_unsigned_int + XDR_QUADLEN(LM_MAXSTRLEN) + NLM3_netobj_sz + NLM3_netobj_sz + XDR_int + XDR_unsigned_int + XDR_unsigned_int)
#define NLM3_nlm_lockargs_sz \
(NLM3_netobj_sz + XDR_bool + XDR_bool + NLM3_nlm_lock_sz + XDR_bool + XDR_int)
#define NLM3_nlm_cancargs_sz \
(NLM3_netobj_sz + XDR_bool + XDR_bool + NLM3_nlm_lock_sz)
#define NLM3_nlm_testargs_sz \
(NLM3_netobj_sz + XDR_bool + NLM3_nlm_lock_sz)
#define NLM3_nlm_unlockargs_sz \
(NLM3_netobj_sz + NLM3_nlm_lock_sz)
#define NLM3_fsh_mode_sz (XDR_int)
#define NLM3_fsh_access_sz (XDR_int)
#define NLM3_nlm_share_sz \
(XDR_unsigned_int + XDR_QUADLEN(LM_MAXSTRLEN) + NLM3_netobj_sz + NLM3_netobj_sz + NLM3_fsh_mode_sz + NLM3_fsh_access_sz)
#define NLM3_nlm_shareargs_sz \
(NLM3_netobj_sz + NLM3_nlm_share_sz + XDR_bool)
#define NLM3_nlm_shareres_sz \
(NLM3_netobj_sz + NLM3_nlm_stats_sz + XDR_int)
#define NLM3_nlm_notify_sz \
(XDR_unsigned_int + XDR_QUADLEN(LM_MAXNAMELEN) + XDR_long)
#define NLM3_nlm_notifyargs_sz \
(NLM3_nlm_notify_sz + XDR_QUADLEN(SM_PRIV_SIZE))
#define NLM3_MAX_ARGS_SZ \
(NLM3_nlm_lockargs_sz)
#endif