1
2
3
4
5
6
7
8
9#ifndef LOCKD_XDR_H
10#define LOCKD_XDR_H
11
12#include <linux/fs.h>
13#include <linux/nfs.h>
14#include <linux/sunrpc/xdr.h>
15
16#define SM_MAXSTRLEN 1024
17#define SM_PRIV_SIZE 16
18
19struct nsm_private {
20 unsigned char data[SM_PRIV_SIZE];
21};
22
23struct svc_rqst;
24
25#define NLM_MAXCOOKIELEN 32
26#define NLM_MAXSTRLEN 1024
27
28#define nlm_granted cpu_to_be32(NLM_LCK_GRANTED)
29#define nlm_lck_denied cpu_to_be32(NLM_LCK_DENIED)
30#define nlm_lck_denied_nolocks cpu_to_be32(NLM_LCK_DENIED_NOLOCKS)
31#define nlm_lck_blocked cpu_to_be32(NLM_LCK_BLOCKED)
32#define nlm_lck_denied_grace_period cpu_to_be32(NLM_LCK_DENIED_GRACE_PERIOD)
33
34#define nlm_drop_reply cpu_to_be32(30000)
35
36
37struct nlm_lock {
38 char * caller;
39 unsigned int len;
40 struct nfs_fh fh;
41 struct xdr_netobj oh;
42 u32 svid;
43 struct file_lock fl;
44};
45
46
47
48
49
50
51
52struct nlm_cookie
53{
54 unsigned char data[NLM_MAXCOOKIELEN];
55 unsigned int len;
56};
57
58
59
60
61struct nlm_args {
62 struct nlm_cookie cookie;
63 struct nlm_lock lock;
64 u32 block;
65 u32 reclaim;
66 u32 state;
67 u32 monitor;
68 u32 fsm_access;
69 u32 fsm_mode;
70};
71
72typedef struct nlm_args nlm_args;
73
74
75
76
77struct nlm_res {
78 struct nlm_cookie cookie;
79 __be32 status;
80 struct nlm_lock lock;
81};
82
83
84
85
86struct nlm_reboot {
87 char *mon;
88 unsigned int len;
89 u32 state;
90 struct nsm_private priv;
91};
92
93
94
95
96#define NLMSVC_XDRSIZE sizeof(struct nlm_args)
97
98int nlmsvc_decode_testargs(struct svc_rqst *, __be32 *, struct nlm_args *);
99int nlmsvc_encode_testres(struct svc_rqst *, __be32 *, struct nlm_res *);
100int nlmsvc_decode_lockargs(struct svc_rqst *, __be32 *, struct nlm_args *);
101int nlmsvc_decode_cancargs(struct svc_rqst *, __be32 *, struct nlm_args *);
102int nlmsvc_decode_unlockargs(struct svc_rqst *, __be32 *, struct nlm_args *);
103int nlmsvc_encode_res(struct svc_rqst *, __be32 *, struct nlm_res *);
104int nlmsvc_decode_res(struct svc_rqst *, __be32 *, struct nlm_res *);
105int nlmsvc_encode_void(struct svc_rqst *, __be32 *, void *);
106int nlmsvc_decode_void(struct svc_rqst *, __be32 *, void *);
107int nlmsvc_decode_shareargs(struct svc_rqst *, __be32 *, struct nlm_args *);
108int nlmsvc_encode_shareres(struct svc_rqst *, __be32 *, struct nlm_res *);
109int nlmsvc_decode_notify(struct svc_rqst *, __be32 *, struct nlm_args *);
110int nlmsvc_decode_reboot(struct svc_rqst *, __be32 *, struct nlm_reboot *);
111
112
113
114
115
116
117
118#endif
119