rpcb_prot.h 17 KB

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