174Srg137905 /* 274Srg137905 * CDDL HEADER START 374Srg137905 * 474Srg137905 * The contents of this file are subject to the terms of the 5*1610Sthurlow * Common Development and Distribution License (the "License"). 6*1610Sthurlow * You may not use this file except in compliance with the License. 774Srg137905 * 874Srg137905 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 974Srg137905 * or http://www.opensolaris.org/os/licensing. 1074Srg137905 * See the License for the specific language governing permissions 1174Srg137905 * and limitations under the License. 1274Srg137905 * 1374Srg137905 * When distributing Covered Code, include this CDDL HEADER in each 1474Srg137905 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1574Srg137905 * If applicable, add the following below this CDDL HEADER, with the 1674Srg137905 * fields enclosed by brackets "[]" replaced with your own identifying 1774Srg137905 * information: Portions Copyright [yyyy] [name of copyright owner] 1874Srg137905 * 1974Srg137905 * CDDL HEADER END 2074Srg137905 */ 2174Srg137905 2274Srg137905 /* 23*1610Sthurlow * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 2474Srg137905 * Use is subject to license terms. 2574Srg137905 */ 2674Srg137905 2774Srg137905 /* 2874Srg137905 * Copyright (c) 1983,1984,1985,1986,1987,1988,1989 AT&T. 2974Srg137905 * All rights reserved. 3074Srg137905 * Use is subject to license terms. 3174Srg137905 */ 3274Srg137905 3374Srg137905 3474Srg137905 #ifndef _NFS_DISPATCH_H 3574Srg137905 #define _NFS_DISPATCH_H 3674Srg137905 3774Srg137905 #pragma ident "%Z%%M% %I% %E% SMI" 3874Srg137905 3974Srg137905 #ifdef __cplusplus 4074Srg137905 extern "C" { 4174Srg137905 #endif 4274Srg137905 4374Srg137905 /* 4474Srg137905 * RPC dispatch table 4574Srg137905 * Indexed by version, proc 4674Srg137905 */ 4774Srg137905 48*1610Sthurlow typedef struct rpcdisp { 4974Srg137905 void (*dis_proc)(); /* proc to call */ 5074Srg137905 xdrproc_t dis_xdrargs; /* xdr routine to get args */ 5174Srg137905 xdrproc_t dis_fastxdrargs; /* `fast' xdr routine to get args */ 5274Srg137905 int dis_argsz; /* sizeof args */ 5374Srg137905 xdrproc_t dis_xdrres; /* xdr routine to put results */ 5474Srg137905 xdrproc_t dis_fastxdrres; /* `fast' xdr routine to put results */ 5574Srg137905 int dis_ressz; /* size of results */ 5674Srg137905 void (*dis_resfree)(); /* frees space allocated by proc */ 5774Srg137905 int dis_flags; /* flags, see below */ 58*1610Sthurlow void *(*dis_getfh)(); /* returns the fhandle for the req */ 59*1610Sthurlow } rpcdisp_t; 6074Srg137905 6174Srg137905 #define RPC_IDEMPOTENT 0x1 /* idempotent or not */ 6274Srg137905 /* 6374Srg137905 * Be very careful about which NFS procedures get the RPC_ALLOWANON bit. 6474Srg137905 * Right now, it this bit is on, we ignore the results of per NFS request 6574Srg137905 * access control. 6674Srg137905 */ 6774Srg137905 #define RPC_ALLOWANON 0x2 /* allow anonymous access */ 6874Srg137905 #define RPC_MAPRESP 0x4 /* use mapped response buffer */ 6974Srg137905 #define RPC_AVOIDWORK 0x8 /* do work avoidance for dups */ 7074Srg137905 #define RPC_PUBLICFH_OK 0x10 /* allow use of public filehandle */ 7174Srg137905 72*1610Sthurlow typedef struct rpc_disptable { 7374Srg137905 int dis_nprocs; 7474Srg137905 char **dis_procnames; 7574Srg137905 kstat_named_t **dis_proccntp; 7674Srg137905 struct rpcdisp *dis_table; 77*1610Sthurlow } rpc_disptable_t; 7874Srg137905 7974Srg137905 void rpc_null(caddr_t *, caddr_t *); 8074Srg137905 8174Srg137905 #ifdef __cplusplus 8274Srg137905 } 8374Srg137905 #endif 8474Srg137905 8574Srg137905 #endif /* _NFS_DISPATCH_H */ 86