1951a39d68df598db08dfced8b4707755864a0492Ying Wang/****************************************************************************
2951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************
3951a39d68df598db08dfced8b4707755864a0492Ying Wang ***
4951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   This header was automatically generated from a Linux kernel header
5951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   of the same name, to make information necessary for userspace to
6951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   call into the kernel available to libc.  It contains only constants,
7951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   structures, and macros generated from the original header, and thus,
8951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   contains no copyrightable information.
9951a39d68df598db08dfced8b4707755864a0492Ying Wang ***
10951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************
11951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************/
12951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef LOCKD_XDR_H
13951a39d68df598db08dfced8b4707755864a0492Ying Wang#define LOCKD_XDR_H
14951a39d68df598db08dfced8b4707755864a0492Ying Wang
15951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <linux/fs.h>
16951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <linux/nfs.h>
17951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <linux/sunrpc/xdr.h>
18951a39d68df598db08dfced8b4707755864a0492Ying Wang
19951a39d68df598db08dfced8b4707755864a0492Ying Wang#define NLM_MAXCOOKIELEN 32
20951a39d68df598db08dfced8b4707755864a0492Ying Wang#define NLM_MAXSTRLEN 1024
21951a39d68df598db08dfced8b4707755864a0492Ying Wang
22951a39d68df598db08dfced8b4707755864a0492Ying Wang#define nlm_granted __constant_htonl(NLM_LCK_GRANTED)
23951a39d68df598db08dfced8b4707755864a0492Ying Wang#define nlm_lck_denied __constant_htonl(NLM_LCK_DENIED)
24951a39d68df598db08dfced8b4707755864a0492Ying Wang#define nlm_lck_denied_nolocks __constant_htonl(NLM_LCK_DENIED_NOLOCKS)
25951a39d68df598db08dfced8b4707755864a0492Ying Wang#define nlm_lck_blocked __constant_htonl(NLM_LCK_BLOCKED)
26951a39d68df598db08dfced8b4707755864a0492Ying Wang#define nlm_lck_denied_grace_period __constant_htonl(NLM_LCK_DENIED_GRACE_PERIOD)
27951a39d68df598db08dfced8b4707755864a0492Ying Wang
28951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct nlm_lock {
29951a39d68df598db08dfced8b4707755864a0492Ying Wang char * caller;
30951a39d68df598db08dfced8b4707755864a0492Ying Wang int len;
31951a39d68df598db08dfced8b4707755864a0492Ying Wang struct nfs_fh fh;
32951a39d68df598db08dfced8b4707755864a0492Ying Wang struct xdr_netobj oh;
33951a39d68df598db08dfced8b4707755864a0492Ying Wang u32 svid;
34951a39d68df598db08dfced8b4707755864a0492Ying Wang struct file_lock fl;
35951a39d68df598db08dfced8b4707755864a0492Ying Wang};
36951a39d68df598db08dfced8b4707755864a0492Ying Wang
37951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct nlm_cookie
38951a39d68df598db08dfced8b4707755864a0492Ying Wang{
39951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned char data[NLM_MAXCOOKIELEN];
40951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned int len;
41951a39d68df598db08dfced8b4707755864a0492Ying Wang};
42951a39d68df598db08dfced8b4707755864a0492Ying Wang
43951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct nlm_args {
44951a39d68df598db08dfced8b4707755864a0492Ying Wang struct nlm_cookie cookie;
45951a39d68df598db08dfced8b4707755864a0492Ying Wang struct nlm_lock lock;
46951a39d68df598db08dfced8b4707755864a0492Ying Wang u32 block;
47951a39d68df598db08dfced8b4707755864a0492Ying Wang u32 reclaim;
48951a39d68df598db08dfced8b4707755864a0492Ying Wang u32 state;
49951a39d68df598db08dfced8b4707755864a0492Ying Wang u32 monitor;
50951a39d68df598db08dfced8b4707755864a0492Ying Wang u32 fsm_access;
51951a39d68df598db08dfced8b4707755864a0492Ying Wang u32 fsm_mode;
52951a39d68df598db08dfced8b4707755864a0492Ying Wang};
53951a39d68df598db08dfced8b4707755864a0492Ying Wang
54951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef struct nlm_args nlm_args;
55951a39d68df598db08dfced8b4707755864a0492Ying Wang
56951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct nlm_res {
57951a39d68df598db08dfced8b4707755864a0492Ying Wang struct nlm_cookie cookie;
58951a39d68df598db08dfced8b4707755864a0492Ying Wang u32 status;
59951a39d68df598db08dfced8b4707755864a0492Ying Wang struct nlm_lock lock;
60951a39d68df598db08dfced8b4707755864a0492Ying Wang};
61951a39d68df598db08dfced8b4707755864a0492Ying Wang
62951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct nlm_reboot {
63951a39d68df598db08dfced8b4707755864a0492Ying Wang char * mon;
64951a39d68df598db08dfced8b4707755864a0492Ying Wang int len;
65951a39d68df598db08dfced8b4707755864a0492Ying Wang u32 state;
66951a39d68df598db08dfced8b4707755864a0492Ying Wang u32 addr;
67951a39d68df598db08dfced8b4707755864a0492Ying Wang u32 vers;
68951a39d68df598db08dfced8b4707755864a0492Ying Wang u32 proto;
69951a39d68df598db08dfced8b4707755864a0492Ying Wang};
70951a39d68df598db08dfced8b4707755864a0492Ying Wang
71951a39d68df598db08dfced8b4707755864a0492Ying Wang#define NLMSVC_XDRSIZE sizeof(struct nlm_args)
72951a39d68df598db08dfced8b4707755864a0492Ying Wang
73951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
74