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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [librpc/] [include/] [rpcsvc/] [yp.x] - Blame information for rev 30

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

Line No. Rev Author Line
1 30 unneback
/* @(#)yp.x     2.1 88/08/01 4.0 RPCSRC */
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, MERCHANTIBILITY 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
 
32
/*
33
 * Protocol description file for the Yellow Pages Service
34
 */
35
 
36
#ifndef RPC_HDR
37
%#ifndef lint
38
%static const char rcsid[] =
39
%  "$FreeBSD: src/include/rpcsvc/yp.x,v 1.12 1999/08/27 23:45:12 peter Exp $";
40
%#endif /* not lint */
41
#endif
42
 
43
const YPMAXRECORD = 1024;
44
const YPMAXDOMAIN = 64;
45
const YPMAXMAP = 64;
46
const YPMAXPEER = 64;
47
 
48
 
49
enum ypstat {
50
        YP_TRUE         =  1,
51
        YP_NOMORE       =  2,
52
        YP_FALSE        =  0,
53
        YP_NOMAP        = -1,
54
        YP_NODOM        = -2,
55
        YP_NOKEY        = -3,
56
        YP_BADOP        = -4,
57
        YP_BADDB        = -5,
58
        YP_YPERR        = -6,
59
        YP_BADARGS      = -7,
60
        YP_VERS         = -8
61
};
62
 
63
 
64
enum ypxfrstat {
65
        YPXFR_SUCC      =  1,
66
        YPXFR_AGE       =  2,
67
        YPXFR_NOMAP     = -1,
68
        YPXFR_NODOM     = -2,
69
        YPXFR_RSRC      = -3,
70
        YPXFR_RPC       = -4,
71
        YPXFR_MADDR     = -5,
72
        YPXFR_YPERR     = -6,
73
        YPXFR_BADARGS   = -7,
74
        YPXFR_DBM       = -8,
75
        YPXFR_FILE      = -9,
76
        YPXFR_SKEW      = -10,
77
        YPXFR_CLEAR     = -11,
78
        YPXFR_FORCE     = -12,
79
        YPXFR_XFRERR    = -13,
80
        YPXFR_REFUSED   = -14
81
};
82
 
83
 
84
typedef string domainname;
85
typedef string mapname;
86
typedef string peername;
87
typedef opaque keydat;
88
typedef opaque valdat;
89
 
90
 
91
struct ypmap_parms {
92
        domainname domain;
93
        mapname map;
94
        unsigned int ordernum;
95
        peername peer;
96
};
97
 
98
struct ypreq_key {
99
        domainname domain;
100
        mapname map;
101
        keydat key;
102
};
103
 
104
struct ypreq_nokey {
105
        domainname domain;
106
        mapname map;
107
};
108
 
109
struct ypreq_xfr {
110
        ypmap_parms map_parms;
111
        unsigned int transid;
112
        unsigned int prog;
113
        unsigned int port;
114
};
115
 
116
 
117
struct ypresp_val {
118
        ypstat stat;
119
        valdat val;
120
};
121
 
122
struct ypresp_key_val {
123
        ypstat stat;
124
#ifdef STUPID_SUN_BUG /* These are backwards */
125
        keydat key;
126
        valdat val;
127
#else
128
        valdat val;
129
        keydat key;
130
#endif
131
};
132
 
133
 
134
struct ypresp_master {
135
        ypstat stat;
136
        peername peer;
137
};
138
 
139
struct ypresp_order {
140
        ypstat stat;
141
        unsigned int ordernum;
142
};
143
 
144
union ypresp_all switch (bool more) {
145
case TRUE:
146
        ypresp_key_val val;
147
case FALSE:
148
        void;
149
};
150
 
151
struct ypresp_xfr {
152
        unsigned int transid;
153
        ypxfrstat xfrstat;
154
};
155
 
156
struct ypmaplist {
157
        mapname map;
158
        ypmaplist *next;
159
};
160
 
161
struct ypresp_maplist {
162
        ypstat stat;
163
        ypmaplist *maps;
164
};
165
 
166
enum yppush_status {
167
        YPPUSH_SUCC     =  1,   /* Success */
168
        YPPUSH_AGE      =  2,   /* Master's version not newer */
169
        YPPUSH_NOMAP    = -1,   /* Can't find server for map */
170
        YPPUSH_NODOM    = -2,   /* Domain not supported */
171
        YPPUSH_RSRC     = -3,   /* Local resource alloc failure */
172
        YPPUSH_RPC      = -4,   /* RPC failure talking to server */
173
        YPPUSH_MADDR    = -5,   /* Can't get master address */
174
        YPPUSH_YPERR    = -6,   /* YP server/map db error */
175
        YPPUSH_BADARGS  = -7,   /* Request arguments bad */
176
        YPPUSH_DBM      = -8,   /* Local dbm operation failed */
177
        YPPUSH_FILE     = -9,   /* Local file I/O operation failed */
178
        YPPUSH_SKEW     = -10,  /* Map version skew during transfer */
179
        YPPUSH_CLEAR    = -11,  /* Can't send "Clear" req to local ypserv */
180
        YPPUSH_FORCE    = -12,  /* No local order number in map  use -f flag. */
181
        YPPUSH_XFRERR   = -13,  /* ypxfr error */
182
        YPPUSH_REFUSED  = -14   /* Transfer request refused by ypserv */
183
};
184
 
185
struct yppushresp_xfr {
186
        unsigned transid;
187
        yppush_status status;
188
};
189
 
190
/*
191
 * Response structure and overall result status codes.  Success and failure
192
 * represent two separate response message types.
193
 */
194
 
195
enum ypbind_resptype {
196
        YPBIND_SUCC_VAL = 1,
197
        YPBIND_FAIL_VAL = 2
198
};
199
 
200
struct ypbind_binding {
201
    opaque ypbind_binding_addr[4]; /* In network order */
202
    opaque ypbind_binding_port[2]; /* In network order */
203
};
204
 
205
union ypbind_resp switch (ypbind_resptype ypbind_status) {
206
case YPBIND_FAIL_VAL:
207
        unsigned ypbind_error;
208
case YPBIND_SUCC_VAL:
209
        ypbind_binding ypbind_bindinfo;
210
};
211
 
212
/* Detailed failure reason codes for response field ypbind_error*/
213
 
214
const YPBIND_ERR_ERR    = 1;    /* Internal error */
215
const YPBIND_ERR_NOSERV = 2;    /* No bound server for passed domain */
216
const YPBIND_ERR_RESC   = 3;    /* System resource allocation failure */
217
 
218
 
219
/*
220
 * Request data structure for ypbind "Set domain" procedure.
221
 */
222
struct ypbind_setdom {
223
        domainname ypsetdom_domain;
224
        ypbind_binding ypsetdom_binding;
225
        unsigned ypsetdom_vers;
226
};
227
 
228
 
229
/*
230
 * NIS v1 support for backwards compatibility
231
 */
232
enum ypreqtype {
233
        YPREQ_KEY = 1,
234
        YPREQ_NOKEY = 2,
235
        YPREQ_MAP_PARMS = 3
236
};
237
 
238
enum ypresptype {
239
        YPRESP_VAL = 1,
240
        YPRESP_KEY_VAL = 2,
241
        YPRESP_MAP_PARMS = 3
242
};
243
 
244
union yprequest switch (ypreqtype yp_reqtype) {
245
case YPREQ_KEY:
246
        ypreq_key yp_req_keytype;
247
case YPREQ_NOKEY:
248
        ypreq_nokey yp_req_nokeytype;
249
case YPREQ_MAP_PARMS:
250
        ypmap_parms yp_req_map_parmstype;
251
};
252
 
253
union ypresponse switch (ypresptype yp_resptype) {
254
case YPRESP_VAL:
255
        ypresp_val yp_resp_valtype;
256
case YPRESP_KEY_VAL:
257
        ypresp_key_val yp_resp_key_valtype;
258
case YPRESP_MAP_PARMS:
259
        ypmap_parms yp_resp_map_parmstype;
260
};
261
 
262
#if !defined(YPBIND_ONLY) && !defined(YPPUSH_ONLY)
263
/*
264
 * YP access protocol
265
 */
266
program YPPROG {
267
/*
268
 * NIS v1 support for backwards compatibility
269
 */
270
        version YPOLDVERS {
271
                void
272
                YPOLDPROC_NULL(void) = 0;
273
 
274
                bool
275
                YPOLDPROC_DOMAIN(domainname) = 1;
276
 
277
                bool
278
                YPOLDPROC_DOMAIN_NONACK(domainname) = 2;
279
 
280
                ypresponse
281
                YPOLDPROC_MATCH(yprequest) = 3;
282
 
283
                ypresponse
284
                YPOLDPROC_FIRST(yprequest) = 4;
285
 
286
                ypresponse
287
                YPOLDPROC_NEXT(yprequest) = 5;
288
 
289
                ypresponse
290
                YPOLDPROC_POLL(yprequest) = 6;
291
 
292
                ypresponse
293
                YPOLDPROC_PUSH(yprequest) = 7;
294
 
295
                ypresponse
296
                YPOLDPROC_PULL(yprequest) = 8;
297
 
298
                ypresponse
299
                YPOLDPROC_GET(yprequest) = 9;
300
        } = 1;
301
 
302
        version YPVERS {
303
                void
304
                YPPROC_NULL(void) = 0;
305
 
306
                bool
307
                YPPROC_DOMAIN(domainname) = 1;
308
 
309
                bool
310
                YPPROC_DOMAIN_NONACK(domainname) = 2;
311
 
312
                ypresp_val
313
                YPPROC_MATCH(ypreq_key) = 3;
314
 
315
                ypresp_key_val
316
#ifdef STUPID_SUN_BUG /* should be ypreq_nokey */
317
                YPPROC_FIRST(ypreq_key) = 4;
318
#else
319
                YPPROC_FIRST(ypreq_nokey) = 4;
320
#endif
321
                ypresp_key_val
322
                YPPROC_NEXT(ypreq_key) = 5;
323
 
324
                ypresp_xfr
325
                YPPROC_XFR(ypreq_xfr) = 6;
326
 
327
                void
328
                YPPROC_CLEAR(void) = 7;
329
 
330
                ypresp_all
331
                YPPROC_ALL(ypreq_nokey) = 8;
332
 
333
                ypresp_master
334
                YPPROC_MASTER(ypreq_nokey) = 9;
335
 
336
                ypresp_order
337
                YPPROC_ORDER(ypreq_nokey) = 10;
338
 
339
                ypresp_maplist
340
                YPPROC_MAPLIST(domainname) = 11;
341
        } = 2;
342
} = 100004;
343
#endif
344
#if !defined(YPSERV_ONLY) && !defined(YPBIND_ONLY)
345
/*
346
 * YPPUSHPROC_XFRRESP is the callback routine for result of YPPROC_XFR
347
 */
348
program YPPUSH_XFRRESPPROG {
349
        version YPPUSH_XFRRESPVERS {
350
                void
351
                YPPUSHPROC_NULL(void) = 0;
352
#ifdef STUPID_SUN_BUG /* argument and return value are backwards */
353
                yppushresp_xfr
354
                YPPUSHPROC_XFRRESP(void) = 1;
355
#else
356
                void
357
                YPPUSHPROC_XFRRESP(yppushresp_xfr) = 1;
358
#endif
359
        } = 1;
360
} = 0x40000000; /* transient: could be anything up to 0x5fffffff */
361
#endif
362
#if !defined(YPSERV_ONLY) && !defined(YPPUSH_ONLY)
363
/*
364
 * YP binding protocol
365
 */
366
program YPBINDPROG {
367
        version YPBINDVERS {
368
                void
369
                YPBINDPROC_NULL(void) = 0;
370
 
371
                ypbind_resp
372
                YPBINDPROC_DOMAIN(domainname) = 1;
373
 
374
                void
375
                YPBINDPROC_SETDOM(ypbind_setdom) = 2;
376
        } = 2;
377
} = 100007;
378
 
379
#endif

powered by: WebSVN 2.1.0

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