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 */ 21*0dfe541eSEvan Layton 22b89a8333Snatalie li - Sun Microsystems - Irvine United States /* 23593cc11bSJan Kryl * Copyright 2010 Sun Microsystems, Inc. All rights reserved. 24b89a8333Snatalie li - Sun Microsystems - Irvine United States * Use is subject to license terms. 25b89a8333Snatalie li - Sun Microsystems - Irvine United States */ 26b89a8333Snatalie li - Sun Microsystems - Irvine United States 27b89a8333Snatalie li - Sun Microsystems - Irvine United States /* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ 28b89a8333Snatalie li - Sun Microsystems - Irvine United States /* All Rights Reserved */ 29b89a8333Snatalie li - Sun Microsystems - Irvine United States 30*0dfe541eSEvan Layton /* 31*0dfe541eSEvan Layton * Copyright 2018 Nexenta Systems, Inc. 32*0dfe541eSEvan Layton */ 33*0dfe541eSEvan Layton 34b89a8333Snatalie li - Sun Microsystems - Irvine United States #ifndef _NFS_CMD_H 35b89a8333Snatalie li - Sun Microsystems - Irvine United States #define _NFS_CMD_H 36b89a8333Snatalie li - Sun Microsystems - Irvine United States 37b89a8333Snatalie li - Sun Microsystems - Irvine United States #ifdef __cplusplus 38b89a8333Snatalie li - Sun Microsystems - Irvine United States extern "C" { 39b89a8333Snatalie li - Sun Microsystems - Irvine United States #endif 40b89a8333Snatalie li - Sun Microsystems - Irvine United States 41b89a8333Snatalie li - Sun Microsystems - Irvine United States #include <sys/types.h> 42b89a8333Snatalie li - Sun Microsystems - Irvine United States #include <sys/param.h> 43b89a8333Snatalie li - Sun Microsystems - Irvine United States #include <sys/kiconv.h> 44b89a8333Snatalie li - Sun Microsystems - Irvine United States 45b89a8333Snatalie li - Sun Microsystems - Irvine United States #define KICONV_MAX_CODENAME_LEN 63 /* copied from sys/kiconv.h */ 46b89a8333Snatalie li - Sun Microsystems - Irvine United States 47b89a8333Snatalie li - Sun Microsystems - Irvine United States #define NFSCMD_VERS_1 1 48b89a8333Snatalie li - Sun Microsystems - Irvine United States #define NFSCMD_VERSION NFSCMD_VERS_1 49b89a8333Snatalie li - Sun Microsystems - Irvine United States 50b89a8333Snatalie li - Sun Microsystems - Irvine United States typedef enum { NFSCMD_CHARMAP_LOOKUP, NFSCMD_ERROR } nfscmd_t; 51b89a8333Snatalie li - Sun Microsystems - Irvine United States typedef enum { NFSCMD_ERR_SUCCESS, NFSCMD_ERR_BADCMD, NFSCMD_ERR_NOTFOUND, 52b89a8333Snatalie li - Sun Microsystems - Irvine United States NFSCMD_ERR_FAIL, NFSCMD_ERR_DROP, NFSCMD_ERR_NOMEM } nfscmd_err_t; 53b89a8333Snatalie li - Sun Microsystems - Irvine United States #define NFSCMD_ERR_RET 0x100000 54b89a8333Snatalie li - Sun Microsystems - Irvine United States 55b89a8333Snatalie li - Sun Microsystems - Irvine United States typedef struct nfscmd_arg { 56b89a8333Snatalie li - Sun Microsystems - Irvine United States uint32_t version; 57b89a8333Snatalie li - Sun Microsystems - Irvine United States nfscmd_t cmd; 58b89a8333Snatalie li - Sun Microsystems - Irvine United States union { 59b89a8333Snatalie li - Sun Microsystems - Irvine United States struct { 60b89a8333Snatalie li - Sun Microsystems - Irvine United States char path[MAXPATHLEN]; 61b89a8333Snatalie li - Sun Microsystems - Irvine United States struct sockaddr addr; 62b89a8333Snatalie li - Sun Microsystems - Irvine United States } charmap; 63b89a8333Snatalie li - Sun Microsystems - Irvine United States } arg; 64b89a8333Snatalie li - Sun Microsystems - Irvine United States } nfscmd_arg_t; 65b89a8333Snatalie li - Sun Microsystems - Irvine United States 66b89a8333Snatalie li - Sun Microsystems - Irvine United States typedef struct nfscmd_res { 67b89a8333Snatalie li - Sun Microsystems - Irvine United States uint32_t version; 68b89a8333Snatalie li - Sun Microsystems - Irvine United States uint32_t cmd; 69b89a8333Snatalie li - Sun Microsystems - Irvine United States nfscmd_err_t error; 70b89a8333Snatalie li - Sun Microsystems - Irvine United States union { 71b89a8333Snatalie li - Sun Microsystems - Irvine United States struct { 72b89a8333Snatalie li - Sun Microsystems - Irvine United States char codeset[KICONV_MAX_CODENAME_LEN + 1]; 73b89a8333Snatalie li - Sun Microsystems - Irvine United States uint32_t apply; 74b89a8333Snatalie li - Sun Microsystems - Irvine United States } charmap; 75b89a8333Snatalie li - Sun Microsystems - Irvine United States } result; 76b89a8333Snatalie li - Sun Microsystems - Irvine United States } nfscmd_res_t; 77b89a8333Snatalie li - Sun Microsystems - Irvine United States 78b89a8333Snatalie li - Sun Microsystems - Irvine United States #ifdef _KERNEL 79b89a8333Snatalie li - Sun Microsystems - Irvine United States 80b89a8333Snatalie li - Sun Microsystems - Irvine United States #define NFSCMD_CONV_INBOUND 1 81b89a8333Snatalie li - Sun Microsystems - Irvine United States #define NFSCMD_CONV_OUTBOUND 0 82b89a8333Snatalie li - Sun Microsystems - Irvine United States 83b89a8333Snatalie li - Sun Microsystems - Irvine United States extern int nfscmd_send(nfscmd_arg_t *, nfscmd_res_t *); 84b89a8333Snatalie li - Sun Microsystems - Irvine United States extern struct charset_cache *nfscmd_findmap(struct exportinfo *, 85b89a8333Snatalie li - Sun Microsystems - Irvine United States struct sockaddr *); 86b89a8333Snatalie li - Sun Microsystems - Irvine United States extern char *nfscmd_convname(struct sockaddr *, struct exportinfo *, 87b89a8333Snatalie li - Sun Microsystems - Irvine United States char *, int, size_t); 88*0dfe541eSEvan Layton 89b89a8333Snatalie li - Sun Microsystems - Irvine United States extern char *nfscmd_convdirent(struct sockaddr *, struct exportinfo *, char *, 90b89a8333Snatalie li - Sun Microsystems - Irvine United States size_t, enum nfsstat3 *); 91b89a8333Snatalie li - Sun Microsystems - Irvine United States extern size_t nfscmd_convdirplus(struct sockaddr *, struct exportinfo *, char *, 92b89a8333Snatalie li - Sun Microsystems - Irvine United States size_t, size_t, char **); 93b89a8333Snatalie li - Sun Microsystems - Irvine United States extern size_t nfscmd_countents(char *, size_t); 94b89a8333Snatalie li - Sun Microsystems - Irvine United States extern size_t nfscmd_dropped_entrysize(struct dirent64 *, size_t, size_t); 95b89a8333Snatalie li - Sun Microsystems - Irvine United States 96*0dfe541eSEvan Layton extern void nfscmd_init(void); 97*0dfe541eSEvan Layton extern void nfscmd_fini(void); 98*0dfe541eSEvan Layton 99b89a8333Snatalie li - Sun Microsystems - Irvine United States #endif 100b89a8333Snatalie li - Sun Microsystems - Irvine United States 101b89a8333Snatalie li - Sun Microsystems - Irvine United States #ifdef __cplusplus 102b89a8333Snatalie li - Sun Microsystems - Irvine United States } 103b89a8333Snatalie li - Sun Microsystems - Irvine United States #endif 104b89a8333Snatalie li - Sun Microsystems - Irvine United States 105b89a8333Snatalie li - Sun Microsystems - Irvine United States #endif /* _NFS_CMD_H */ 106