OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [newlib-1.18.0/] [newlib-1.18.0-or32-1.0rc2/] [newlib/] [libc/] [sys/] [linux/] [include/] [rpc/] [rpc_msg.h] - Blame information for rev 207

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 207 jeremybenn
/*      $NetBSD: rpc_msg.h,v 1.11 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_msg.h 1.7 86/07/16 SMI
32
 *      from: @(#)rpc_msg.h     2.1 88/07/29 4.0 RPCSRC
33
 * $FreeBSD: src/include/rpc/rpc_msg.h,v 1.14 2002/03/23 17:24:55 imp Exp $
34
 */
35
 
36
/*
37
 * rpc_msg.h
38
 * rpc message definition
39
 *
40
 * Copyright (C) 1984, Sun Microsystems, Inc.
41
 */
42
 
43
#ifndef _RPC_RPC_MSG_H
44
#define _RPC_RPC_MSG_H
45
 
46
#define RPC_MSG_VERSION         ((u_int32_t) 2)
47
#define RPC_SERVICE_PORT        ((u_short) 2048)
48
 
49
/*
50
 * Bottom up definition of an rpc message.
51
 * NOTE: call and reply use the same overall stuct but
52
 * different parts of unions within it.
53
 */
54
 
55
enum msg_type {
56
        CALL=0,
57
        REPLY=1
58
};
59
 
60
enum reply_stat {
61
        MSG_ACCEPTED=0,
62
        MSG_DENIED=1
63
};
64
 
65
enum accept_stat {
66
        SUCCESS=0,
67
        PROG_UNAVAIL=1,
68
        PROG_MISMATCH=2,
69
        PROC_UNAVAIL=3,
70
        GARBAGE_ARGS=4,
71
        SYSTEM_ERR=5
72
};
73
 
74
enum reject_stat {
75
        RPC_MISMATCH=0,
76
        AUTH_ERROR=1
77
};
78
 
79
/*
80
 * Reply part of an rpc exchange
81
 */
82
 
83
/*
84
 * Reply to an rpc request that was accepted by the server.
85
 * Note: there could be an error even though the request was
86
 * accepted.
87
 */
88
struct accepted_reply {
89
        struct opaque_auth      ar_verf;
90
        enum accept_stat        ar_stat;
91
        union {
92
                struct {
93
                        rpcvers_t low;
94
                        rpcvers_t high;
95
                } AR_versions;
96
                struct {
97
                        caddr_t where;
98
                        xdrproc_t proc;
99
                } AR_results;
100
                /* and many other null cases */
101
        } ru;
102
#define ar_results      ru.AR_results
103
#define ar_vers         ru.AR_versions
104
};
105
 
106
/*
107
 * Reply to an rpc request that was rejected by the server.
108
 */
109
struct rejected_reply {
110
        enum reject_stat rj_stat;
111
        union {
112
                struct {
113
                        rpcvers_t low;
114
                        rpcvers_t high;
115
                } RJ_versions;
116
                enum auth_stat RJ_why;  /* why authentication did not work */
117
        } ru;
118
#define rj_vers ru.RJ_versions
119
#define rj_why  ru.RJ_why
120
};
121
 
122
/*
123
 * Body of a reply to an rpc request.
124
 */
125
struct reply_body {
126
        enum reply_stat rp_stat;
127
        union {
128
                struct accepted_reply RP_ar;
129
                struct rejected_reply RP_dr;
130
        } ru;
131
#define rp_acpt ru.RP_ar
132
#define rp_rjct ru.RP_dr
133
};
134
 
135
/*
136
 * Body of an rpc request call.
137
 */
138
struct call_body {
139
        rpcvers_t cb_rpcvers;   /* must be equal to two */
140
        rpcprog_t cb_prog;
141
        rpcvers_t cb_vers;
142
        rpcproc_t cb_proc;
143
        struct opaque_auth cb_cred;
144
        struct opaque_auth cb_verf; /* protocol specific - provided by client */
145
};
146
 
147
/*
148
 * The rpc message
149
 */
150
struct rpc_msg {
151
        u_int32_t               rm_xid;
152
        enum msg_type           rm_direction;
153
        union {
154
                struct call_body RM_cmb;
155
                struct reply_body RM_rmb;
156
        } ru;
157
#define rm_call         ru.RM_cmb
158
#define rm_reply        ru.RM_rmb
159
};
160
#define acpted_rply     ru.RM_rmb.ru.RP_ar
161
#define rjcted_rply     ru.RM_rmb.ru.RP_dr
162
 
163
__BEGIN_DECLS
164
/*
165
 * XDR routine to handle a rpc message.
166
 * xdr_callmsg(xdrs, cmsg)
167
 *      XDR *xdrs;
168
 *      struct rpc_msg *cmsg;
169
 */
170
extern bool_t   xdr_callmsg(XDR *, struct rpc_msg *);
171
 
172
/*
173
 * XDR routine to pre-serialize the static part of a rpc message.
174
 * xdr_callhdr(xdrs, cmsg)
175
 *      XDR *xdrs;
176
 *      struct rpc_msg *cmsg;
177
 */
178
extern bool_t   xdr_callhdr(XDR *, struct rpc_msg *);
179
 
180
/*
181
 * XDR routine to handle a rpc reply.
182
 * xdr_replymsg(xdrs, rmsg)
183
 *      XDR *xdrs;
184
 *      struct rpc_msg *rmsg;
185
 */
186
extern bool_t   xdr_replymsg(XDR *, struct rpc_msg *);
187
 
188
 
189
/*
190
 * XDR routine to handle a accepted rpc reply.
191
 * xdr_accepted_reply(xdrs, rej)
192
 *      XDR *xdrs;
193
 *      struct accepted_reply *rej;
194
 */
195
extern bool_t   xdr_accepted_reply(XDR *, struct accepted_reply *);
196
 
197
/*
198
 * XDR routine to handle a rejected rpc reply.
199
 * xdr_rejected_reply(xdrs, rej)
200
 *      XDR *xdrs;
201
 *      struct rejected_reply *rej;
202
 */
203
extern bool_t   xdr_rejected_reply(XDR *, struct rejected_reply *);
204
 
205
/*
206
 * Fills in the error part of a reply message.
207
 * _seterr_reply(msg, error)
208
 *      struct rpc_msg *msg;
209
 *      struct rpc_err *error;
210
 */
211
extern void     _seterr_reply(struct rpc_msg *, struct rpc_err *);
212
__END_DECLS
213
 
214
#endif /* !_RPC_RPC_MSG_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.