Print this page
11083 support NFS server in zone
Portions contributed by: Dan Kruchinin <dan.kruchinin@nexenta.com>
Portions contributed by: Stepan Zastupov <stepan.zastupov@gmail.com>
Portions contributed by: Joyce McIntosh <joyce.mcintosh@nexenta.com>
Portions contributed by: Mike Zeller <mike@mikezeller.net>
Portions contributed by: Dan McDonald <danmcd@joyent.com>
Portions contributed by: Gordon Ross <gordon.w.ross@gmail.com>
Portions contributed by: Vitaliy Gusev <gusev.vitaliy@gmail.com>
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
Reviewed by: Rob Gittins <rob.gittins@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
Reviewed by: Jason King <jbk@joyent.com>
Reviewed by: C Fraire <cfraire@me.com>
Change-Id: I22f289d357503f9b48a0bc2482cc4328a6d43d16
| Split |
Close |
| Expand all |
| Collapse all |
--- old/usr/src/uts/common/nfs/nfs_cmd.h
+++ new/usr/src/uts/common/nfs/nfs_cmd.h
1 1 /*
2 2 * CDDL HEADER START
3 3 *
4 4 * The contents of this file are subject to the terms of the
5 5 * Common Development and Distribution License (the "License").
6 6 * You may not use this file except in compliance with the License.
7 7 *
8 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 9 * or http://www.opensolaris.org/os/licensing.
10 10 * See the License for the specific language governing permissions
|
↓ open down ↓ |
10 lines elided |
↑ open up ↑ |
11 11 * and limitations under the License.
12 12 *
13 13 * When distributing Covered Code, include this CDDL HEADER in each
14 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 15 * If applicable, add the following below this CDDL HEADER, with the
16 16 * fields enclosed by brackets "[]" replaced with your own identifying
17 17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 18 *
19 19 * CDDL HEADER END
20 20 */
21 +
21 22 /*
22 23 * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
23 24 * Use is subject to license terms.
24 25 */
25 26
26 27 /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */
27 28 /* All Rights Reserved */
28 29
30 +/*
31 + * Copyright 2018 Nexenta Systems, Inc.
32 + */
33 +
29 34 #ifndef _NFS_CMD_H
30 35 #define _NFS_CMD_H
31 36
32 37 #ifdef __cplusplus
33 38 extern "C" {
34 39 #endif
35 40
36 41 #include <sys/types.h>
37 42 #include <sys/param.h>
38 43 #include <sys/kiconv.h>
39 44
40 45 #define KICONV_MAX_CODENAME_LEN 63 /* copied from sys/kiconv.h */
41 46
42 47 #define NFSCMD_VERS_1 1
43 48 #define NFSCMD_VERSION NFSCMD_VERS_1
44 49
45 50 typedef enum { NFSCMD_CHARMAP_LOOKUP, NFSCMD_ERROR } nfscmd_t;
46 51 typedef enum { NFSCMD_ERR_SUCCESS, NFSCMD_ERR_BADCMD, NFSCMD_ERR_NOTFOUND,
47 52 NFSCMD_ERR_FAIL, NFSCMD_ERR_DROP, NFSCMD_ERR_NOMEM } nfscmd_err_t;
48 53 #define NFSCMD_ERR_RET 0x100000
49 54
50 55 typedef struct nfscmd_arg {
51 56 uint32_t version;
52 57 nfscmd_t cmd;
53 58 union {
54 59 struct {
55 60 char path[MAXPATHLEN];
56 61 struct sockaddr addr;
57 62 } charmap;
58 63 } arg;
59 64 } nfscmd_arg_t;
60 65
61 66 typedef struct nfscmd_res {
62 67 uint32_t version;
63 68 uint32_t cmd;
64 69 nfscmd_err_t error;
65 70 union {
66 71 struct {
67 72 char codeset[KICONV_MAX_CODENAME_LEN + 1];
68 73 uint32_t apply;
69 74 } charmap;
70 75 } result;
71 76 } nfscmd_res_t;
72 77
|
↓ open down ↓ |
34 lines elided |
↑ open up ↑ |
73 78 #ifdef _KERNEL
74 79
75 80 #define NFSCMD_CONV_INBOUND 1
76 81 #define NFSCMD_CONV_OUTBOUND 0
77 82
78 83 extern int nfscmd_send(nfscmd_arg_t *, nfscmd_res_t *);
79 84 extern struct charset_cache *nfscmd_findmap(struct exportinfo *,
80 85 struct sockaddr *);
81 86 extern char *nfscmd_convname(struct sockaddr *, struct exportinfo *,
82 87 char *, int, size_t);
88 +
83 89 extern char *nfscmd_convdirent(struct sockaddr *, struct exportinfo *, char *,
84 90 size_t, enum nfsstat3 *);
85 91 extern size_t nfscmd_convdirplus(struct sockaddr *, struct exportinfo *, char *,
86 92 size_t, size_t, char **);
87 93 extern size_t nfscmd_countents(char *, size_t);
88 94 extern size_t nfscmd_dropped_entrysize(struct dirent64 *, size_t, size_t);
89 95
96 +extern void nfscmd_init(void);
97 +extern void nfscmd_fini(void);
98 +
90 99 #endif
91 100
92 101 #ifdef __cplusplus
93 102 }
94 103 #endif
95 104
96 105 #endif /* _NFS_CMD_H */
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX