Fix mdoc(7)/man(7) mix up.
[netbsd-mini2440.git] / lib / librpcsvc / yp.x
blobccd5a5d48aebc5621b0b789844aca6ab8f2450f5
1 /*
2  * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
3  * unrestricted use provided that this legend is included on all tape
4  * media and as a part of the software program in whole or part.  Users
5  * may copy or modify Sun RPC without charge, but are not authorized
6  * to license or distribute it to anyone else except as part of a product or
7  * program developed by the user.
8  *
9  * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
10  * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
11  * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
12  *
13  * Sun RPC is provided with no support and without any obligation on the
14  * part of Sun Microsystems, Inc. to assist in its use, correction,
15  * modification or enhancement.
16  *
17  * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
18  * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
19  * OR ANY PART THEREOF.
20  *
21  * In no event will Sun Microsystems, Inc. be liable for any lost revenue
22  * or profits or other special, indirect and consequential damages, even if
23  * Sun has been advised of the possibility of such damages.
24  *
25  * Sun Microsystems, Inc.
26  * 2550 Garcia Avenue
27  * Mountain View, California  94043
28  */
31  * Protocol description file for the Yellow Pages Service
32  */
34 #ifndef RPC_HDR
35 %#include <sys/cdefs.h>
36 %#ifndef __lint__
37 %/*static char sccsid[] = "from: @(#)yp.x       2.1 88/08/01 4.0 RPCSRC";*/
38 %__RCSID("$NetBSD: yp.x,v 1.4 1999/07/02 15:44:13 simonb Exp $");
39 %#endif /* not __lint__ */
40 #endif
42 const YPMAXRECORD = 1024;
43 const YPMAXDOMAIN = 64;
44 const YPMAXMAP = 64;
45 const YPMAXPEER = 64;
48 enum ypstat {
49         YP_TRUE         =  1,
50         YP_NOMORE       =  2,
51         YP_FALSE        =  0,
52         YP_NOMAP        = -1,
53         YP_NODOM        = -2,
54         YP_NOKEY        = -3,
55         YP_BADOP        = -4,
56         YP_BADDB        = -5,
57         YP_YPERR        = -6,
58         YP_BADARGS      = -7,
59         YP_VERS         = -8
63 enum ypxfrstat {
64         YPXFR_SUCC      =  1,
65         YPXFR_AGE       =  2,
66         YPXFR_NOMAP     = -1,
67         YPXFR_NODOM     = -2,
68         YPXFR_RSRC      = -3,
69         YPXFR_RPC       = -4,
70         YPXFR_MADDR     = -5,
71         YPXFR_YPERR     = -6,
72         YPXFR_BADARGS   = -7,
73         YPXFR_DBM       = -8,
74         YPXFR_FILE      = -9,
75         YPXFR_SKEW      = -10,
76         YPXFR_CLEAR     = -11,
77         YPXFR_FORCE     = -12,
78         YPXFR_XFRERR    = -13,
79         YPXFR_REFUSED   = -14
83 typedef string domainname<YPMAXDOMAIN>;
84 typedef string mapname<YPMAXMAP>;
85 typedef string peername<YPMAXPEER>;
86 typedef opaque keydat<YPMAXRECORD>;
87 typedef opaque valdat<YPMAXRECORD>;
90 struct ypmap_parms {
91         domainname domain;
92         mapname map;
93         unsigned int ordernum;
94         peername peer;
97 struct ypreq_key {
98         domainname domain;
99         mapname map;
100         keydat key;
103 struct ypreq_nokey {
104         domainname domain;
105         mapname map;
108 struct ypreq_xfr {
109         ypmap_parms map_parms;
110         unsigned int transid;
111         unsigned int prog;
112         unsigned int port;
116 struct ypresp_val {
117         ypstat stat;
118         valdat val;
121 struct ypresp_key_val {
122         ypstat stat;
123         keydat key;
124         valdat val;
128 struct ypresp_master {
129         ypstat stat;
130         peername peer;
133 struct ypresp_order {
134         ypstat stat;
135         unsigned int ordernum;
138 union ypresp_all switch (bool more) {
139 case TRUE:
140         ypresp_key_val val;
141 case FALSE:
142         void;
145 struct ypresp_xfr {
146         unsigned int transid;
147         ypxfrstat xfrstat;
150 struct ypmaplist {
151         mapname map;
152         ypmaplist *next;
155 struct ypresp_maplist {
156         ypstat stat;
157         ypmaplist *maps;
160 enum yppush_status {
161         YPPUSH_SUCC     =  1,   /* Success */
162         YPPUSH_AGE      =  2,   /* Master's version not newer */
163         YPPUSH_NOMAP    = -1,   /* Can't find server for map */
164         YPPUSH_NODOM    = -2,   /* Domain not supported */
165         YPPUSH_RSRC     = -3,   /* Local resource alloc failure */
166         YPPUSH_RPC      = -4,   /* RPC failure talking to server */
167         YPPUSH_MADDR    = -5,   /* Can't get master address */
168         YPPUSH_YPERR    = -6,   /* YP server/map db error */
169         YPPUSH_BADARGS  = -7,   /* Request arguments bad */
170         YPPUSH_DBM      = -8,   /* Local dbm operation failed */
171         YPPUSH_FILE     = -9,   /* Local file I/O operation failed */
172         YPPUSH_SKEW     = -10,  /* Map version skew during transfer */
173         YPPUSH_CLEAR    = -11,  /* Can't send "Clear" req to local ypserv */
174         YPPUSH_FORCE    = -12,  /* No local order number in map  use -f flag. */
175         YPPUSH_XFRERR   = -13,  /* ypxfr error */
176         YPPUSH_REFUSED  = -14   /* Transfer request refused by ypserv */
179 struct yppushresp_xfr {
180         unsigned transid;
181         yppush_status status;
185  * Response structure and overall result status codes.  Success and failure
186  * represent two separate response message types.
187  */
189 enum ypbind_resptype {
190         YPBIND_SUCC_VAL = 1,
191         YPBIND_FAIL_VAL = 2
194 struct ypbind_binding {
195     opaque ypbind_binding_addr[4]; /* In network order */
196     opaque ypbind_binding_port[2]; /* In network order */
199 union ypbind_resp switch (ypbind_resptype ypbind_status) {
200 case YPBIND_FAIL_VAL:
201         unsigned ypbind_error;
202 case YPBIND_SUCC_VAL:
203         ypbind_binding ypbind_bindinfo;
206 /* Detailed failure reason codes for response field ypbind_error*/
208 const YPBIND_ERR_ERR    = 1;    /* Internal error */
209 const YPBIND_ERR_NOSERV = 2;    /* No bound server for passed domain */
210 const YPBIND_ERR_RESC   = 3;    /* System resource allocation failure */
214  * Request data structure for ypbind "Set domain" procedure.
215  */
216 struct ypbind_setdom {
217         domainname ypsetdom_domain;
218         ypbind_binding ypsetdom_binding;
219         unsigned ypsetdom_vers;
224  * YP access protocol
225  */
226 program YPPROG {
227         version YPVERS {
228                 void
229                 YPPROC_NULL(void) = 0;
231                 bool
232                 YPPROC_DOMAIN(domainname) = 1;
234                 bool
235                 YPPROC_DOMAIN_NONACK(domainname) = 2;
237                 ypresp_val
238                 YPPROC_MATCH(ypreq_key) = 3;
240                 ypresp_key_val
241                 YPPROC_FIRST(ypreq_key) = 4;
243                 ypresp_key_val
244                 YPPROC_NEXT(ypreq_key) = 5;
246                 ypresp_xfr
247                 YPPROC_XFR(ypreq_xfr) = 6;
249                 void
250                 YPPROC_CLEAR(void) = 7;
252                 ypresp_all
253                 YPPROC_ALL(ypreq_nokey) = 8;
255                 ypresp_master
256                 YPPROC_MASTER(ypreq_nokey) = 9;
258                 ypresp_order
259                 YPPROC_ORDER(ypreq_nokey) = 10;
261                 ypresp_maplist
262                 YPPROC_MAPLIST(domainname) = 11;
263         } = 2;
264 } = 100004;
268  * YPPUSHPROC_XFRRESP is the callback routine for result of YPPROC_XFR
269  */
270 program YPPUSH_XFRRESPPROG {
271         version YPPUSH_XFRRESPVERS {
272                 void
273                 YPPUSHPROC_NULL(void) = 0;
275                 yppushresp_xfr
276                 YPPUSHPROC_XFRRESP(void) = 1;
277         } = 1;
278 } = 0x40000000; /* transient: could be anything up to 0x5fffffff */
282  * YP binding protocol
283  */
284 program YPBINDPROG {
285         version YPBINDVERS {
286                 void
287                 YPBINDPROC_NULL(void) = 0;
289                 ypbind_resp
290                 YPBINDPROC_DOMAIN(domainname) = 1;
292                 void
293                 YPBINDPROC_SETDOM(ypbind_setdom) = 2;
294         } = 2;
295 } = 100007;