18360efbdSAlfred Perlstein /* $NetBSD: rpcb_st_xdr.c,v 1.3 2000/07/14 08:40:42 fvdl Exp $ */ 28360efbdSAlfred Perlstein 38360efbdSAlfred Perlstein /* 48360efbdSAlfred Perlstein * Sun RPC is a product of Sun Microsystems, Inc. and is provided for 58360efbdSAlfred Perlstein * unrestricted use provided that this legend is included on all tape 68360efbdSAlfred Perlstein * media and as a part of the software program in whole or part. Users 78360efbdSAlfred Perlstein * may copy or modify Sun RPC without charge, but are not authorized 88360efbdSAlfred Perlstein * to license or distribute it to anyone else except as part of a product or 98360efbdSAlfred Perlstein * program developed by the user. 108360efbdSAlfred Perlstein * 118360efbdSAlfred Perlstein * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE 128360efbdSAlfred Perlstein * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR 138360efbdSAlfred Perlstein * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. 148360efbdSAlfred Perlstein * 158360efbdSAlfred Perlstein * Sun RPC is provided with no support and without any obligation on the 168360efbdSAlfred Perlstein * part of Sun Microsystems, Inc. to assist in its use, correction, 178360efbdSAlfred Perlstein * modification or enhancement. 188360efbdSAlfred Perlstein * 198360efbdSAlfred Perlstein * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE 208360efbdSAlfred Perlstein * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC 218360efbdSAlfred Perlstein * OR ANY PART THEREOF. 228360efbdSAlfred Perlstein * 238360efbdSAlfred Perlstein * In no event will Sun Microsystems, Inc. be liable for any lost revenue 248360efbdSAlfred Perlstein * or profits or other special, indirect and consequential damages, even if 258360efbdSAlfred Perlstein * Sun has been advised of the possibility of such damages. 268360efbdSAlfred Perlstein * 278360efbdSAlfred Perlstein * Sun Microsystems, Inc. 288360efbdSAlfred Perlstein * 2550 Garcia Avenue 298360efbdSAlfred Perlstein * Mountain View, California 94043 308360efbdSAlfred Perlstein */ 318360efbdSAlfred Perlstein /* 328360efbdSAlfred Perlstein * Copyright 1991 Sun Microsystems, Inc. 338360efbdSAlfred Perlstein * rpcb_stat_xdr.c 348360efbdSAlfred Perlstein */ 358360efbdSAlfred Perlstein 368360efbdSAlfred Perlstein /* 378360efbdSAlfred Perlstein * This file was generated from rpcb_prot.x, but includes only those 388360efbdSAlfred Perlstein * routines used with the rpcbind stats facility. 398360efbdSAlfred Perlstein */ 408360efbdSAlfred Perlstein 41d3d20c82SDavid E. O'Brien #include <sys/cdefs.h> 42d3d20c82SDavid E. O'Brien __FBSDID("$FreeBSD$"); 43d3d20c82SDavid E. O'Brien 448360efbdSAlfred Perlstein #include "namespace.h" 458360efbdSAlfred Perlstein #include <rpc/rpc.h> 468360efbdSAlfred Perlstein #include "un-namespace.h" 478360efbdSAlfred Perlstein 488360efbdSAlfred Perlstein /* Link list of all the stats about getport and getaddr */ 498360efbdSAlfred Perlstein 508360efbdSAlfred Perlstein bool_t 518360efbdSAlfred Perlstein xdr_rpcbs_addrlist(xdrs, objp) 528360efbdSAlfred Perlstein XDR *xdrs; 538360efbdSAlfred Perlstein rpcbs_addrlist *objp; 548360efbdSAlfred Perlstein { 55102c7c92SJohn Birrell struct rpcbs_addrlist **pnext; 568360efbdSAlfred Perlstein 578360efbdSAlfred Perlstein if (!xdr_u_int32_t(xdrs, &objp->prog)) { 588360efbdSAlfred Perlstein return (FALSE); 598360efbdSAlfred Perlstein } 608360efbdSAlfred Perlstein if (!xdr_u_int32_t(xdrs, &objp->vers)) { 618360efbdSAlfred Perlstein return (FALSE); 628360efbdSAlfred Perlstein } 638360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->success)) { 648360efbdSAlfred Perlstein return (FALSE); 658360efbdSAlfred Perlstein } 668360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->failure)) { 678360efbdSAlfred Perlstein return (FALSE); 688360efbdSAlfred Perlstein } 698360efbdSAlfred Perlstein if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { 708360efbdSAlfred Perlstein return (FALSE); 718360efbdSAlfred Perlstein } 728360efbdSAlfred Perlstein 73102c7c92SJohn Birrell pnext = &objp->next; 74102c7c92SJohn Birrell 75102c7c92SJohn Birrell if (!xdr_pointer(xdrs, (char **) pnext, 768360efbdSAlfred Perlstein sizeof (rpcbs_addrlist), 778360efbdSAlfred Perlstein (xdrproc_t)xdr_rpcbs_addrlist)) { 788360efbdSAlfred Perlstein return (FALSE); 798360efbdSAlfred Perlstein } 808360efbdSAlfred Perlstein 818360efbdSAlfred Perlstein return (TRUE); 828360efbdSAlfred Perlstein } 838360efbdSAlfred Perlstein 848360efbdSAlfred Perlstein /* Link list of all the stats about rmtcall */ 858360efbdSAlfred Perlstein 868360efbdSAlfred Perlstein bool_t 878360efbdSAlfred Perlstein xdr_rpcbs_rmtcalllist(xdrs, objp) 888360efbdSAlfred Perlstein XDR *xdrs; 898360efbdSAlfred Perlstein rpcbs_rmtcalllist *objp; 908360efbdSAlfred Perlstein { 918360efbdSAlfred Perlstein int32_t *buf; 92102c7c92SJohn Birrell struct rpcbs_rmtcalllist **pnext; 938360efbdSAlfred Perlstein 948360efbdSAlfred Perlstein if (xdrs->x_op == XDR_ENCODE) { 958360efbdSAlfred Perlstein buf = XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT); 968360efbdSAlfred Perlstein if (buf == NULL) { 978360efbdSAlfred Perlstein if (!xdr_u_int32_t(xdrs, &objp->prog)) { 988360efbdSAlfred Perlstein return (FALSE); 998360efbdSAlfred Perlstein } 1008360efbdSAlfred Perlstein if (!xdr_u_int32_t(xdrs, &objp->vers)) { 1018360efbdSAlfred Perlstein return (FALSE); 1028360efbdSAlfred Perlstein } 1038360efbdSAlfred Perlstein if (!xdr_u_int32_t(xdrs, &objp->proc)) { 1048360efbdSAlfred Perlstein return (FALSE); 1058360efbdSAlfred Perlstein } 1068360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->success)) { 1078360efbdSAlfred Perlstein return (FALSE); 1088360efbdSAlfred Perlstein } 1098360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->failure)) { 1108360efbdSAlfred Perlstein return (FALSE); 1118360efbdSAlfred Perlstein } 1128360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->indirect)) { 1138360efbdSAlfred Perlstein return (FALSE); 1148360efbdSAlfred Perlstein } 1158360efbdSAlfred Perlstein } else { 1168360efbdSAlfred Perlstein IXDR_PUT_U_INT32(buf, objp->prog); 1178360efbdSAlfred Perlstein IXDR_PUT_U_INT32(buf, objp->vers); 1188360efbdSAlfred Perlstein IXDR_PUT_U_INT32(buf, objp->proc); 1198360efbdSAlfred Perlstein IXDR_PUT_INT32(buf, objp->success); 1208360efbdSAlfred Perlstein IXDR_PUT_INT32(buf, objp->failure); 1218360efbdSAlfred Perlstein IXDR_PUT_INT32(buf, objp->indirect); 1228360efbdSAlfred Perlstein } 1238360efbdSAlfred Perlstein if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { 1248360efbdSAlfred Perlstein return (FALSE); 1258360efbdSAlfred Perlstein } 126102c7c92SJohn Birrell pnext = &objp->next; 127102c7c92SJohn Birrell if (!xdr_pointer(xdrs, (char **) pnext, 1288360efbdSAlfred Perlstein sizeof (rpcbs_rmtcalllist), 1298360efbdSAlfred Perlstein (xdrproc_t)xdr_rpcbs_rmtcalllist)) { 1308360efbdSAlfred Perlstein return (FALSE); 1318360efbdSAlfred Perlstein } 1328360efbdSAlfred Perlstein return (TRUE); 1338360efbdSAlfred Perlstein } else if (xdrs->x_op == XDR_DECODE) { 1348360efbdSAlfred Perlstein buf = XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT); 1358360efbdSAlfred Perlstein if (buf == NULL) { 1368360efbdSAlfred Perlstein if (!xdr_u_int32_t(xdrs, &objp->prog)) { 1378360efbdSAlfred Perlstein return (FALSE); 1388360efbdSAlfred Perlstein } 1398360efbdSAlfred Perlstein if (!xdr_u_int32_t(xdrs, &objp->vers)) { 1408360efbdSAlfred Perlstein return (FALSE); 1418360efbdSAlfred Perlstein } 1428360efbdSAlfred Perlstein if (!xdr_u_int32_t(xdrs, &objp->proc)) { 1438360efbdSAlfred Perlstein return (FALSE); 1448360efbdSAlfred Perlstein } 1458360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->success)) { 1468360efbdSAlfred Perlstein return (FALSE); 1478360efbdSAlfred Perlstein } 1488360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->failure)) { 1498360efbdSAlfred Perlstein return (FALSE); 1508360efbdSAlfred Perlstein } 1518360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->indirect)) { 1528360efbdSAlfred Perlstein return (FALSE); 1538360efbdSAlfred Perlstein } 1548360efbdSAlfred Perlstein } else { 1558360efbdSAlfred Perlstein objp->prog = (rpcprog_t)IXDR_GET_U_INT32(buf); 1568360efbdSAlfred Perlstein objp->vers = (rpcvers_t)IXDR_GET_U_INT32(buf); 1578360efbdSAlfred Perlstein objp->proc = (rpcproc_t)IXDR_GET_U_INT32(buf); 1588360efbdSAlfred Perlstein objp->success = (int)IXDR_GET_INT32(buf); 1598360efbdSAlfred Perlstein objp->failure = (int)IXDR_GET_INT32(buf); 1608360efbdSAlfred Perlstein objp->indirect = (int)IXDR_GET_INT32(buf); 1618360efbdSAlfred Perlstein } 1628360efbdSAlfred Perlstein if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { 1638360efbdSAlfred Perlstein return (FALSE); 1648360efbdSAlfred Perlstein } 165102c7c92SJohn Birrell if (!xdr_pointer(xdrs, (char **) pnext, 1668360efbdSAlfred Perlstein sizeof (rpcbs_rmtcalllist), 1678360efbdSAlfred Perlstein (xdrproc_t)xdr_rpcbs_rmtcalllist)) { 1688360efbdSAlfred Perlstein return (FALSE); 1698360efbdSAlfred Perlstein } 1708360efbdSAlfred Perlstein return (TRUE); 1718360efbdSAlfred Perlstein } 1728360efbdSAlfred Perlstein if (!xdr_u_int32_t(xdrs, &objp->prog)) { 1738360efbdSAlfred Perlstein return (FALSE); 1748360efbdSAlfred Perlstein } 1758360efbdSAlfred Perlstein if (!xdr_u_int32_t(xdrs, &objp->vers)) { 1768360efbdSAlfred Perlstein return (FALSE); 1778360efbdSAlfred Perlstein } 1788360efbdSAlfred Perlstein if (!xdr_u_int32_t(xdrs, &objp->proc)) { 1798360efbdSAlfred Perlstein return (FALSE); 1808360efbdSAlfred Perlstein } 1818360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->success)) { 1828360efbdSAlfred Perlstein return (FALSE); 1838360efbdSAlfred Perlstein } 1848360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->failure)) { 1858360efbdSAlfred Perlstein return (FALSE); 1868360efbdSAlfred Perlstein } 1878360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->indirect)) { 1888360efbdSAlfred Perlstein return (FALSE); 1898360efbdSAlfred Perlstein } 1908360efbdSAlfred Perlstein if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { 1918360efbdSAlfred Perlstein return (FALSE); 1928360efbdSAlfred Perlstein } 193102c7c92SJohn Birrell if (!xdr_pointer(xdrs, (char **) pnext, 1948360efbdSAlfred Perlstein sizeof (rpcbs_rmtcalllist), 1958360efbdSAlfred Perlstein (xdrproc_t)xdr_rpcbs_rmtcalllist)) { 1968360efbdSAlfred Perlstein return (FALSE); 1978360efbdSAlfred Perlstein } 1988360efbdSAlfred Perlstein return (TRUE); 1998360efbdSAlfred Perlstein } 2008360efbdSAlfred Perlstein 2018360efbdSAlfred Perlstein bool_t 2028360efbdSAlfred Perlstein xdr_rpcbs_proc(xdrs, objp) 2038360efbdSAlfred Perlstein XDR *xdrs; 2048360efbdSAlfred Perlstein rpcbs_proc objp; 2058360efbdSAlfred Perlstein { 2068360efbdSAlfred Perlstein if (!xdr_vector(xdrs, (char *)(void *)objp, RPCBSTAT_HIGHPROC, 2078360efbdSAlfred Perlstein sizeof (int), (xdrproc_t)xdr_int)) { 2088360efbdSAlfred Perlstein return (FALSE); 2098360efbdSAlfred Perlstein } 2108360efbdSAlfred Perlstein return (TRUE); 2118360efbdSAlfred Perlstein } 2128360efbdSAlfred Perlstein 2138360efbdSAlfred Perlstein bool_t 2148360efbdSAlfred Perlstein xdr_rpcbs_addrlist_ptr(xdrs, objp) 2158360efbdSAlfred Perlstein XDR *xdrs; 2168360efbdSAlfred Perlstein rpcbs_addrlist_ptr *objp; 2178360efbdSAlfred Perlstein { 2188360efbdSAlfred Perlstein if (!xdr_pointer(xdrs, (char **)objp, sizeof (rpcbs_addrlist), 2198360efbdSAlfred Perlstein (xdrproc_t)xdr_rpcbs_addrlist)) { 2208360efbdSAlfred Perlstein return (FALSE); 2218360efbdSAlfred Perlstein } 2228360efbdSAlfred Perlstein return (TRUE); 2238360efbdSAlfred Perlstein } 2248360efbdSAlfred Perlstein 2258360efbdSAlfred Perlstein bool_t 2268360efbdSAlfred Perlstein xdr_rpcbs_rmtcalllist_ptr(xdrs, objp) 2278360efbdSAlfred Perlstein XDR *xdrs; 2288360efbdSAlfred Perlstein rpcbs_rmtcalllist_ptr *objp; 2298360efbdSAlfred Perlstein { 2308360efbdSAlfred Perlstein if (!xdr_pointer(xdrs, (char **)objp, sizeof (rpcbs_rmtcalllist), 2318360efbdSAlfred Perlstein (xdrproc_t)xdr_rpcbs_rmtcalllist)) { 2328360efbdSAlfred Perlstein return (FALSE); 2338360efbdSAlfred Perlstein } 2348360efbdSAlfred Perlstein return (TRUE); 2358360efbdSAlfred Perlstein } 2368360efbdSAlfred Perlstein 2378360efbdSAlfred Perlstein bool_t 2388360efbdSAlfred Perlstein xdr_rpcb_stat(xdrs, objp) 2398360efbdSAlfred Perlstein XDR *xdrs; 2408360efbdSAlfred Perlstein rpcb_stat *objp; 2418360efbdSAlfred Perlstein { 2428360efbdSAlfred Perlstein 2438360efbdSAlfred Perlstein if (!xdr_rpcbs_proc(xdrs, objp->info)) { 2448360efbdSAlfred Perlstein return (FALSE); 2458360efbdSAlfred Perlstein } 2468360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->setinfo)) { 2478360efbdSAlfred Perlstein return (FALSE); 2488360efbdSAlfred Perlstein } 2498360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->unsetinfo)) { 2508360efbdSAlfred Perlstein return (FALSE); 2518360efbdSAlfred Perlstein } 2528360efbdSAlfred Perlstein if (!xdr_rpcbs_addrlist_ptr(xdrs, &objp->addrinfo)) { 2538360efbdSAlfred Perlstein return (FALSE); 2548360efbdSAlfred Perlstein } 255988553e9SAlfred Perlstein if (!xdr_rpcbs_rmtcalllist_ptr(xdrs, &objp->rmtinfo)) { 256988553e9SAlfred Perlstein return (FALSE); 257988553e9SAlfred Perlstein } 2588360efbdSAlfred Perlstein return (TRUE); 2598360efbdSAlfred Perlstein } 2608360efbdSAlfred Perlstein 2618360efbdSAlfred Perlstein /* 2628360efbdSAlfred Perlstein * One rpcb_stat structure is returned for each version of rpcbind 2638360efbdSAlfred Perlstein * being monitored. 2648360efbdSAlfred Perlstein */ 2658360efbdSAlfred Perlstein bool_t 2668360efbdSAlfred Perlstein xdr_rpcb_stat_byvers(xdrs, objp) 2678360efbdSAlfred Perlstein XDR *xdrs; 2688360efbdSAlfred Perlstein rpcb_stat_byvers objp; 2698360efbdSAlfred Perlstein { 2708360efbdSAlfred Perlstein if (!xdr_vector(xdrs, (char *)(void *)objp, RPCBVERS_STAT, 2718360efbdSAlfred Perlstein sizeof (rpcb_stat), (xdrproc_t)xdr_rpcb_stat)) { 2728360efbdSAlfred Perlstein return (FALSE); 2738360efbdSAlfred Perlstein } 2748360efbdSAlfred Perlstein return (TRUE); 2758360efbdSAlfred Perlstein } 276