• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/toolchains/hndtools-arm-linux-2.6.36-uclibc-4.5.3/arm-brcm-linux-uclibcgnueabi/sysroot/usr/include/linux/nfsd/
1/*
2 * include/linux/nfsd/syscall.h
3 *
4 * This file holds all declarations for the knfsd syscall interface.
5 *
6 * Copyright (C) 1995-1997 Olaf Kirch <okir@monad.swb.de>
7 */
8
9#ifndef NFSD_SYSCALL_H
10#define NFSD_SYSCALL_H
11
12#include <linux/types.h>
13#include <linux/nfsd/export.h>
14
15/*
16 * Version of the syscall interface
17 */
18#define NFSCTL_VERSION		0x0201
19
20/*
21 * These are the commands understood by nfsctl().
22 */
23#define NFSCTL_SVC		0	/* This is a server process. */
24#define NFSCTL_ADDCLIENT	1	/* Add an NFS client. */
25#define NFSCTL_DELCLIENT	2	/* Remove an NFS client. */
26#define NFSCTL_EXPORT		3	/* export a file system. */
27#define NFSCTL_UNEXPORT		4	/* unexport a file system. */
28/*#define NFSCTL_UGIDUPDATE	5	/ * update a client's uid/gid map. DISCARDED */
29/*#define NFSCTL_GETFH		6	/ * get an fh by ino DISCARDED */
30#define NFSCTL_GETFD		7	/* get an fh by path (used by mountd) */
31#define	NFSCTL_GETFS		8	/* get an fh by path with max FH len */
32
33/* SVC */
34struct nfsctl_svc {
35	unsigned short		svc_port;
36	int			svc_nthreads;
37};
38
39/* ADDCLIENT/DELCLIENT */
40struct nfsctl_client {
41	char			cl_ident[NFSCLNT_IDMAX+1];
42	int			cl_naddr;
43	struct in_addr		cl_addrlist[NFSCLNT_ADDRMAX];
44	int			cl_fhkeytype;
45	int			cl_fhkeylen;
46	unsigned char		cl_fhkey[NFSCLNT_KEYMAX];
47};
48
49/* EXPORT/UNEXPORT */
50struct nfsctl_export {
51	char			ex_client[NFSCLNT_IDMAX+1];
52	char			ex_path[NFS_MAXPATHLEN+1];
53	__kernel_old_dev_t	ex_dev;
54	__kernel_ino_t		ex_ino;
55	int			ex_flags;
56	__kernel_uid_t		ex_anon_uid;
57	__kernel_gid_t		ex_anon_gid;
58};
59
60/* GETFD */
61struct nfsctl_fdparm {
62	struct sockaddr		gd_addr;
63	char			gd_path[NFS_MAXPATHLEN+1];
64	int			gd_version;
65};
66
67/* GETFS - GET Filehandle with Size */
68struct nfsctl_fsparm {
69	struct sockaddr		gd_addr;
70	char			gd_path[NFS_MAXPATHLEN+1];
71	int			gd_maxlen;
72};
73
74/*
75 * This is the argument union.
76 */
77struct nfsctl_arg {
78	int			ca_version;	/* safeguard */
79	union {
80		struct nfsctl_svc	u_svc;
81		struct nfsctl_client	u_client;
82		struct nfsctl_export	u_export;
83		struct nfsctl_fdparm	u_getfd;
84		struct nfsctl_fsparm	u_getfs;
85		/*
86		 * The following dummy member is needed to preserve binary compatibility
87		 * on platforms where alignof(void*)>alignof(int).  It's needed because
88		 * this union used to contain a member (u_umap) which contained a
89		 * pointer.
90		 */
91		void *u_ptr;
92	} u;
93#define ca_svc		u.u_svc
94#define ca_client	u.u_client
95#define ca_export	u.u_export
96#define ca_getfd	u.u_getfd
97#define	ca_getfs	u.u_getfs
98};
99
100union nfsctl_res {
101	__u8			cr_getfh[NFS_FHSIZE];
102	struct knfsd_fh		cr_getfs;
103};
104
105
106#endif /* NFSD_SYSCALL_H */
107