1 /*
2  * Please do not edit this file.
3  * It was generated using rpcgen.
4  */
5 
6 #ifndef _RPCB_PROT_H_RPCGEN
7 #define _RPCB_PROT_H_RPCGEN
8 
9 #include <rpc/rpc.h>
10 
11 #ifndef IXDR_GET_INT32
12 #define IXDR_GET_INT32(buf) IXDR_GET_LONG((buf))
13 #endif
14 #ifndef IXDR_PUT_INT32
15 #define IXDR_PUT_INT32(buf, v) IXDR_PUT_LONG((buf), (v))
16 #endif
17 #ifndef IXDR_GET_U_INT32
18 #define IXDR_GET_U_INT32(buf) IXDR_GET_U_LONG((buf))
19 #endif
20 #ifndef IXDR_PUT_U_INT32
21 #define IXDR_PUT_U_INT32(buf, v) IXDR_PUT_U_LONG((buf), (v))
22 #endif
23 /*
24  * $FreeBSD: src/include/rpc/rpcb_prot.x,v 1.3 2002/03/13 10:29:06 obrien Exp $
25  *
26  * Copyright (c) 2009, Sun Microsystems, Inc.
27  * All rights reserved.
28  *
29  * Redistribution and use in source and binary forms, with or without
30  * modification, are permitted provided that the following conditions are met:
31  * - Redistributions of source code must retain the above copyright notice,
32  *   this list of conditions and the following disclaimer.
33  * - Redistributions in binary form must reproduce the above copyright notice,
34  *   this list of conditions and the following disclaimer in the documentation
35  *   and/or other materials provided with the distribution.
36  * - Neither the name of Sun Microsystems, Inc. nor the names of its
37  *   contributors may be used to endorse or promote products derived
38  *   from this software without specific prior written permission.
39  *
40  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
41  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
43  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
44  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
45  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
46  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
47  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
48  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
49  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
50  * POSSIBILITY OF SUCH DAMAGE.
51  */
52 /*
53  * Copyright (c) 1988 by Sun Microsystems, Inc.
54  */
55 /* from rpcb_prot.x */
56 
57 /* #pragma ident	"@(#)rpcb_prot.x	1.5	94/04/29 SMI" */
58 
59 #ifndef _KERNEL
60 
61 
62 /*
63  * The following procedures are supported by the protocol in version 3:
64  *
65  * RPCBPROC_NULL() returns ()
66  * 	takes nothing, returns nothing
67  *
68  * RPCBPROC_SET(rpcb) returns (bool_t)
69  * 	TRUE is success, FALSE is failure.  Registers the tuple
70  *	[prog, vers, address, owner, netid].
71  *	Finds out owner and netid information on its own.
72  *
73  * RPCBPROC_UNSET(rpcb) returns (bool_t)
74  *	TRUE is success, FALSE is failure.  Un-registers tuple
75  *	[prog, vers, netid].  addresses is ignored.
76  *	If netid is NULL, unregister all.
77  *
78  * RPCBPROC_GETADDR(rpcb) returns (string).
79  *	0 is failure.  Otherwise returns the universal address where the
80  *	triple [prog, vers, netid] is registered.  Ignore address and owner.
81  *
82  * RPCBPROC_DUMP() RETURNS (rpcblist_ptr)
83  *	used to dump the entire rpcbind maps
84  *
85  * RPCBPROC_CALLIT(rpcb_rmtcallargs)
86  * 	RETURNS (rpcb_rmtcallres);
87  * 	Calls the procedure on the remote machine.  If it is not registered,
88  *	this procedure is quiet; i.e. it does not return error information!!!
89  *	This routine only passes null authentication parameters.
90  *	It has no interface to xdr routines for RPCBPROC_CALLIT.
91  *
92  * RPCBPROC_GETTIME() returns (int).
93  *	Gets the remote machines time
94  *
95  * RPCBPROC_UADDR2TADDR(strint) RETURNS (struct netbuf)
96  *	Returns the netbuf address from universal address.
97  *
98  * RPCBPROC_TADDR2UADDR(struct netbuf) RETURNS (string)
99  *	Returns the universal address from netbuf address.
100  *
101  * END OF RPCBIND VERSION 3 PROCEDURES
102  */
103 /*
104  * Except for RPCBPROC_CALLIT, the procedures above are carried over to
105  * rpcbind version 4.  Those below are added or modified for version 4.
106  * NOTE: RPCBPROC_BCAST HAS THE SAME FUNCTIONALITY AND PROCEDURE NUMBER
107  * AS RPCBPROC_CALLIT.
108  *
109  * RPCBPROC_BCAST(rpcb_rmtcallargs)
110  * 	RETURNS (rpcb_rmtcallres);
111  * 	Calls the procedure on the remote machine.  If it is not registered,
112  *	this procedure IS quiet; i.e. it DOES NOT return error information!!!
113  *	This routine should be used for broadcasting and nothing else.
114  *
115  * RPCBPROC_GETVERSADDR(rpcb) returns (string).
116  *	0 is failure.  Otherwise returns the universal address where the
117  *	triple [prog, vers, netid] is registered.  Ignore address and owner.
118  *	Same as RPCBPROC_GETADDR except that if the given version number
119  *	is not available, the address is not returned.
120  *
121  * RPCBPROC_INDIRECT(rpcb_rmtcallargs)
122  * 	RETURNS (rpcb_rmtcallres);
123  * 	Calls the procedure on the remote machine.  If it is not registered,
124  *	this procedure is NOT quiet; i.e. it DOES return error information!!!
125  * 	as any normal application would expect.
126  *
127  * RPCBPROC_GETADDRLIST(rpcb) returns (rpcb_entry_list_ptr).
128  *	Same as RPCBPROC_GETADDR except that it returns a list of all the
129  *	addresses registered for the combination (prog, vers) (for all
130  *	transports).
131  *
132  * RPCBPROC_GETSTAT(void) returns (rpcb_stat_byvers)
133  *	Returns the statistics about the kind of requests received by rpcbind.
134  */
135 
136 /*
137  * A mapping of (program, version, network ID) to address
138  */
139 
140 struct rpcb {
141 	rpcprog_t r_prog;
142 	rpcvers_t r_vers;
143 	char *r_netid;
144 	char *r_addr;
145 	char *r_owner;
146 };
147 typedef struct rpcb rpcb;
148 #ifdef __cplusplus
149 extern "C" bool_t xdr_rpcb(XDR *, rpcb*);
150 #elif __STDC__
151 extern  bool_t xdr_rpcb(XDR *, rpcb*);
152 #else /* Old Style C */
153 //bool_t xdr_rpcb();
154 bool_t xdr_rpcb(XDR *, rpcb*);
155 #endif /* Old Style C */
156 
157 
158 typedef rpcb RPCB;
159 
160 
161 /*
162  * A list of mappings
163  *
164  * Below are two definitions for the rpcblist structure.  This is done because
165  * xdr_rpcblist() is specified to take a struct rpcblist **, rather than a
166  * struct rpcblist * that rpcgen would produce.  One version of the rpcblist
167  * structure (actually called rp__list) is used with rpcgen, and the other is
168  * defined only in the header file for compatibility with the specified
169  * interface.
170  */
171 
172 struct rp__list {
173 	rpcb rpcb_map;
174 	struct rp__list *rpcb_next;
175 };
176 typedef struct rp__list rp__list;
177 #ifdef __cplusplus
178 extern "C" bool_t xdr_rp__list(XDR *, rp__list*);
179 #elif __STDC__
180 extern  bool_t xdr_rp__list(XDR *, rp__list*);
181 #else /* Old Style C */
182 //bool_t xdr_rp__list();
183 bool_t xdr_rp__list(XDR *, rp__list*);
184 #endif /* Old Style C */
185 
186 
187 typedef rp__list *rpcblist_ptr;
188 #ifdef __cplusplus
189 extern "C" bool_t xdr_rpcblist_ptr(XDR *, rpcblist_ptr*);
190 #elif __STDC__
191 extern  bool_t xdr_rpcblist_ptr(XDR *, rpcblist_ptr*);
192 #else /* Old Style C */
193 //bool_t xdr_rpcblist_ptr();
194 bool_t xdr_rpcblist_ptr(XDR *, rpcblist_ptr*);
195 #endif /* Old Style C */
196 
197 
198 typedef struct rp__list rpcblist;
199 typedef struct rp__list RPCBLIST;
200 
201 #ifndef __cplusplus
202 struct rpcblist {
203  RPCB rpcb_map;
204  struct rpcblist *rpcb_next;
205 };
206 #endif
207 
208 #ifdef __cplusplus
209 extern "C" {
210 #endif
211 extern bool_t xdr_rpcblist(XDR *, rpcblist**);
212 #ifdef __cplusplus
213 }
214 #endif
215 
216 
217 /*
218  * Arguments of remote calls
219  */
220 
221 struct rpcb_rmtcallargs {
222 	rpcprog_t prog;
223 	rpcvers_t vers;
224 	rpcproc_t proc;
225 	struct {
226 		u_int args_len;
227 		char *args_val;
228 	} args;
229 };
230 typedef struct rpcb_rmtcallargs rpcb_rmtcallargs;
231 #ifdef __cplusplus
232 extern "C" bool_t xdr_rpcb_rmtcallargs(XDR *, rpcb_rmtcallargs*);
233 #elif __STDC__
234 extern  bool_t xdr_rpcb_rmtcallargs(XDR *, rpcb_rmtcallargs*);
235 #else /* Old Style C */
236 //bool_t xdr_rpcb_rmtcallargs();
237 bool_t xdr_rpcb_rmtcallargs(XDR *, rpcb_rmtcallargs*);
238 #endif /* Old Style C */
239 
240 
241 /*
242  * Client-side only representation of rpcb_rmtcallargs structure.
243  *
244  * The routine that XDRs the rpcb_rmtcallargs structure must deal with the
245  * opaque arguments in the "args" structure.  xdr_rpcb_rmtcallargs() needs to
246  * be passed the XDR routine that knows the args' structure.  This routine
247  * doesn't need to go over-the-wire (and it wouldn't make sense anyway) since
248  * the application being called already knows the args structure.  So we use a
249  * different "XDR" structure on the client side, r_rpcb_rmtcallargs, which
250  * includes the args' XDR routine.
251  */
252 struct r_rpcb_rmtcallargs {
253  rpcprog_t prog;
254  rpcvers_t vers;
255  rpcproc_t proc;
256  struct {
257  u_int args_len;
258  char *args_val;
259  } args;
260  xdrproc_t xdr_args; /* encodes args */
261 };
262 
263 
264 /*
265  * Results of the remote call
266  */
267 
268 struct rpcb_rmtcallres {
269 	char *addr;
270 	struct {
271 		u_int results_len;
272 		char *results_val;
273 	} results;
274 };
275 typedef struct rpcb_rmtcallres rpcb_rmtcallres;
276 #ifdef __cplusplus
277 extern "C" bool_t xdr_rpcb_rmtcallres(XDR *, rpcb_rmtcallres*);
278 #elif __STDC__
279 extern  bool_t xdr_rpcb_rmtcallres(XDR *, rpcb_rmtcallres*);
280 #else /* Old Style C */
281 //bool_t xdr_rpcb_rmtcallres();
282 bool_t xdr_rpcb_rmtcallres(XDR *, rpcb_rmtcallres*);
283 #endif /* Old Style C */
284 
285 
286 /*
287  * Client-side only representation of rpcb_rmtcallres structure.
288  */
289 struct r_rpcb_rmtcallres {
290  char *addr;
291  struct {
292  u_int32_t results_len;
293  char *results_val;
294  } results;
295  xdrproc_t xdr_res; /* decodes results */
296 };
297 
298 /*
299  * rpcb_entry contains a merged address of a service on a particular
300  * transport, plus associated netconfig information.  A list of rpcb_entrys
301  * is returned by RPCBPROC_GETADDRLIST.  See netconfig.h for values used
302  * in r_nc_* fields.
303  */
304 
305 struct rpcb_entry {
306 	char *r_maddr;
307 	char *r_nc_netid;
308 	u_int r_nc_semantics;
309 	char *r_nc_protofmly;
310 	char *r_nc_proto;
311 };
312 typedef struct rpcb_entry rpcb_entry;
313 #ifdef __cplusplus
314 extern "C" bool_t xdr_rpcb_entry(XDR *, rpcb_entry*);
315 #elif __STDC__
316 extern  bool_t xdr_rpcb_entry(XDR *, rpcb_entry*);
317 #else /* Old Style C */
318 bool_t xdr_rpcb_entry();
319 #endif /* Old Style C */
320 
321 
322 /*
323  * A list of addresses supported by a service.
324  */
325 
326 struct rpcb_entry_list {
327 	rpcb_entry rpcb_entry_map;
328 	struct rpcb_entry_list *rpcb_entry_next;
329 };
330 typedef struct rpcb_entry_list rpcb_entry_list;
331 #ifdef __cplusplus
332 extern "C" bool_t xdr_rpcb_entry_list(XDR *, rpcb_entry_list*);
333 #elif __STDC__
334 extern  bool_t xdr_rpcb_entry_list(XDR *, rpcb_entry_list*);
335 #else /* Old Style C */
336 bool_t xdr_rpcb_entry_list();
337 #endif /* Old Style C */
338 
339 
340 typedef rpcb_entry_list *rpcb_entry_list_ptr;
341 #ifdef __cplusplus
342 extern "C" bool_t xdr_rpcb_entry_list_ptr(XDR *, rpcb_entry_list_ptr*);
343 #elif __STDC__
344 extern  bool_t xdr_rpcb_entry_list_ptr(XDR *, rpcb_entry_list_ptr*);
345 #else /* Old Style C */
346 bool_t xdr_rpcb_entry_list_ptr();
347 #endif /* Old Style C */
348 
349 
350 /*
351  * rpcbind statistics
352  */
353 
354 #define rpcb_highproc_2 RPCBPROC_CALLIT
355 #define rpcb_highproc_3 RPCBPROC_TADDR2UADDR
356 #define rpcb_highproc_4 RPCBPROC_GETSTAT
357 #define RPCBSTAT_HIGHPROC 13
358 #define RPCBVERS_STAT 3
359 #define RPCBVERS_4_STAT 2
360 #define RPCBVERS_3_STAT 1
361 #define RPCBVERS_2_STAT 0
362 
363 /* Link list of all the stats about getport and getaddr */
364 
365 struct rpcbs_addrlist {
366 	rpcprog_t prog;
367 	rpcvers_t vers;
368 	int success;
369 	int failure;
370 	char *netid;
371 	struct rpcbs_addrlist *next;
372 };
373 typedef struct rpcbs_addrlist rpcbs_addrlist;
374 #ifdef __cplusplus
375 extern "C" bool_t xdr_rpcbs_addrlist(XDR *, rpcbs_addrlist*);
376 #elif __STDC__
377 extern  bool_t xdr_rpcbs_addrlist(XDR *, rpcbs_addrlist*);
378 #else /* Old Style C */
379 bool_t xdr_rpcbs_addrlist();
380 #endif /* Old Style C */
381 
382 
383 /* Link list of all the stats about rmtcall */
384 
385 struct rpcbs_rmtcalllist {
386 	rpcprog_t prog;
387 	rpcvers_t vers;
388 	rpcproc_t proc;
389 	int success;
390 	int failure;
391 	int indirect;
392 	char *netid;
393 	struct rpcbs_rmtcalllist *next;
394 };
395 typedef struct rpcbs_rmtcalllist rpcbs_rmtcalllist;
396 #ifdef __cplusplus
397 extern "C" bool_t xdr_rpcbs_rmtcalllist(XDR *, rpcbs_rmtcalllist*);
398 #elif __STDC__
399 extern  bool_t xdr_rpcbs_rmtcalllist(XDR *, rpcbs_rmtcalllist*);
400 #else /* Old Style C */
401 bool_t xdr_rpcbs_rmtcalllist();
402 #endif /* Old Style C */
403 
404 
405 typedef int rpcbs_proc[RPCBSTAT_HIGHPROC];
406 #ifdef __cplusplus
407 extern "C" bool_t xdr_rpcbs_proc(XDR *, rpcbs_proc);
408 #elif __STDC__
409 extern  bool_t xdr_rpcbs_proc(XDR *, rpcbs_proc);
410 #else /* Old Style C */
411 bool_t xdr_rpcbs_proc();
412 #endif /* Old Style C */
413 
414 
415 typedef rpcbs_addrlist *rpcbs_addrlist_ptr;
416 #ifdef __cplusplus
417 extern "C" bool_t xdr_rpcbs_addrlist_ptr(XDR *, rpcbs_addrlist_ptr*);
418 #elif __STDC__
419 extern  bool_t xdr_rpcbs_addrlist_ptr(XDR *, rpcbs_addrlist_ptr*);
420 #else /* Old Style C */
421 bool_t xdr_rpcbs_addrlist_ptr();
422 #endif /* Old Style C */
423 
424 
425 typedef rpcbs_rmtcalllist *rpcbs_rmtcalllist_ptr;
426 #ifdef __cplusplus
427 extern "C" bool_t xdr_rpcbs_rmtcalllist_ptr(XDR *, rpcbs_rmtcalllist_ptr*);
428 #elif __STDC__
429 extern  bool_t xdr_rpcbs_rmtcalllist_ptr(XDR *, rpcbs_rmtcalllist_ptr*);
430 #else /* Old Style C */
431 //bool_t xdr_rpcbs_rmtcalllist_ptr();
432 bool_t xdr_rpcbs_rmtcalllist_ptr(XDR *, rpcbs_rmtcalllist_ptr*);
433 #endif /* Old Style C */
434 
435 
436 struct rpcb_stat {
437 	rpcbs_proc info;
438 	int setinfo;
439 	int unsetinfo;
440 	rpcbs_addrlist_ptr addrinfo;
441 	rpcbs_rmtcalllist_ptr rmtinfo;
442 };
443 typedef struct rpcb_stat rpcb_stat;
444 #ifdef __cplusplus
445 extern "C" bool_t xdr_rpcb_stat(XDR *, rpcb_stat*);
446 #elif __STDC__
447 extern  bool_t xdr_rpcb_stat(XDR *, rpcb_stat*);
448 #else /* Old Style C */
449 bool_t xdr_rpcb_stat();
450 #endif /* Old Style C */
451 
452 
453 /*
454  * One rpcb_stat structure is returned for each version of rpcbind
455  * being monitored.
456  */
457 
458 typedef rpcb_stat rpcb_stat_byvers[RPCBVERS_STAT];
459 #ifdef __cplusplus
460 extern "C" bool_t xdr_rpcb_stat_byvers(XDR *, rpcb_stat_byvers);
461 #elif __STDC__
462 extern  bool_t xdr_rpcb_stat_byvers(XDR *, rpcb_stat_byvers);
463 #else /* Old Style C */
464 bool_t xdr_rpcb_stat_byvers();
465 #endif /* Old Style C */
466 
467 
468 /*
469  * We don't define netbuf in RPCL, since it would contain structure member
470  * names that would conflict with the definition of struct netbuf in
471  * <tiuser.h>.  Instead we merely declare the XDR routine xdr_netbuf() here,
472  * and implement it ourselves in rpc/rpcb_prot.c.
473  */
474 #ifdef __cplusplus
475 extern "C" bool_t xdr_netbuf(XDR *, struct netbuf *);
476 
477 #else /* __STDC__ */
478 extern bool_t xdr_netbuf(XDR *, struct netbuf *);
479 
480 #endif
481 
482 #define RPCBVERS_3 RPCBVERS
483 #define RPCBVERS_4 RPCBVERS4
484 
485 #define _PATH_RPCBINDSOCK "/var/run/rpcbind.sock"
486 
487 #else /* ndef _KERNEL */
488 #ifdef __cplusplus
489 extern "C" {
490 #endif
491 
492 /*
493  * A mapping of (program, version, network ID) to address
494  */
495 struct rpcb {
496  rpcprog_t r_prog; /* program number */
497  rpcvers_t r_vers; /* version number */
498  char *r_netid; /* network id */
499  char *r_addr; /* universal address */
500  char *r_owner; /* owner of the mapping */
501 };
502 typedef struct rpcb RPCB;
503 
504 /*
505  * A list of mappings
506  */
507 struct rpcblist {
508  RPCB rpcb_map;
509  struct rpcblist *rpcb_next;
510 };
511 typedef struct rpcblist RPCBLIST;
512 typedef struct rpcblist *rpcblist_ptr;
513 
514 /*
515  * Remote calls arguments
516  */
517 struct rpcb_rmtcallargs {
518  rpcprog_t prog; /* program number */
519  rpcvers_t vers; /* version number */
520  rpcproc_t proc; /* procedure number */
521  u_int32_t arglen; /* arg len */
522  caddr_t args_ptr; /* argument */
523  xdrproc_t xdr_args; /* XDR routine for argument */
524 };
525 typedef struct rpcb_rmtcallargs rpcb_rmtcallargs;
526 
527 /*
528  * Remote calls results
529  */
530 struct rpcb_rmtcallres {
531  char *addr_ptr; /* remote universal address */
532  u_int32_t resultslen; /* results length */
533  caddr_t results_ptr; /* results */
534  xdrproc_t xdr_results; /* XDR routine for result */
535 };
536 typedef struct rpcb_rmtcallres rpcb_rmtcallres;
537 
538 struct rpcb_entry {
539  char *r_maddr;
540  char *r_nc_netid;
541  unsigned int r_nc_semantics;
542  char *r_nc_protofmly;
543  char *r_nc_proto;
544 };
545 typedef struct rpcb_entry rpcb_entry;
546 
547 /*
548  * A list of addresses supported by a service.
549  */
550 
551 struct rpcb_entry_list {
552  rpcb_entry rpcb_entry_map;
553  struct rpcb_entry_list *rpcb_entry_next;
554 };
555 typedef struct rpcb_entry_list rpcb_entry_list;
556 
557 typedef rpcb_entry_list *rpcb_entry_list_ptr;
558 
559 /*
560  * rpcbind statistics
561  */
562 
563 #define rpcb_highproc_2 RPCBPROC_CALLIT
564 #define rpcb_highproc_3 RPCBPROC_TADDR2UADDR
565 #define rpcb_highproc_4 RPCBPROC_GETSTAT
566 #define RPCBSTAT_HIGHPROC 13
567 #define RPCBVERS_STAT 3
568 #define RPCBVERS_4_STAT 2
569 #define RPCBVERS_3_STAT 1
570 #define RPCBVERS_2_STAT 0
571 
572 /* Link list of all the stats about getport and getaddr */
573 
574 struct rpcbs_addrlist {
575  rpcprog_t prog;
576  rpcvers_t vers;
577  int success;
578  int failure;
579  char *netid;
580  struct rpcbs_addrlist *next;
581 };
582 typedef struct rpcbs_addrlist rpcbs_addrlist;
583 
584 /* Link list of all the stats about rmtcall */
585 
586 struct rpcbs_rmtcalllist {
587  rpcprog_t prog;
588  rpcvers_t vers;
589  rpcproc_t proc;
590  int success;
591  int failure;
592  int indirect;
593  char *netid;
594  struct rpcbs_rmtcalllist *next;
595 };
596 typedef struct rpcbs_rmtcalllist rpcbs_rmtcalllist;
597 
598 typedef int rpcbs_proc[RPCBSTAT_HIGHPROC];
599 
600 typedef rpcbs_addrlist *rpcbs_addrlist_ptr;
601 
602 typedef rpcbs_rmtcalllist *rpcbs_rmtcalllist_ptr;
603 
604 struct rpcb_stat {
605  rpcbs_proc info;
606  int setinfo;
607  int unsetinfo;
608  rpcbs_addrlist_ptr addrinfo;
609  rpcbs_rmtcalllist_ptr rmtinfo;
610 };
611 typedef struct rpcb_stat rpcb_stat;
612 
613 /*
614  * One rpcb_stat structure is returned for each version of rpcbind
615  * being monitored.
616  */
617 
618 typedef rpcb_stat rpcb_stat_byvers[RPCBVERS_STAT];
619 
620 #ifdef __cplusplus
621 }
622 #endif
623 
624 #endif /* ndef _KERNEL */
625 
626 #define RPCBPROG ((u_int32_t)100000)
627 #define RPCBVERS ((u_int32_t)3)
628 
629 #ifdef __cplusplus
630 #define RPCBPROC_SET ((u_int32_t)1)
631 extern "C" bool_t * rpcbproc_set_3(rpcb *, CLIENT *);
632 extern "C" bool_t * rpcbproc_set_3_svc(rpcb *, struct svc_req *);
633 #define RPCBPROC_UNSET ((u_int32_t)2)
634 extern "C" bool_t * rpcbproc_unset_3(rpcb *, CLIENT *);
635 extern "C" bool_t * rpcbproc_unset_3_svc(rpcb *, struct svc_req *);
636 #define RPCBPROC_GETADDR ((u_int32_t)3)
637 extern "C" char ** rpcbproc_getaddr_3(rpcb *, CLIENT *);
638 extern "C" char ** rpcbproc_getaddr_3_svc(rpcb *, struct svc_req *);
639 #define RPCBPROC_DUMP ((u_int32_t)4)
640 extern "C" rpcblist_ptr * rpcbproc_dump_3(void *, CLIENT *);
641 extern "C" rpcblist_ptr * rpcbproc_dump_3_svc(void *, struct svc_req *);
642 #define RPCBPROC_CALLIT ((u_int32_t)5)
643 extern "C" rpcb_rmtcallres * rpcbproc_callit_3(rpcb_rmtcallargs *, CLIENT *);
644 extern "C" rpcb_rmtcallres * rpcbproc_callit_3_svc(rpcb_rmtcallargs *, struct svc_req *);
645 #define RPCBPROC_GETTIME ((u_int32_t)6)
646 extern "C" u_int * rpcbproc_gettime_3(void *, CLIENT *);
647 extern "C" u_int * rpcbproc_gettime_3_svc(void *, struct svc_req *);
648 #define RPCBPROC_UADDR2TADDR ((u_int32_t)7)
649 extern "C" struct netbuf * rpcbproc_uaddr2taddr_3(char **, CLIENT *);
650 extern "C" struct netbuf * rpcbproc_uaddr2taddr_3_svc(char **, struct svc_req *);
651 #define RPCBPROC_TADDR2UADDR ((u_int32_t)8)
652 extern "C" char ** rpcbproc_taddr2uaddr_3(struct netbuf *, CLIENT *);
653 extern "C" char ** rpcbproc_taddr2uaddr_3_svc(struct netbuf *, struct svc_req *);
654 
655 #elif __STDC__
656 #define RPCBPROC_SET ((u_int32_t)1)
657 extern  bool_t * rpcbproc_set_3(rpcb *, CLIENT *);
658 extern  bool_t * rpcbproc_set_3_svc(rpcb *, struct svc_req *);
659 #define RPCBPROC_UNSET ((u_int32_t)2)
660 extern  bool_t * rpcbproc_unset_3(rpcb *, CLIENT *);
661 extern  bool_t * rpcbproc_unset_3_svc(rpcb *, struct svc_req *);
662 #define RPCBPROC_GETADDR ((u_int32_t)3)
663 extern  char ** rpcbproc_getaddr_3(rpcb *, CLIENT *);
664 extern  char ** rpcbproc_getaddr_3_svc(rpcb *, struct svc_req *);
665 #define RPCBPROC_DUMP ((u_int32_t)4)
666 extern  rpcblist_ptr * rpcbproc_dump_3(void *, CLIENT *);
667 extern  rpcblist_ptr * rpcbproc_dump_3_svc(void *, struct svc_req *);
668 #define RPCBPROC_CALLIT ((u_int32_t)5)
669 extern  rpcb_rmtcallres * rpcbproc_callit_3(rpcb_rmtcallargs *, CLIENT *);
670 extern  rpcb_rmtcallres * rpcbproc_callit_3_svc(rpcb_rmtcallargs *, struct svc_req *);
671 #define RPCBPROC_GETTIME ((u_int32_t)6)
672 extern  u_int * rpcbproc_gettime_3(void *, CLIENT *);
673 extern  u_int * rpcbproc_gettime_3_svc(void *, struct svc_req *);
674 #define RPCBPROC_UADDR2TADDR ((u_int32_t)7)
675 extern  struct netbuf * rpcbproc_uaddr2taddr_3(char **, CLIENT *);
676 extern  struct netbuf * rpcbproc_uaddr2taddr_3_svc(char **, struct svc_req *);
677 #define RPCBPROC_TADDR2UADDR ((u_int32_t)8)
678 extern  char ** rpcbproc_taddr2uaddr_3(struct netbuf *, CLIENT *);
679 extern  char ** rpcbproc_taddr2uaddr_3_svc(struct netbuf *, struct svc_req *);
680 
681 #else /* Old Style C */
682 #define RPCBPROC_SET ((u_int32_t)1)
683 extern  bool_t * rpcbproc_set_3();
684 extern  bool_t * rpcbproc_set_3_svc();
685 #define RPCBPROC_UNSET ((u_int32_t)2)
686 extern  bool_t * rpcbproc_unset_3();
687 extern  bool_t * rpcbproc_unset_3_svc();
688 #define RPCBPROC_GETADDR ((u_int32_t)3)
689 extern  char ** rpcbproc_getaddr_3();
690 extern  char ** rpcbproc_getaddr_3_svc();
691 #define RPCBPROC_DUMP ((u_int32_t)4)
692 extern  rpcblist_ptr * rpcbproc_dump_3();
693 extern  rpcblist_ptr * rpcbproc_dump_3_svc();
694 #define RPCBPROC_CALLIT ((u_int32_t)5)
695 extern  rpcb_rmtcallres * rpcbproc_callit_3();
696 extern  rpcb_rmtcallres * rpcbproc_callit_3_svc();
697 #define RPCBPROC_GETTIME ((u_int32_t)6)
698 extern  u_int * rpcbproc_gettime_3();
699 extern  u_int * rpcbproc_gettime_3_svc();
700 #define RPCBPROC_UADDR2TADDR ((u_int32_t)7)
701 extern  struct netbuf * rpcbproc_uaddr2taddr_3();
702 extern  struct netbuf * rpcbproc_uaddr2taddr_3_svc();
703 #define RPCBPROC_TADDR2UADDR ((u_int32_t)8)
704 extern  char ** rpcbproc_taddr2uaddr_3();
705 extern  char ** rpcbproc_taddr2uaddr_3_svc();
706 #endif /* Old Style C */
707 #define RPCBVERS4 ((u_int32_t)4)
708 
709 #ifdef __cplusplus
710 extern "C" bool_t * rpcbproc_set_4(rpcb *, CLIENT *);
711 extern "C" bool_t * rpcbproc_set_4_svc(rpcb *, struct svc_req *);
712 extern "C" bool_t * rpcbproc_unset_4(rpcb *, CLIENT *);
713 extern "C" bool_t * rpcbproc_unset_4_svc(rpcb *, struct svc_req *);
714 extern "C" char ** rpcbproc_getaddr_4(rpcb *, CLIENT *);
715 extern "C" char ** rpcbproc_getaddr_4_svc(rpcb *, struct svc_req *);
716 extern "C" rpcblist_ptr * rpcbproc_dump_4(void *, CLIENT *);
717 extern "C" rpcblist_ptr * rpcbproc_dump_4_svc(void *, struct svc_req *);
718 #define RPCBPROC_BCAST ((u_int32_t)RPCBPROC_CALLIT)
719 extern "C" rpcb_rmtcallres * rpcbproc_bcast_4(rpcb_rmtcallargs *, CLIENT *);
720 extern "C" rpcb_rmtcallres * rpcbproc_bcast_4_svc(rpcb_rmtcallargs *, struct svc_req *);
721 extern "C" u_int * rpcbproc_gettime_4(void *, CLIENT *);
722 extern "C" u_int * rpcbproc_gettime_4_svc(void *, struct svc_req *);
723 extern "C" struct netbuf * rpcbproc_uaddr2taddr_4(char **, CLIENT *);
724 extern "C" struct netbuf * rpcbproc_uaddr2taddr_4_svc(char **, struct svc_req *);
725 extern "C" char ** rpcbproc_taddr2uaddr_4(struct netbuf *, CLIENT *);
726 extern "C" char ** rpcbproc_taddr2uaddr_4_svc(struct netbuf *, struct svc_req *);
727 #define RPCBPROC_GETVERSADDR ((u_int32_t)9)
728 extern "C" char ** rpcbproc_getversaddr_4(rpcb *, CLIENT *);
729 extern "C" char ** rpcbproc_getversaddr_4_svc(rpcb *, struct svc_req *);
730 #define RPCBPROC_INDIRECT ((u_int32_t)10)
731 extern "C" rpcb_rmtcallres * rpcbproc_indirect_4(rpcb_rmtcallargs *, CLIENT *);
732 extern "C" rpcb_rmtcallres * rpcbproc_indirect_4_svc(rpcb_rmtcallargs *, struct svc_req *);
733 #define RPCBPROC_GETADDRLIST ((u_int32_t)11)
734 extern "C" rpcb_entry_list_ptr * rpcbproc_getaddrlist_4(rpcb *, CLIENT *);
735 extern "C" rpcb_entry_list_ptr * rpcbproc_getaddrlist_4_svc(rpcb *, struct svc_req *);
736 #define RPCBPROC_GETSTAT ((u_int32_t)12)
737 extern "C" rpcb_stat * rpcbproc_getstat_4(void *, CLIENT *);
738 extern "C" rpcb_stat * rpcbproc_getstat_4_svc(void *, struct svc_req *);
739 
740 #elif __STDC__
741 extern  bool_t * rpcbproc_set_4(rpcb *, CLIENT *);
742 extern  bool_t * rpcbproc_set_4_svc(rpcb *, struct svc_req *);
743 extern  bool_t * rpcbproc_unset_4(rpcb *, CLIENT *);
744 extern  bool_t * rpcbproc_unset_4_svc(rpcb *, struct svc_req *);
745 extern  char ** rpcbproc_getaddr_4(rpcb *, CLIENT *);
746 extern  char ** rpcbproc_getaddr_4_svc(rpcb *, struct svc_req *);
747 extern  rpcblist_ptr * rpcbproc_dump_4(void *, CLIENT *);
748 extern  rpcblist_ptr * rpcbproc_dump_4_svc(void *, struct svc_req *);
749 #define RPCBPROC_BCAST ((u_int32_t)RPCBPROC_CALLIT)
750 extern  rpcb_rmtcallres * rpcbproc_bcast_4(rpcb_rmtcallargs *, CLIENT *);
751 extern  rpcb_rmtcallres * rpcbproc_bcast_4_svc(rpcb_rmtcallargs *, struct svc_req *);
752 extern  u_int * rpcbproc_gettime_4(void *, CLIENT *);
753 extern  u_int * rpcbproc_gettime_4_svc(void *, struct svc_req *);
754 extern  struct netbuf * rpcbproc_uaddr2taddr_4(char **, CLIENT *);
755 extern  struct netbuf * rpcbproc_uaddr2taddr_4_svc(char **, struct svc_req *);
756 extern  char ** rpcbproc_taddr2uaddr_4(struct netbuf *, CLIENT *);
757 extern  char ** rpcbproc_taddr2uaddr_4_svc(struct netbuf *, struct svc_req *);
758 #define RPCBPROC_GETVERSADDR ((u_int32_t)9)
759 extern  char ** rpcbproc_getversaddr_4(rpcb *, CLIENT *);
760 extern  char ** rpcbproc_getversaddr_4_svc(rpcb *, struct svc_req *);
761 #define RPCBPROC_INDIRECT ((u_int32_t)10)
762 extern  rpcb_rmtcallres * rpcbproc_indirect_4(rpcb_rmtcallargs *, CLIENT *);
763 extern  rpcb_rmtcallres * rpcbproc_indirect_4_svc(rpcb_rmtcallargs *, struct svc_req *);
764 #define RPCBPROC_GETADDRLIST ((u_int32_t)11)
765 extern  rpcb_entry_list_ptr * rpcbproc_getaddrlist_4(rpcb *, CLIENT *);
766 extern  rpcb_entry_list_ptr * rpcbproc_getaddrlist_4_svc(rpcb *, struct svc_req *);
767 #define RPCBPROC_GETSTAT ((u_int32_t)12)
768 extern  rpcb_stat * rpcbproc_getstat_4(void *, CLIENT *);
769 extern  rpcb_stat * rpcbproc_getstat_4_svc(void *, struct svc_req *);
770 
771 #else /* Old Style C */
772 extern  bool_t * rpcbproc_set_4();
773 extern  bool_t * rpcbproc_set_4_svc();
774 extern  bool_t * rpcbproc_unset_4();
775 extern  bool_t * rpcbproc_unset_4_svc();
776 extern  char ** rpcbproc_getaddr_4();
777 extern  char ** rpcbproc_getaddr_4_svc();
778 extern  rpcblist_ptr * rpcbproc_dump_4();
779 extern  rpcblist_ptr * rpcbproc_dump_4_svc();
780 #define RPCBPROC_BCAST ((u_int32_t)RPCBPROC_CALLIT)
781 extern  rpcb_rmtcallres * rpcbproc_bcast_4();
782 extern  rpcb_rmtcallres * rpcbproc_bcast_4_svc();
783 extern  u_int * rpcbproc_gettime_4();
784 extern  u_int * rpcbproc_gettime_4_svc();
785 extern  struct netbuf * rpcbproc_uaddr2taddr_4();
786 extern  struct netbuf * rpcbproc_uaddr2taddr_4_svc();
787 extern  char ** rpcbproc_taddr2uaddr_4();
788 extern  char ** rpcbproc_taddr2uaddr_4_svc();
789 #define RPCBPROC_GETVERSADDR ((u_int32_t)9)
790 extern  char ** rpcbproc_getversaddr_4();
791 extern  char ** rpcbproc_getversaddr_4_svc();
792 #define RPCBPROC_INDIRECT ((u_int32_t)10)
793 extern  rpcb_rmtcallres * rpcbproc_indirect_4();
794 extern  rpcb_rmtcallres * rpcbproc_indirect_4_svc();
795 #define RPCBPROC_GETADDRLIST ((u_int32_t)11)
796 extern  rpcb_entry_list_ptr * rpcbproc_getaddrlist_4();
797 extern  rpcb_entry_list_ptr * rpcbproc_getaddrlist_4_svc();
798 #define RPCBPROC_GETSTAT ((u_int32_t)12)
799 extern  rpcb_stat * rpcbproc_getstat_4();
800 extern  rpcb_stat * rpcbproc_getstat_4_svc();
801 #endif /* Old Style C */
802 
803 #endif /* !_RPCB_PROT_H_RPCGEN */
804