Blame sunrpc/rpc/rpc.h

Packit Service 82fcde
/*
Packit Service 82fcde
 * rpc.h, Just includes the billions of rpc header files necessary to
Packit Service 82fcde
 * do remote procedure calling.
Packit Service 82fcde
 *
Packit Service 82fcde
 * Copyright (c) 2010, Oracle America, Inc.
Packit Service 82fcde
 *
Packit Service 82fcde
 * Redistribution and use in source and binary forms, with or without
Packit Service 82fcde
 * modification, are permitted provided that the following conditions are
Packit Service 82fcde
 * met:
Packit Service 82fcde
 *
Packit Service 82fcde
 *     * Redistributions of source code must retain the above copyright
Packit Service 82fcde
 *       notice, this list of conditions and the following disclaimer.
Packit Service 82fcde
 *     * Redistributions in binary form must reproduce the above
Packit Service 82fcde
 *       copyright notice, this list of conditions and the following
Packit Service 82fcde
 *       disclaimer in the documentation and/or other materials
Packit Service 82fcde
 *       provided with the distribution.
Packit Service 82fcde
 *     * Neither the name of the "Oracle America, Inc." nor the names of its
Packit Service 82fcde
 *       contributors may be used to endorse or promote products derived
Packit Service 82fcde
 *       from this software without specific prior written permission.
Packit Service 82fcde
 *
Packit Service 82fcde
 *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
Packit Service 82fcde
 *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
Packit Service 82fcde
 *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
Packit Service 82fcde
 *   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
Packit Service 82fcde
 *   COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
Packit Service 82fcde
 *   INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Packit Service 82fcde
 *   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
Packit Service 82fcde
 *   GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
Packit Service 82fcde
 *   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
Packit Service 82fcde
 *   WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
Packit Service 82fcde
 *   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Packit Service 82fcde
 *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Packit Service 82fcde
 */
Packit Service 82fcde
Packit Service 82fcde
#ifndef _RPC_RPC_H
Packit Service 82fcde
#define _RPC_RPC_H 1
Packit Service 82fcde
Packit Service 82fcde
#include <rpc/types.h>		/* some typedefs */
Packit Service 82fcde
#include <netinet/in.h>
Packit Service 82fcde
Packit Service 82fcde
/* external data representation interfaces */
Packit Service 82fcde
#include <rpc/xdr.h>		/* generic (de)serializer */
Packit Service 82fcde
Packit Service 82fcde
/* Client side only authentication */
Packit Service 82fcde
#include <rpc/auth.h>		/* generic authenticator (client side) */
Packit Service 82fcde
Packit Service 82fcde
/* Client side (mostly) remote procedure call */
Packit Service 82fcde
#include <rpc/clnt.h>		/* generic rpc stuff */
Packit Service 82fcde
Packit Service 82fcde
/* semi-private protocol headers */
Packit Service 82fcde
#include <rpc/rpc_msg.h>	/* protocol for rpc messages */
Packit Service 82fcde
#include <rpc/auth_unix.h>	/* protocol for unix style cred */
Packit Service 82fcde
#include <rpc/auth_des.h>	/* protocol for des style cred */
Packit Service 82fcde
Packit Service 82fcde
/* Server side only remote procedure callee */
Packit Service 82fcde
#include <rpc/svc.h>		/* service manager and multiplexer */
Packit Service 82fcde
#include <rpc/svc_auth.h>	/* service side authenticator */
Packit Service 82fcde
Packit Service 82fcde
/*
Packit Service 82fcde
 * COMMENT OUT THE NEXT INCLUDE IF RUNNING ON SUN OS OR ON A VERSION
Packit Service 82fcde
 * OF UNIX BASED ON NFSSRC.  These systems will already have the structures
Packit Service 82fcde
 * defined by <rpc/netdb.h> included in <netdb.h>.
Packit Service 82fcde
 */
Packit Service 82fcde
/* routines for parsing /etc/rpc */
Packit Service 82fcde
#include <rpc/netdb.h>		/* structures and routines to parse /etc/rpc */
Packit Service 82fcde
Packit Service 82fcde
__BEGIN_DECLS
Packit Service 82fcde
Packit Service 82fcde
/* Global variables, protected for multi-threaded applications.  */
Packit Service 82fcde
extern fd_set *__rpc_thread_svc_fdset (void) __attribute__ ((__const__));
Packit Service 82fcde
#define svc_fdset (*__rpc_thread_svc_fdset ())
Packit Service 82fcde
Packit Service 82fcde
extern struct rpc_createerr *__rpc_thread_createerr (void)
Packit Service 82fcde
     __attribute__ ((__const__));
Packit Service 82fcde
#define get_rpc_createerr() (*__rpc_thread_createerr ())
Packit Service 82fcde
/* The people who "engineered" RPC should bee punished for naming the
Packit Service 82fcde
   data structure and the variable the same.  We cannot always define the
Packit Service 82fcde
   macro 'rpc_createerr' because this would prevent people from defining
Packit Service 82fcde
   object of type 'struct rpc_createerr'.  So we leave it up to the user
Packit Service 82fcde
   to select transparent replacement also of this variable.  */
Packit Service 82fcde
#ifdef _RPC_MT_VARS
Packit Service 82fcde
# define rpc_createerr (*__rpc_thread_createerr ())
Packit Service 82fcde
#endif
Packit Service 82fcde
Packit Service 82fcde
extern struct pollfd **__rpc_thread_svc_pollfd (void)
Packit Service 82fcde
     __attribute__ ((__const__));
Packit Service 82fcde
#define svc_pollfd (*__rpc_thread_svc_pollfd ())
Packit Service 82fcde
Packit Service 82fcde
extern int *__rpc_thread_svc_max_pollfd (void) __attribute__ ((__const__));
Packit Service 82fcde
#define svc_max_pollfd (*__rpc_thread_svc_max_pollfd ())
Packit Service 82fcde
Packit Service 82fcde
__END_DECLS
Packit Service 82fcde
Packit Service 82fcde
#endif /* rpc/rpc.h */