RTEMS CPU Kit with SuperCore  4.11.3
rpc.h
Go to the documentation of this file.
1 /* $NetBSD: rpc.h,v 1.13 2000/06/02 22:57:56 fvdl Exp $ */
2 
3 /*
4  * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
5  * unrestricted use provided that this legend is included on all tape
6  * media and as a part of the software program in whole or part. Users
7  * may copy or modify Sun RPC without charge, but are not authorized
8  * to license or distribute it to anyone else except as part of a product or
9  * program developed by the user.
10  *
11  * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
12  * WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
13  * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
14  *
15  * Sun RPC is provided with no support and without any obligation on the
16  * part of Sun Microsystems, Inc. to assist in its use, correction,
17  * modification or enhancement.
18  *
19  * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
20  * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
21  * OR ANY PART THEREOF.
22  *
23  * In no event will Sun Microsystems, Inc. be liable for any lost revenue
24  * or profits or other special, indirect and consequential damages, even if
25  * Sun has been advised of the possibility of such damages.
26  *
27  * Sun Microsystems, Inc.
28  * 2550 Garcia Avenue
29  * Mountain View, California 94043
30  *
31  * from: @(#)rpc.h 1.9 88/02/08 SMI
32  * from: @(#)rpc.h 2.4 89/07/11 4.0 RPCSRC
33  * $FreeBSD: src/include/rpc/rpc.h,v 1.17 2002/03/23 17:24:55 imp Exp $
34  */
35 
36 /*
37  * rpc.h, Just includes the billions of rpc header files necessary to
38  * do remote procedure calling.
39  *
40  * Copyright (C) 1984, Sun Microsystems, Inc.
41  */
42 #ifndef _RPC_RPC_H
43 #define _RPC_RPC_H
44 
45 #include <rpc/types.h> /* some typedefs */
46 #include <netinet/in.h>
47 
48 /* external data representation interfaces */
49 #include <rpc/xdr.h> /* generic (de)serializer */
50 
51 /* Client side only authentication */
52 #include <rpc/auth.h> /* generic authenticator (client side) */
53 
54 /* Client side (mostly) remote procedure call */
55 #include <rpc/clnt.h> /* generic rpc stuff */
56 
57 /* semi-private protocol headers */
58 #include <rpc/rpc_msg.h> /* protocol for rpc messages */
59 #include <rpc/auth_unix.h> /* protocol for unix style cred */
60 
61 /* Server side only remote procedure callee */
62 #include <rpc/svc.h> /* service manager and multiplexer */
63 #include <rpc/svc_auth.h> /* service side authenticator */
64 
65 #include <rpc/rpcent.h>
66 
67 __BEGIN_DECLS
68 extern int get_myaddress(struct sockaddr_in *);
69 extern int bindresvport(int, struct sockaddr_in *);
70 extern int bindresvport_sa(int, struct sockaddr *);
71 __END_DECLS
72 
73 int rtems_rpc_task_init (void);
74 int rtems_rpc_start_portmapper (int priority);
75 
76 #ifdef _RTEMS_RPC_INTERNAL_
77 /*
78  * Multi-threaded support
79  * Group all global and static variables into a single spot.
80  * This area will be allocated on a per-task basis
81  */
82 struct _rtems_rpc_task_variables {
83  int svc_svc_maxfd;
84  fd_set svc_svc_fdset;
85  SVCXPRT ** svc_xports;
86  int svc_xportssize;
87  int svc__svc_fdsetsize;
88  fd_set *svc__svc_fdset;
89  struct svc_callout *svc_svc_head;
90 
91  char *clnt_perror_buf;
92 
94 
95  void *call_rpc_private;
96 
97  struct call_rpc_private *svc_raw_private;
98 
99  struct prog_lst *svc_simple_proglst;
100  struct prog_lst *svc_simple_pl;
101  SVCXPRT *svc_simple_transp;
102 
103  char *rpcdname_default_domain;
104 
105  struct authsvc *svc_auths_Auths;
106 };
107 
108 struct _rtems_rpc_task_variables *rtems_rpc_task_variables_get(void);
109 #define rtems_rpc_task_variables rtems_rpc_task_variables_get()
110 
111 #define svc_maxfd (rtems_rpc_task_variables->svc_svc_maxfd)
112 #define svc_fdset (rtems_rpc_task_variables->svc_svc_fdset)
113 #define __svc_fdsetsize (rtems_rpc_task_variables->svc__svc_fdsetsize)
114 #define __svc_fdset (rtems_rpc_task_variables->svc__svc_fdset)
115 
116 #endif /* _RTEMS_RPC_INTERNAL_ */
117 
118 #endif /* !_RPC_RPC_H */
Definition: clnt_simple.c:57
Definition: in.h:74
Definition: socket.h:180
Definition: svc_simple.c:59
Definition: svc_auth.c:90
Definition: clnt_raw.c:61
Definition: svc_raw.c:56
Definition: svc.c:74
Definition: svc.h:85