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