usr/src/uts/common/nfs/nfssys.h
author rmesta
Wed, 07 Jun 2006 09:06:06 -0700
changeset 2140 043bd360aabc
parent 2035 a29bc457bcb9
child 5302 eec6aeacde6e
permissions -rw-r--r--
6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     1
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     2
 * CDDL HEADER START
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     3
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     4
 * The contents of this file are subject to the terms of the
1610
3436e82414c8 6344186 NFSv3 needs to support .zfs (like NFSv4 already does)
thurlow
parents: 0
diff changeset
     5
 * Common Development and Distribution License (the "License").
3436e82414c8 6344186 NFSv3 needs to support .zfs (like NFSv4 already does)
thurlow
parents: 0
diff changeset
     6
 * You may not use this file except in compliance with the License.
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     7
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     8
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     9
 * or http://www.opensolaris.org/os/licensing.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    10
 * See the License for the specific language governing permissions
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    11
 * and limitations under the License.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    12
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    13
 * When distributing Covered Code, include this CDDL HEADER in each
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    14
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    15
 * If applicable, add the following below this CDDL HEADER, with the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    16
 * fields enclosed by brackets "[]" replaced with your own identifying
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    17
 * information: Portions Copyright [yyyy] [name of copyright owner]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    18
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    19
 * CDDL HEADER END
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    20
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    21
/*
1610
3436e82414c8 6344186 NFSv3 needs to support .zfs (like NFSv4 already does)
thurlow
parents: 0
diff changeset
    22
 * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    23
 * Use is subject to license terms.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    24
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    25
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    26
/*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    27
/*	  All Rights Reserved  	*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    28
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    29
#ifndef	_NFS_NFSSYS_H
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    30
#define	_NFS_NFSSYS_H
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    31
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    32
#pragma ident	"%Z%%M%	%I%	%E% SMI"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    33
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    34
#ifdef	__cplusplus
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    35
extern "C" {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    36
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    37
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    38
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    39
 * Private definitions for the nfssys system call.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    40
 * Note: <nfs/export.h> and <nfs/nfs.h> must be included before
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    41
 * this file.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    42
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    43
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    44
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    45
 * Flavors of nfssys call.  Note that OLD_mumble commands are no longer
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    46
 * implemented, but the entries are kept as placeholders for binary
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    47
 * compatibility.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    48
 */
1610
3436e82414c8 6344186 NFSv3 needs to support .zfs (like NFSv4 already does)
thurlow
parents: 0
diff changeset
    49
enum nfssys_op	{ OLD_NFS_SVC, OLD_ASYNC_DAEMON, EXPORTFS, OLD_NFS_GETFH,
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    50
    OLD_NFS_CNVT, NFS_REVAUTH, OLD_NFS_FH_TO_FID, OLD_LM_SVC, KILL_LOCKMGR,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    51
    LOG_FLUSH, SVCPOOL_CREATE, NFS_SVC, LM_SVC, SVCPOOL_WAIT, SVCPOOL_RUN,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    52
    NFS4_SVC, RDMA_SVC_INIT, NFS4_CLR_STATE, NFS_IDMAP,
2035
a29bc457bcb9 PSARC/2006/313 NFSv4: nfsd "-s" distributed stable storage
calum
parents: 1610
diff changeset
    53
    NFS4_SVC_REQUEST_QUIESCE, NFS_GETFH, NFS4_DSS_SETPATHS,
2140
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents: 2035
diff changeset
    54
    NFS4_DSS_SETPATHS_SIZE, MOUNTD_ARGS };
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    55
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    56
struct nfs_svc_args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    57
	int		fd;		/* Connection endpoint */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    58
	char		*netid;		/* Identify transport */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    59
	struct netbuf	addrmask;	/* Address mask for host */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    60
	int		versmin;	/* Min protocol version to offer */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    61
	int		versmax;	/* Max protocol version to offer */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    62
	int		delegation;	/* NFSv4 delegation on/off? */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    63
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    65
#ifdef _SYSCALL32
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    66
struct nfs_svc_args32 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    67
	int32_t		fd;		/* Connection endpoint */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    68
	caddr32_t	netid;		/* Identify transport */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    69
	struct netbuf32	addrmask;	/* Address mask for host */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    70
	int32_t		versmin;	/* Min protocol version to offer */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    71
	int32_t		versmax;	/* Max protocol version to offer */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    72
	int32_t		delegation;	/* NFSv4 delegation on/off? */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    73
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    74
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    75
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    76
struct exportfs_args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    77
	char		*dname;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    78
	struct exportdata *uex;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    79
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    80
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    81
#ifdef _SYSCALL32
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    82
struct exportfs_args32 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    83
	caddr32_t	dname;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    84
	caddr32_t	uex;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    85
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    86
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    87
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    88
struct nfs_getfh_args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    89
	char		*fname;
1610
3436e82414c8 6344186 NFSv3 needs to support .zfs (like NFSv4 already does)
thurlow
parents: 0
diff changeset
    90
	int		vers;
3436e82414c8 6344186 NFSv3 needs to support .zfs (like NFSv4 already does)
thurlow
parents: 0
diff changeset
    91
	int		*lenp;
3436e82414c8 6344186 NFSv3 needs to support .zfs (like NFSv4 already does)
thurlow
parents: 0
diff changeset
    92
	char		*fhp;
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    93
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    94
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    95
#ifdef _SYSCALL32
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    96
struct nfs_getfh_args32 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    97
	caddr32_t	fname;
1610
3436e82414c8 6344186 NFSv3 needs to support .zfs (like NFSv4 already does)
thurlow
parents: 0
diff changeset
    98
	int32_t		vers;
3436e82414c8 6344186 NFSv3 needs to support .zfs (like NFSv4 already does)
thurlow
parents: 0
diff changeset
    99
	caddr32_t	lenp;
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   100
	caddr32_t	fhp;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   101
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   102
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   103
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   104
struct nfs_revauth_args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   105
	int		authtype;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   106
	uid_t		uid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   107
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   108
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   109
#ifdef _SYSCALL32
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   110
struct nfs_revauth_args32 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   111
	int32_t		authtype;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   112
	uid32_t		uid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   113
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   114
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   115
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   116
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   117
 * Arguments for establishing lock manager service.  If you change
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   118
 * lm_svc_args, you should increment the version number.  Try to keep
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   119
 * supporting one or more old versions of the args, so that old lockd's
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   120
 * will work with new kernels.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   121
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   122
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   123
enum lm_fmly  { LM_INET, LM_INET6, LM_LOOPBACK };
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   124
enum lm_proto { LM_TCP, LM_UDP };
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   125
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   126
struct lm_svc_args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   127
	int		version;	/* keep this first */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   128
	int		fd;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   129
	enum lm_fmly	n_fmly;		/* protocol family */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   130
	enum lm_proto	n_proto;	/* protocol */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   131
	dev_t		n_rdev;		/* device ID */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   132
	int		debug;		/* debugging level */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   133
	time_t		timout;		/* client handle life (asynch RPCs) */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   134
	int		grace;		/* secs in grace period */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   135
	time_t	retransmittimeout;	/* retransmission interval */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   136
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   137
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   138
#ifdef _SYSCALL32
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   139
struct lm_svc_args32 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   140
	int32_t		version;	/* keep this first */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   141
	int32_t		fd;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   142
	enum lm_fmly	n_fmly;		/* protocol family */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   143
	enum lm_proto	n_proto;	/* protocol */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   144
	dev32_t		n_rdev;		/* device ID */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   145
	int32_t		debug;		/* debugging level */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   146
	time32_t	timout;		/* client handle life (asynch RPCs) */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   147
	int32_t		grace;		/* secs in grace period */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   148
	time32_t	retransmittimeout;	/* retransmission interval */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   149
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   150
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   151
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   152
#define	LM_SVC_CUR_VERS	30		/* current lm_svc_args vers num */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   153
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   154
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   155
 * Arguments for nfslog flush service.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   156
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   157
struct nfsl_flush_args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   158
	int		version;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   159
	int		directive;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   160
	char		*buff;		/* buffer to flush/rename */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   161
	int		buff_len;	/* includes terminating '\0' */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   162
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   163
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   164
#define	NFSL_FLUSH_ARGS_VERS 1		/* current nfsl_flush_args vers num */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   165
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   166
#ifdef _SYSCALL32
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   167
struct nfsl_flush_args32 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   168
	int32_t		version;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   169
	int32_t		directive;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   170
	caddr32_t	buff;		/* buffer to flush/rename */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   171
	int32_t		buff_len;	/* includes terminating '\0' */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   172
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   173
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   174
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   175
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   176
 * Arguments for initialising RDMA service.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   177
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   178
struct rdma_svc_args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   179
	uint32_t	poolid;		/* Thread Pool ID */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   180
	char		*netid;		/* Network Identifier */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   181
	int		nfs_versmin;	/* Min NFS version to offer */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   182
	int		nfs_versmax;	/* Max NFS version to offer */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   183
	int		delegation;	/* NFSv4 delegation on/off? */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   184
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   185
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   186
#ifdef _SYSCALL32
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   187
struct rdma_svc_args32 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   188
	uint32_t	poolid;		/* Thread Pool ID */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   189
	caddr32_t	netid;		/* Network Identifier */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   190
	int32_t		nfs_versmin;	/* Min NFS version to offer */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   191
	int32_t		nfs_versmax;	/* Max NFS version to offer */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   192
	int32_t		delegation;	/* NFSv4 delegation on/off? */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   193
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   194
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   195
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   196
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   197
#define	NFS4_CLRST_VERSION	1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   198
struct nfs4clrst_args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   199
	int		vers;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   200
	int		addr_type;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   201
	void		*ap;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   202
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   203
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   204
#ifdef _SYSCALL32
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   205
struct nfs4clrst_args32 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   206
	int32_t		vers;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   207
	int32_t		addr_type;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   208
	caddr32_t	ap;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   209
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   210
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   211
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   212
struct nfsidmap_args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   213
	uint_t		state;	/* Flushes caches, set state up 1 or down 0 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   214
	uint_t		did;	/* Door id to upcall */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   215
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   216
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   217
#define	NFSL_ALL	0x01		/* Flush all buffers */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   218
#define	NFSL_RENAME	0x02		/* Rename buffer(s) */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   219
#define	NFSL_SYNC	0x04		/* Perform operation synchronously? */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   220
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   221
#ifdef _KERNEL
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   222
union nfssysargs {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   223
	struct exportfs_args	*exportfs_args_u;	/* exportfs args */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   224
	struct nfs_getfh_args	*nfs_getfh_args_u;	/* nfs_getfh args */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   225
	struct nfs_svc_args	*nfs_svc_args_u;	/* nfs_svc args */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   226
	struct rdma_svc_args	*rdma_svc_args_u;	/* rdma_svc args */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   227
	struct nfs_revauth_args	*nfs_revauth_args_u;	/* nfs_revauth args */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   228
	struct lm_svc_args	*lm_svc_args_u;		/* lm_svc args */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   229
	/* kill_lockmgr args: none */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   230
	struct nfsl_flush_args	*nfsl_flush_args_u;	/* nfsl_flush args */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   231
	struct svcpool_args	*svcpool_args_u;	/* svcpool args */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   232
	struct nfs4clrst_args   *nfs4clrst_u;		/* nfs4 clear state */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   233
	struct nfsidmap_args	*nfsidmap_u;		/* nfsidmap */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   234
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   235
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   236
struct nfssysa {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   237
	enum nfssys_op		opcode;	/* operation discriminator */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   238
	union nfssysargs	arg;	/* syscall-specific arg pointer */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   239
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   240
#define	nfssysarg_exportfs	arg.exportfs_args_u
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   241
#define	nfssysarg_getfh		arg.nfs_getfh_args_u
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   242
#define	nfssysarg_svc		arg.nfs_svc_args_u
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   243
#define	nfssysarg_rdmastart	arg.rdma_svc_args_u
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   244
#define	nfssysarg_revauth	arg.nfs_revauth_args_u
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   245
#define	nfssysarg_lmsvc		arg.lm_svc_args_u
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   246
#define	nfssysarg_nfslflush	arg.nfsl_flush_args_u
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   247
#define	nfssysarg_svcpool	arg.svcpool_args_u
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   248
#define	nfssysarg_nfs4clrst	arg.nfs4clrst_u
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   249
#define	nfssysarg_nfsidmap	arg.nfsidmap_u
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   250
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   251
#ifdef _SYSCALL32
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   252
union nfssysargs32 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   253
	caddr32_t exportfs_args_u;	/* exportfs args */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   254
	caddr32_t nfs_getfh_args_u;	/* nfs_getfh args */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   255
	caddr32_t nfs_svc_args_u;	/* nfs_svc args */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   256
	caddr32_t rdma_svc_args_u;	/* rdma_start args */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   257
	caddr32_t nfs_revauth_args_u;	/* nfs_revauth args */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   258
	caddr32_t lm_svc_args_u;	/* lm_svc args */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   259
	/* kill_lockmgr args: none */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   260
	caddr32_t nfsl_flush_args_u;	/* nfsl_flush args */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   261
	caddr32_t svcpool_args_u;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   262
	caddr32_t nfs4clrst_u;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   263
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   264
struct nfssysa32 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   265
	enum nfssys_op		opcode;	/* operation discriminator */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   266
	union nfssysargs32	arg;	/* syscall-specific arg pointer */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   267
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   268
#endif /* _SYSCALL32 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   269
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   270
#endif	/* _KERNEL */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   271
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   272
struct nfs4_svc_args {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   273
	int		fd;		/* Connection endpoint */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   274
	int		cmd;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   275
	char		*netid;		/* Transport Identifier */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   276
	char		*addr;		/* Universal Address */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   277
	char		*protofmly;	/* Protocol Family */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   278
	char		*proto;		/* Protocol, eg. "tcp" */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   279
	struct netbuf	addrmask;	/* Address mask for host */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   280
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   281
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   282
#ifdef _SYSCALL32
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   283
struct nfs4_svc_args32 {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   284
	int32_t		fd;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   285
	int32_t		cmd;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   286
	caddr32_t	netid;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   287
	caddr32_t	addr;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   288
	caddr32_t	protofmly;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   289
	caddr32_t	proto;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   290
	struct netbuf32	addrmask;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   291
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   292
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   293
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   294
#define	NFS4_KRPC_START	1
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   295
#define	NFS4_SETPORT	2
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   296
#define	NFS4_DQUERY	4
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   297
2035
a29bc457bcb9 PSARC/2006/313 NFSv4: nfsd "-s" distributed stable storage
calum
parents: 1610
diff changeset
   298
/* DSS: distributed stable storage */
a29bc457bcb9 PSARC/2006/313 NFSv4: nfsd "-s" distributed stable storage
calum
parents: 1610
diff changeset
   299
#define	NFS4_DSS_STATE_LEAF	"v4_state"
a29bc457bcb9 PSARC/2006/313 NFSv4: nfsd "-s" distributed stable storage
calum
parents: 1610
diff changeset
   300
#define	NFS4_DSS_OLDSTATE_LEAF	"v4_oldstate"
a29bc457bcb9 PSARC/2006/313 NFSv4: nfsd "-s" distributed stable storage
calum
parents: 1610
diff changeset
   301
#define	NFS4_DSS_DIR_MODE	0755
a29bc457bcb9 PSARC/2006/313 NFSv4: nfsd "-s" distributed stable storage
calum
parents: 1610
diff changeset
   302
#define	NFS4_DSS_NVPAIR_NAME	"dss_pathname_array"
a29bc457bcb9 PSARC/2006/313 NFSv4: nfsd "-s" distributed stable storage
calum
parents: 1610
diff changeset
   303
/* default storage dir */
a29bc457bcb9 PSARC/2006/313 NFSv4: nfsd "-s" distributed stable storage
calum
parents: 1610
diff changeset
   304
#define	NFS4_DSS_VAR_DIR	"/var/nfs"
a29bc457bcb9 PSARC/2006/313 NFSv4: nfsd "-s" distributed stable storage
calum
parents: 1610
diff changeset
   305
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   306
#ifdef _KERNEL
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   307
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   308
#include <sys/systm.h>		/* for rval_t typedef */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   309
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   310
extern int	nfssys(enum nfssys_op opcode, void *arg);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   311
extern int	exportfs(struct exportfs_args *, model_t, cred_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   312
extern int	nfs_getfh(struct nfs_getfh_args *, model_t, cred_t *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   313
extern int	nfs_svc(struct nfs_svc_args *, model_t);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   314
extern int	lm_svc(struct lm_svc_args *uap);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   315
extern int	lm_shutdown(void);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   316
extern int	nfsl_flush(struct nfsl_flush_args *, model_t);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   317
extern int	nfs4_svc(struct nfs4_svc_args *, model_t);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   318
extern int 	rdma_start(struct rdma_svc_args *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   319
extern void	rfs4_clear_client_state(struct nfs4clrst_args *);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   320
extern void	nfs_idmap_args(struct nfsidmap_args *);
2140
043bd360aabc 6417056 nfssrv should use doors/xdr as its IPC mech to mountd(1m)
rmesta
parents: 2035
diff changeset
   321
extern void	mountd_args(uint_t);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   322
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   323
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   324
#ifdef	__cplusplus
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   325
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   326
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   327
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   328
#endif	/* _NFS_NFSSYS_H */