xref: /titanic_51/usr/src/uts/common/nfs/nfs_cmd.h (revision 593cc11b0ce1691880b59ee5a8bd6adcdc823490)
1b89a8333Snatalie li - Sun Microsystems - Irvine United States /*
2b89a8333Snatalie li - Sun Microsystems - Irvine United States  * CDDL HEADER START
3b89a8333Snatalie li - Sun Microsystems - Irvine United States  *
4b89a8333Snatalie li - Sun Microsystems - Irvine United States  * The contents of this file are subject to the terms of the
5b89a8333Snatalie li - Sun Microsystems - Irvine United States  * Common Development and Distribution License (the "License").
6b89a8333Snatalie li - Sun Microsystems - Irvine United States  * You may not use this file except in compliance with the License.
7b89a8333Snatalie li - Sun Microsystems - Irvine United States  *
8b89a8333Snatalie li - Sun Microsystems - Irvine United States  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9b89a8333Snatalie li - Sun Microsystems - Irvine United States  * or http://www.opensolaris.org/os/licensing.
10b89a8333Snatalie li - Sun Microsystems - Irvine United States  * See the License for the specific language governing permissions
11b89a8333Snatalie li - Sun Microsystems - Irvine United States  * and limitations under the License.
12b89a8333Snatalie li - Sun Microsystems - Irvine United States  *
13b89a8333Snatalie li - Sun Microsystems - Irvine United States  * When distributing Covered Code, include this CDDL HEADER in each
14b89a8333Snatalie li - Sun Microsystems - Irvine United States  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15b89a8333Snatalie li - Sun Microsystems - Irvine United States  * If applicable, add the following below this CDDL HEADER, with the
16b89a8333Snatalie li - Sun Microsystems - Irvine United States  * fields enclosed by brackets "[]" replaced with your own identifying
17b89a8333Snatalie li - Sun Microsystems - Irvine United States  * information: Portions Copyright [yyyy] [name of copyright owner]
18b89a8333Snatalie li - Sun Microsystems - Irvine United States  *
19b89a8333Snatalie li - Sun Microsystems - Irvine United States  * CDDL HEADER END
20b89a8333Snatalie li - Sun Microsystems - Irvine United States  */
21b89a8333Snatalie li - Sun Microsystems - Irvine United States /*
22*593cc11bSJan Kryl  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
23b89a8333Snatalie li - Sun Microsystems - Irvine United States  * Use is subject to license terms.
24b89a8333Snatalie li - Sun Microsystems - Irvine United States  */
25b89a8333Snatalie li - Sun Microsystems - Irvine United States 
26b89a8333Snatalie li - Sun Microsystems - Irvine United States /*	Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T	*/
27b89a8333Snatalie li - Sun Microsystems - Irvine United States /*	  All Rights Reserved  	*/
28b89a8333Snatalie li - Sun Microsystems - Irvine United States 
29b89a8333Snatalie li - Sun Microsystems - Irvine United States #ifndef	_NFS_CMD_H
30b89a8333Snatalie li - Sun Microsystems - Irvine United States #define	_NFS_CMD_H
31b89a8333Snatalie li - Sun Microsystems - Irvine United States 
32b89a8333Snatalie li - Sun Microsystems - Irvine United States #ifdef	__cplusplus
33b89a8333Snatalie li - Sun Microsystems - Irvine United States extern "C" {
34b89a8333Snatalie li - Sun Microsystems - Irvine United States #endif
35b89a8333Snatalie li - Sun Microsystems - Irvine United States 
36b89a8333Snatalie li - Sun Microsystems - Irvine United States #include <sys/types.h>
37b89a8333Snatalie li - Sun Microsystems - Irvine United States #include <sys/param.h>
38b89a8333Snatalie li - Sun Microsystems - Irvine United States #include <sys/kiconv.h>
39b89a8333Snatalie li - Sun Microsystems - Irvine United States 
40b89a8333Snatalie li - Sun Microsystems - Irvine United States #define	KICONV_MAX_CODENAME_LEN	63 /* copied from sys/kiconv.h */
41b89a8333Snatalie li - Sun Microsystems - Irvine United States 
42b89a8333Snatalie li - Sun Microsystems - Irvine United States #define	NFSCMD_VERS_1	1
43b89a8333Snatalie li - Sun Microsystems - Irvine United States #define	NFSCMD_VERSION	NFSCMD_VERS_1
44b89a8333Snatalie li - Sun Microsystems - Irvine United States 
45b89a8333Snatalie li - Sun Microsystems - Irvine United States typedef enum { NFSCMD_CHARMAP_LOOKUP, NFSCMD_ERROR } nfscmd_t;
46b89a8333Snatalie li - Sun Microsystems - Irvine United States typedef enum { NFSCMD_ERR_SUCCESS, NFSCMD_ERR_BADCMD, NFSCMD_ERR_NOTFOUND,
47b89a8333Snatalie li - Sun Microsystems - Irvine United States     NFSCMD_ERR_FAIL, NFSCMD_ERR_DROP, NFSCMD_ERR_NOMEM } nfscmd_err_t;
48b89a8333Snatalie li - Sun Microsystems - Irvine United States #define	NFSCMD_ERR_RET	0x100000
49b89a8333Snatalie li - Sun Microsystems - Irvine United States 
50b89a8333Snatalie li - Sun Microsystems - Irvine United States typedef struct nfscmd_arg {
51b89a8333Snatalie li - Sun Microsystems - Irvine United States 	uint32_t	version;
52b89a8333Snatalie li - Sun Microsystems - Irvine United States 	nfscmd_t	cmd;
53b89a8333Snatalie li - Sun Microsystems - Irvine United States 	union {
54b89a8333Snatalie li - Sun Microsystems - Irvine United States 		struct {
55b89a8333Snatalie li - Sun Microsystems - Irvine United States 			char path[MAXPATHLEN];
56b89a8333Snatalie li - Sun Microsystems - Irvine United States 			struct sockaddr addr;
57b89a8333Snatalie li - Sun Microsystems - Irvine United States 		} charmap;
58b89a8333Snatalie li - Sun Microsystems - Irvine United States 	} arg;
59b89a8333Snatalie li - Sun Microsystems - Irvine United States } nfscmd_arg_t;
60b89a8333Snatalie li - Sun Microsystems - Irvine United States 
61b89a8333Snatalie li - Sun Microsystems - Irvine United States typedef struct nfscmd_res {
62b89a8333Snatalie li - Sun Microsystems - Irvine United States 	uint32_t	version;
63b89a8333Snatalie li - Sun Microsystems - Irvine United States 	uint32_t	cmd;
64b89a8333Snatalie li - Sun Microsystems - Irvine United States 	nfscmd_err_t	error;
65b89a8333Snatalie li - Sun Microsystems - Irvine United States 	union {
66b89a8333Snatalie li - Sun Microsystems - Irvine United States 		struct {
67b89a8333Snatalie li - Sun Microsystems - Irvine United States 		    char	codeset[KICONV_MAX_CODENAME_LEN + 1];
68b89a8333Snatalie li - Sun Microsystems - Irvine United States 		    uint32_t	apply;
69b89a8333Snatalie li - Sun Microsystems - Irvine United States 		} charmap;
70b89a8333Snatalie li - Sun Microsystems - Irvine United States 	} result;
71b89a8333Snatalie li - Sun Microsystems - Irvine United States } nfscmd_res_t;
72b89a8333Snatalie li - Sun Microsystems - Irvine United States 
73b89a8333Snatalie li - Sun Microsystems - Irvine United States #ifdef _KERNEL
74b89a8333Snatalie li - Sun Microsystems - Irvine United States 
75b89a8333Snatalie li - Sun Microsystems - Irvine United States #define	NFSCMD_CONV_INBOUND	1
76b89a8333Snatalie li - Sun Microsystems - Irvine United States #define	NFSCMD_CONV_OUTBOUND	0
77b89a8333Snatalie li - Sun Microsystems - Irvine United States 
78b89a8333Snatalie li - Sun Microsystems - Irvine United States extern int nfscmd_send(nfscmd_arg_t *, nfscmd_res_t *);
79b89a8333Snatalie li - Sun Microsystems - Irvine United States extern struct charset_cache *nfscmd_findmap(struct exportinfo *,
80b89a8333Snatalie li - Sun Microsystems - Irvine United States     struct sockaddr *);
81b89a8333Snatalie li - Sun Microsystems - Irvine United States extern char *nfscmd_convname(struct sockaddr *, struct exportinfo *,
82b89a8333Snatalie li - Sun Microsystems - Irvine United States     char *, int, size_t);
83b89a8333Snatalie li - Sun Microsystems - Irvine United States extern char *nfscmd_convdirent(struct sockaddr *, struct exportinfo *, char *,
84b89a8333Snatalie li - Sun Microsystems - Irvine United States     size_t, enum nfsstat3 *);
85b89a8333Snatalie li - Sun Microsystems - Irvine United States extern size_t nfscmd_convdirplus(struct sockaddr *, struct exportinfo *, char *,
86b89a8333Snatalie li - Sun Microsystems - Irvine United States     size_t, size_t, char **);
87b89a8333Snatalie li - Sun Microsystems - Irvine United States extern size_t nfscmd_countents(char *, size_t);
88b89a8333Snatalie li - Sun Microsystems - Irvine United States extern size_t nfscmd_dropped_entrysize(struct dirent64 *, size_t, size_t);
89b89a8333Snatalie li - Sun Microsystems - Irvine United States 
90b89a8333Snatalie li - Sun Microsystems - Irvine United States #endif
91b89a8333Snatalie li - Sun Microsystems - Irvine United States 
92b89a8333Snatalie li - Sun Microsystems - Irvine United States #ifdef	__cplusplus
93b89a8333Snatalie li - Sun Microsystems - Irvine United States }
94b89a8333Snatalie li - Sun Microsystems - Irvine United States #endif
95b89a8333Snatalie li - Sun Microsystems - Irvine United States 
96b89a8333Snatalie li - Sun Microsystems - Irvine United States #endif	/* _NFS_CMD_H */
97