Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/rpc/rpcb_prot.h
39536 views
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
#ifdef __cplusplus
12
extern "C" {
13
#endif
14
15
/*-
16
* SPDX-License-Identifier: BSD-3-Clause
17
*
18
* Copyright (c) 2009, Sun Microsystems, Inc.
19
* All rights reserved.
20
*
21
* Redistribution and use in source and binary forms, with or without
22
* modification, are permitted provided that the following conditions are met:
23
* - Redistributions of source code must retain the above copyright notice,
24
* this list of conditions and the following disclaimer.
25
* - Redistributions in binary form must reproduce the above copyright notice,
26
* this list of conditions and the following disclaimer in the documentation
27
* and/or other materials provided with the distribution.
28
* - Neither the name of Sun Microsystems, Inc. nor the names of its
29
* contributors may be used to endorse or promote products derived
30
* from this software without specific prior written permission.
31
*
32
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
33
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
34
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
35
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
36
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
37
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
38
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
39
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
40
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
41
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
42
* POSSIBILITY OF SUCH DAMAGE.
43
*/
44
/*
45
* Copyright (c) 1988 by Sun Microsystems, Inc.
46
*/
47
/* from rpcb_prot.x */
48
49
#ifndef _KERNEL
50
51
52
/*
53
* The following procedures are supported by the protocol in version 3:
54
*
55
* RPCBPROC_NULL() returns ()
56
* takes nothing, returns nothing
57
*
58
* RPCBPROC_SET(rpcb) returns (bool_t)
59
* TRUE is success, FALSE is failure. Registers the tuple
60
* [prog, vers, address, owner, netid].
61
* Finds out owner and netid information on its own.
62
*
63
* RPCBPROC_UNSET(rpcb) returns (bool_t)
64
* TRUE is success, FALSE is failure. Un-registers tuple
65
* [prog, vers, netid]. addresses is ignored.
66
* If netid is NULL, unregister all.
67
*
68
* RPCBPROC_GETADDR(rpcb) returns (string).
69
* 0 is failure. Otherwise returns the universal address where the
70
* triple [prog, vers, netid] is registered. Ignore address and owner.
71
*
72
* RPCBPROC_DUMP() RETURNS (rpcblist_ptr)
73
* used to dump the entire rpcbind maps
74
*
75
* RPCBPROC_CALLIT(rpcb_rmtcallargs)
76
* RETURNS (rpcb_rmtcallres);
77
* Calls the procedure on the remote machine. If it is not registered,
78
* this procedure is quiet; i.e. it does not return error information!!!
79
* This routine only passes null authentication parameters.
80
* It has no interface to xdr routines for RPCBPROC_CALLIT.
81
*
82
* RPCBPROC_GETTIME() returns (int).
83
* Gets the remote machines time
84
*
85
* RPCBPROC_UADDR2TADDR(strint) RETURNS (struct netbuf)
86
* Returns the netbuf address from universal address.
87
*
88
* RPCBPROC_TADDR2UADDR(struct netbuf) RETURNS (string)
89
* Returns the universal address from netbuf address.
90
*
91
* END OF RPCBIND VERSION 3 PROCEDURES
92
*/
93
/*
94
* Except for RPCBPROC_CALLIT, the procedures above are carried over to
95
* rpcbind version 4. Those below are added or modified for version 4.
96
* NOTE: RPCBPROC_BCAST HAS THE SAME FUNCTIONALITY AND PROCEDURE NUMBER
97
* AS RPCBPROC_CALLIT.
98
*
99
* RPCBPROC_BCAST(rpcb_rmtcallargs)
100
* RETURNS (rpcb_rmtcallres);
101
* Calls the procedure on the remote machine. If it is not registered,
102
* this procedure IS quiet; i.e. it DOES NOT return error information!!!
103
* This routine should be used for broadcasting and nothing else.
104
*
105
* RPCBPROC_GETVERSADDR(rpcb) returns (string).
106
* 0 is failure. Otherwise returns the universal address where the
107
* triple [prog, vers, netid] is registered. Ignore address and owner.
108
* Same as RPCBPROC_GETADDR except that if the given version number
109
* is not available, the address is not returned.
110
*
111
* RPCBPROC_INDIRECT(rpcb_rmtcallargs)
112
* RETURNS (rpcb_rmtcallres);
113
* Calls the procedure on the remote machine. If it is not registered,
114
* this procedure is NOT quiet; i.e. it DOES return error information!!!
115
* as any normal application would expect.
116
*
117
* RPCBPROC_GETADDRLIST(rpcb) returns (rpcb_entry_list_ptr).
118
* Same as RPCBPROC_GETADDR except that it returns a list of all the
119
* addresses registered for the combination (prog, vers) (for all
120
* transports).
121
*
122
* RPCBPROC_GETSTAT(void) returns (rpcb_stat_byvers)
123
* Returns the statistics about the kind of requests received by rpcbind.
124
*/
125
126
/*
127
* A mapping of (program, version, network ID) to address
128
*/
129
130
struct rpcb {
131
rpcprog_t r_prog;
132
rpcvers_t r_vers;
133
char *r_netid;
134
char *r_addr;
135
char *r_owner;
136
};
137
typedef struct rpcb rpcb;
138
139
typedef rpcb RPCB;
140
141
142
/*
143
* A list of mappings
144
*
145
* Below are two definitions for the rpcblist structure. This is done because
146
* xdr_rpcblist() is specified to take a struct rpcblist **, rather than a
147
* struct rpcblist * that rpcgen would produce. One version of the rpcblist
148
* structure (actually called rp__list) is used with rpcgen, and the other is
149
* defined only in the header file for compatibility with the specified
150
* interface.
151
*/
152
153
struct rp__list {
154
rpcb rpcb_map;
155
struct rp__list *rpcb_next;
156
};
157
typedef struct rp__list rp__list;
158
159
typedef rp__list *rpcblist_ptr;
160
161
typedef struct rp__list rpcblist;
162
typedef struct rp__list RPCBLIST;
163
164
#ifndef __cplusplus
165
struct rpcblist {
166
RPCB rpcb_map;
167
struct rpcblist *rpcb_next;
168
};
169
#endif
170
171
#ifdef __cplusplus
172
extern "C" {
173
#endif
174
extern bool_t xdr_rpcblist(XDR *, rpcblist**);
175
#ifdef __cplusplus
176
}
177
#endif
178
179
180
/*
181
* Arguments of remote calls
182
*/
183
184
struct rpcb_rmtcallargs {
185
rpcprog_t prog;
186
rpcvers_t vers;
187
rpcproc_t proc;
188
struct {
189
u_int args_len;
190
char *args_val;
191
} args;
192
};
193
typedef struct rpcb_rmtcallargs rpcb_rmtcallargs;
194
195
/*
196
* Client-side only representation of rpcb_rmtcallargs structure.
197
*
198
* The routine that XDRs the rpcb_rmtcallargs structure must deal with the
199
* opaque arguments in the "args" structure. xdr_rpcb_rmtcallargs() needs to
200
* be passed the XDR routine that knows the args' structure. This routine
201
* doesn't need to go over-the-wire (and it wouldn't make sense anyway) since
202
* the application being called already knows the args structure. So we use a
203
* different "XDR" structure on the client side, r_rpcb_rmtcallargs, which
204
* includes the args' XDR routine.
205
*/
206
struct r_rpcb_rmtcallargs {
207
rpcprog_t prog;
208
rpcvers_t vers;
209
rpcproc_t proc;
210
struct {
211
u_int args_len;
212
char *args_val;
213
} args;
214
xdrproc_t xdr_args; /* encodes args */
215
};
216
217
218
/*
219
* Results of the remote call
220
*/
221
222
struct rpcb_rmtcallres {
223
char *addr;
224
struct {
225
u_int results_len;
226
char *results_val;
227
} results;
228
};
229
typedef struct rpcb_rmtcallres rpcb_rmtcallres;
230
231
/*
232
* Client-side only representation of rpcb_rmtcallres structure.
233
*/
234
struct r_rpcb_rmtcallres {
235
char *addr;
236
struct {
237
uint32_t results_len;
238
char *results_val;
239
} results;
240
xdrproc_t xdr_res; /* decodes results */
241
};
242
243
/*
244
* rpcb_entry contains a merged address of a service on a particular
245
* transport, plus associated netconfig information. A list of rpcb_entrys
246
* is returned by RPCBPROC_GETADDRLIST. See netconfig.h for values used
247
* in r_nc_* fields.
248
*/
249
250
struct rpcb_entry {
251
char *r_maddr;
252
char *r_nc_netid;
253
u_int r_nc_semantics;
254
char *r_nc_protofmly;
255
char *r_nc_proto;
256
};
257
typedef struct rpcb_entry rpcb_entry;
258
259
/*
260
* A list of addresses supported by a service.
261
*/
262
263
struct rpcb_entry_list {
264
rpcb_entry rpcb_entry_map;
265
struct rpcb_entry_list *rpcb_entry_next;
266
};
267
typedef struct rpcb_entry_list rpcb_entry_list;
268
269
typedef rpcb_entry_list *rpcb_entry_list_ptr;
270
271
/*
272
* rpcbind statistics
273
*/
274
275
#define rpcb_highproc_2 RPCBPROC_CALLIT
276
#define rpcb_highproc_3 RPCBPROC_TADDR2UADDR
277
#define rpcb_highproc_4 RPCBPROC_GETSTAT
278
#define RPCBSTAT_HIGHPROC 13
279
#define RPCBVERS_STAT 3
280
#define RPCBVERS_4_STAT 2
281
#define RPCBVERS_3_STAT 1
282
#define RPCBVERS_2_STAT 0
283
284
/* Link list of all the stats about getport and getaddr */
285
286
struct rpcbs_addrlist {
287
rpcprog_t prog;
288
rpcvers_t vers;
289
int success;
290
int failure;
291
char *netid;
292
struct rpcbs_addrlist *next;
293
};
294
typedef struct rpcbs_addrlist rpcbs_addrlist;
295
296
/* Link list of all the stats about rmtcall */
297
298
struct rpcbs_rmtcalllist {
299
rpcprog_t prog;
300
rpcvers_t vers;
301
rpcproc_t proc;
302
int success;
303
int failure;
304
int indirect;
305
char *netid;
306
struct rpcbs_rmtcalllist *next;
307
};
308
typedef struct rpcbs_rmtcalllist rpcbs_rmtcalllist;
309
310
typedef int rpcbs_proc[RPCBSTAT_HIGHPROC];
311
312
typedef rpcbs_addrlist *rpcbs_addrlist_ptr;
313
314
typedef rpcbs_rmtcalllist *rpcbs_rmtcalllist_ptr;
315
316
struct rpcb_stat {
317
rpcbs_proc info;
318
int setinfo;
319
int unsetinfo;
320
rpcbs_addrlist_ptr addrinfo;
321
rpcbs_rmtcalllist_ptr rmtinfo;
322
};
323
typedef struct rpcb_stat rpcb_stat;
324
325
/*
326
* One rpcb_stat structure is returned for each version of rpcbind
327
* being monitored.
328
*/
329
330
typedef rpcb_stat rpcb_stat_byvers[RPCBVERS_STAT];
331
332
/*
333
* We don't define netbuf in RPCL, since it would contain structure member
334
* names that would conflict with the definition of struct netbuf in
335
* <tiuser.h>. Instead we merely declare the XDR routine xdr_netbuf() here,
336
* and implement it ourselves in rpc/rpcb_prot.c.
337
*/
338
#ifdef __cplusplus
339
extern "C" bool_t xdr_netbuf(XDR *, struct netbuf *);
340
341
#else /* __STDC__ */
342
extern bool_t xdr_netbuf(XDR *, struct netbuf *);
343
344
#endif
345
346
#define RPCBVERS_3 RPCBVERS
347
#define RPCBVERS_4 RPCBVERS4
348
349
#else /* ndef _KERNEL */
350
#ifdef __cplusplus
351
extern "C" {
352
#endif
353
354
/*
355
* A mapping of (program, version, network ID) to address
356
*/
357
struct rpcb {
358
rpcprog_t r_prog; /* program number */
359
rpcvers_t r_vers; /* version number */
360
char *r_netid; /* network id */
361
char *r_addr; /* universal address */
362
char *r_owner; /* owner of the mapping */
363
};
364
typedef struct rpcb RPCB;
365
366
/*
367
* A list of mappings
368
*/
369
struct rpcblist {
370
RPCB rpcb_map;
371
struct rpcblist *rpcb_next;
372
};
373
typedef struct rpcblist RPCBLIST;
374
typedef struct rpcblist *rpcblist_ptr;
375
376
/*
377
* Remote calls arguments
378
*/
379
struct rpcb_rmtcallargs {
380
rpcprog_t prog; /* program number */
381
rpcvers_t vers; /* version number */
382
rpcproc_t proc; /* procedure number */
383
uint32_t arglen; /* arg len */
384
caddr_t args_ptr; /* argument */
385
xdrproc_t xdr_args; /* XDR routine for argument */
386
};
387
typedef struct rpcb_rmtcallargs rpcb_rmtcallargs;
388
389
/*
390
* Remote calls results
391
*/
392
struct rpcb_rmtcallres {
393
char *addr_ptr; /* remote universal address */
394
uint32_t resultslen; /* results length */
395
caddr_t results_ptr; /* results */
396
xdrproc_t xdr_results; /* XDR routine for result */
397
};
398
typedef struct rpcb_rmtcallres rpcb_rmtcallres;
399
400
struct rpcb_entry {
401
char *r_maddr;
402
char *r_nc_netid;
403
unsigned int r_nc_semantics;
404
char *r_nc_protofmly;
405
char *r_nc_proto;
406
};
407
typedef struct rpcb_entry rpcb_entry;
408
409
/*
410
* A list of addresses supported by a service.
411
*/
412
413
struct rpcb_entry_list {
414
rpcb_entry rpcb_entry_map;
415
struct rpcb_entry_list *rpcb_entry_next;
416
};
417
typedef struct rpcb_entry_list rpcb_entry_list;
418
419
typedef rpcb_entry_list *rpcb_entry_list_ptr;
420
421
/*
422
* rpcbind statistics
423
*/
424
425
#define rpcb_highproc_2 RPCBPROC_CALLIT
426
#define rpcb_highproc_3 RPCBPROC_TADDR2UADDR
427
#define rpcb_highproc_4 RPCBPROC_GETSTAT
428
#define RPCBSTAT_HIGHPROC 13
429
#define RPCBVERS_STAT 3
430
#define RPCBVERS_4_STAT 2
431
#define RPCBVERS_3_STAT 1
432
#define RPCBVERS_2_STAT 0
433
434
/* Link list of all the stats about getport and getaddr */
435
436
struct rpcbs_addrlist {
437
rpcprog_t prog;
438
rpcvers_t vers;
439
int success;
440
int failure;
441
char *netid;
442
struct rpcbs_addrlist *next;
443
};
444
typedef struct rpcbs_addrlist rpcbs_addrlist;
445
446
/* Link list of all the stats about rmtcall */
447
448
struct rpcbs_rmtcalllist {
449
rpcprog_t prog;
450
rpcvers_t vers;
451
rpcproc_t proc;
452
int success;
453
int failure;
454
int indirect;
455
char *netid;
456
struct rpcbs_rmtcalllist *next;
457
};
458
typedef struct rpcbs_rmtcalllist rpcbs_rmtcalllist;
459
460
typedef int rpcbs_proc[RPCBSTAT_HIGHPROC];
461
462
typedef rpcbs_addrlist *rpcbs_addrlist_ptr;
463
464
typedef rpcbs_rmtcalllist *rpcbs_rmtcalllist_ptr;
465
466
struct rpcb_stat {
467
rpcbs_proc info;
468
int setinfo;
469
int unsetinfo;
470
rpcbs_addrlist_ptr addrinfo;
471
rpcbs_rmtcalllist_ptr rmtinfo;
472
};
473
typedef struct rpcb_stat rpcb_stat;
474
475
/*
476
* One rpcb_stat structure is returned for each version of rpcbind
477
* being monitored.
478
*/
479
480
typedef rpcb_stat rpcb_stat_byvers[RPCBVERS_STAT];
481
482
#ifdef __cplusplus
483
}
484
#endif
485
486
#endif /* ndef _KERNEL */
487
488
#define _PATH_RPCBINDSOCK "/var/run/rpcbind.sock"
489
490
#define RPCBPROG ((unsigned long)(100000))
491
#define RPCBVERS ((unsigned long)(3))
492
493
extern void rpcbprog_3(struct svc_req *rqstp, SVCXPRT *transp);
494
#define RPCBPROC_SET ((unsigned long)(1))
495
extern bool_t * rpcbproc_set_3(RPCB *, CLIENT *);
496
extern bool_t * rpcbproc_set_3_svc(RPCB *, struct svc_req *);
497
#define RPCBPROC_UNSET ((unsigned long)(2))
498
extern bool_t * rpcbproc_unset_3(RPCB *, CLIENT *);
499
extern bool_t * rpcbproc_unset_3_svc(RPCB *, struct svc_req *);
500
#define RPCBPROC_GETADDR ((unsigned long)(3))
501
extern char ** rpcbproc_getaddr_3(RPCB *, CLIENT *);
502
extern char ** rpcbproc_getaddr_3_svc(RPCB *, struct svc_req *);
503
#define RPCBPROC_DUMP ((unsigned long)(4))
504
extern rpcblist_ptr * rpcbproc_dump_3(void *, CLIENT *);
505
extern rpcblist_ptr * rpcbproc_dump_3_svc(void *, struct svc_req *);
506
#define RPCBPROC_CALLIT ((unsigned long)(5))
507
extern rpcb_rmtcallres * rpcbproc_callit_3(rpcb_rmtcallargs *, CLIENT *);
508
extern rpcb_rmtcallres * rpcbproc_callit_3_svc(rpcb_rmtcallargs *, struct svc_req *);
509
#define RPCBPROC_GETTIME ((unsigned long)(6))
510
extern u_int * rpcbproc_gettime_3(void *, CLIENT *);
511
extern u_int * rpcbproc_gettime_3_svc(void *, struct svc_req *);
512
#define RPCBPROC_UADDR2TADDR ((unsigned long)(7))
513
extern struct netbuf * rpcbproc_uaddr2taddr_3(char **, CLIENT *);
514
extern struct netbuf * rpcbproc_uaddr2taddr_3_svc(char **, struct svc_req *);
515
#define RPCBPROC_TADDR2UADDR ((unsigned long)(8))
516
extern char ** rpcbproc_taddr2uaddr_3(struct netbuf *, CLIENT *);
517
extern char ** rpcbproc_taddr2uaddr_3_svc(struct netbuf *, struct svc_req *);
518
extern int rpcbprog_3_freeresult(SVCXPRT *, xdrproc_t, caddr_t);
519
#define RPCBVERS4 ((unsigned long)(4))
520
521
extern void rpcbprog_4(struct svc_req *rqstp, SVCXPRT *transp);
522
extern bool_t * rpcbproc_set_4(RPCB *, CLIENT *);
523
extern bool_t * rpcbproc_set_4_svc(RPCB *, struct svc_req *);
524
extern bool_t * rpcbproc_unset_4(RPCB *, CLIENT *);
525
extern bool_t * rpcbproc_unset_4_svc(RPCB *, struct svc_req *);
526
extern char ** rpcbproc_getaddr_4(RPCB *, CLIENT *);
527
extern char ** rpcbproc_getaddr_4_svc(RPCB *, struct svc_req *);
528
extern rpcblist_ptr * rpcbproc_dump_4(void *, CLIENT *);
529
extern rpcblist_ptr * rpcbproc_dump_4_svc(void *, struct svc_req *);
530
#define RPCBPROC_BCAST ((unsigned long)(RPCBPROC_CALLIT))
531
extern rpcb_rmtcallres * rpcbproc_bcast_4(rpcb_rmtcallargs *, CLIENT *);
532
extern rpcb_rmtcallres * rpcbproc_bcast_4_svc(rpcb_rmtcallargs *, struct svc_req *);
533
extern u_int * rpcbproc_gettime_4(void *, CLIENT *);
534
extern u_int * rpcbproc_gettime_4_svc(void *, struct svc_req *);
535
extern struct netbuf * rpcbproc_uaddr2taddr_4(char **, CLIENT *);
536
extern struct netbuf * rpcbproc_uaddr2taddr_4_svc(char **, struct svc_req *);
537
extern char ** rpcbproc_taddr2uaddr_4(struct netbuf *, CLIENT *);
538
extern char ** rpcbproc_taddr2uaddr_4_svc(struct netbuf *, struct svc_req *);
539
#define RPCBPROC_GETVERSADDR ((unsigned long)(9))
540
extern char ** rpcbproc_getversaddr_4(RPCB *, CLIENT *);
541
extern char ** rpcbproc_getversaddr_4_svc(RPCB *, struct svc_req *);
542
#define RPCBPROC_INDIRECT ((unsigned long)(10))
543
extern rpcb_rmtcallres * rpcbproc_indirect_4(rpcb_rmtcallargs *, CLIENT *);
544
extern rpcb_rmtcallres * rpcbproc_indirect_4_svc(rpcb_rmtcallargs *, struct svc_req *);
545
#define RPCBPROC_GETADDRLIST ((unsigned long)(11))
546
extern rpcb_entry_list_ptr * rpcbproc_getaddrlist_4(RPCB *, CLIENT *);
547
extern rpcb_entry_list_ptr * rpcbproc_getaddrlist_4_svc(RPCB *, struct svc_req *);
548
#define RPCBPROC_GETSTAT ((unsigned long)(12))
549
extern rpcb_stat * rpcbproc_getstat_4(void *, CLIENT *);
550
extern rpcb_stat * rpcbproc_getstat_4_svc(void *, struct svc_req *);
551
extern int rpcbprog_4_freeresult(SVCXPRT *, xdrproc_t, caddr_t);
552
553
/* the xdr functions */
554
extern bool_t xdr_rpcb(XDR *, RPCB *);
555
#ifndef _KERNEL
556
extern bool_t xdr_rp__list(XDR *, rp__list*);
557
#endif
558
extern bool_t xdr_rpcblist_ptr(XDR *, rpcblist_ptr*);
559
extern bool_t xdr_rpcb_rmtcallargs(XDR *, rpcb_rmtcallargs*);
560
extern bool_t xdr_rpcb_rmtcallres(XDR *, rpcb_rmtcallres*);
561
extern bool_t xdr_rpcb_entry(XDR *, rpcb_entry*);
562
extern bool_t xdr_rpcb_entry_list(XDR *, rpcb_entry_list*);
563
extern bool_t xdr_rpcb_entry_list_ptr(XDR *, rpcb_entry_list_ptr*);
564
extern bool_t xdr_rpcbs_addrlist(XDR *, rpcbs_addrlist*);
565
extern bool_t xdr_rpcbs_rmtcalllist(XDR *, rpcbs_rmtcalllist*);
566
extern bool_t xdr_rpcbs_proc(XDR *, rpcbs_proc);
567
extern bool_t xdr_rpcbs_addrlist_ptr(XDR *, rpcbs_addrlist_ptr*);
568
extern bool_t xdr_rpcbs_rmtcalllist_ptr(XDR *, rpcbs_rmtcalllist_ptr*);
569
extern bool_t xdr_rpcb_stat(XDR *, rpcb_stat*);
570
extern bool_t xdr_rpcb_stat_byvers(XDR *, rpcb_stat_byvers);
571
572
#ifdef __cplusplus
573
}
574
#endif
575
576
#endif /* !_RPCB_PROT_H_RPCGEN */
577
578