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 { 558360efbdSAlfred Perlstein 568360efbdSAlfred Perlstein if (!xdr_u_int32_t(xdrs, &objp->prog)) { 578360efbdSAlfred Perlstein return (FALSE); 588360efbdSAlfred Perlstein } 598360efbdSAlfred Perlstein if (!xdr_u_int32_t(xdrs, &objp->vers)) { 608360efbdSAlfred Perlstein return (FALSE); 618360efbdSAlfred Perlstein } 628360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->success)) { 638360efbdSAlfred Perlstein return (FALSE); 648360efbdSAlfred Perlstein } 658360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->failure)) { 668360efbdSAlfred Perlstein return (FALSE); 678360efbdSAlfred Perlstein } 688360efbdSAlfred Perlstein if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { 698360efbdSAlfred Perlstein return (FALSE); 708360efbdSAlfred Perlstein } 718360efbdSAlfred Perlstein 728360efbdSAlfred Perlstein if (!xdr_pointer(xdrs, (char **)&objp->next, 738360efbdSAlfred Perlstein sizeof (rpcbs_addrlist), 748360efbdSAlfred Perlstein (xdrproc_t)xdr_rpcbs_addrlist)) { 758360efbdSAlfred Perlstein return (FALSE); 768360efbdSAlfred Perlstein } 778360efbdSAlfred Perlstein 788360efbdSAlfred Perlstein return (TRUE); 798360efbdSAlfred Perlstein } 808360efbdSAlfred Perlstein 818360efbdSAlfred Perlstein /* Link list of all the stats about rmtcall */ 828360efbdSAlfred Perlstein 838360efbdSAlfred Perlstein bool_t 848360efbdSAlfred Perlstein xdr_rpcbs_rmtcalllist(xdrs, objp) 858360efbdSAlfred Perlstein XDR *xdrs; 868360efbdSAlfred Perlstein rpcbs_rmtcalllist *objp; 878360efbdSAlfred Perlstein { 888360efbdSAlfred Perlstein int32_t *buf; 898360efbdSAlfred Perlstein 908360efbdSAlfred Perlstein if (xdrs->x_op == XDR_ENCODE) { 918360efbdSAlfred Perlstein buf = XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT); 928360efbdSAlfred Perlstein if (buf == NULL) { 938360efbdSAlfred Perlstein if (!xdr_u_int32_t(xdrs, &objp->prog)) { 948360efbdSAlfred Perlstein return (FALSE); 958360efbdSAlfred Perlstein } 968360efbdSAlfred Perlstein if (!xdr_u_int32_t(xdrs, &objp->vers)) { 978360efbdSAlfred Perlstein return (FALSE); 988360efbdSAlfred Perlstein } 998360efbdSAlfred Perlstein if (!xdr_u_int32_t(xdrs, &objp->proc)) { 1008360efbdSAlfred Perlstein return (FALSE); 1018360efbdSAlfred Perlstein } 1028360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->success)) { 1038360efbdSAlfred Perlstein return (FALSE); 1048360efbdSAlfred Perlstein } 1058360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->failure)) { 1068360efbdSAlfred Perlstein return (FALSE); 1078360efbdSAlfred Perlstein } 1088360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->indirect)) { 1098360efbdSAlfred Perlstein return (FALSE); 1108360efbdSAlfred Perlstein } 1118360efbdSAlfred Perlstein } else { 1128360efbdSAlfred Perlstein IXDR_PUT_U_INT32(buf, objp->prog); 1138360efbdSAlfred Perlstein IXDR_PUT_U_INT32(buf, objp->vers); 1148360efbdSAlfred Perlstein IXDR_PUT_U_INT32(buf, objp->proc); 1158360efbdSAlfred Perlstein IXDR_PUT_INT32(buf, objp->success); 1168360efbdSAlfred Perlstein IXDR_PUT_INT32(buf, objp->failure); 1178360efbdSAlfred Perlstein IXDR_PUT_INT32(buf, objp->indirect); 1188360efbdSAlfred Perlstein } 1198360efbdSAlfred Perlstein if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { 1208360efbdSAlfred Perlstein return (FALSE); 1218360efbdSAlfred Perlstein } 1228360efbdSAlfred Perlstein if (!xdr_pointer(xdrs, (char **)&objp->next, 1238360efbdSAlfred Perlstein sizeof (rpcbs_rmtcalllist), 1248360efbdSAlfred Perlstein (xdrproc_t)xdr_rpcbs_rmtcalllist)) { 1258360efbdSAlfred Perlstein return (FALSE); 1268360efbdSAlfred Perlstein } 1278360efbdSAlfred Perlstein return (TRUE); 1288360efbdSAlfred Perlstein } else if (xdrs->x_op == XDR_DECODE) { 1298360efbdSAlfred Perlstein buf = XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT); 1308360efbdSAlfred Perlstein if (buf == NULL) { 1318360efbdSAlfred Perlstein if (!xdr_u_int32_t(xdrs, &objp->prog)) { 1328360efbdSAlfred Perlstein return (FALSE); 1338360efbdSAlfred Perlstein } 1348360efbdSAlfred Perlstein if (!xdr_u_int32_t(xdrs, &objp->vers)) { 1358360efbdSAlfred Perlstein return (FALSE); 1368360efbdSAlfred Perlstein } 1378360efbdSAlfred Perlstein if (!xdr_u_int32_t(xdrs, &objp->proc)) { 1388360efbdSAlfred Perlstein return (FALSE); 1398360efbdSAlfred Perlstein } 1408360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->success)) { 1418360efbdSAlfred Perlstein return (FALSE); 1428360efbdSAlfred Perlstein } 1438360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->failure)) { 1448360efbdSAlfred Perlstein return (FALSE); 1458360efbdSAlfred Perlstein } 1468360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->indirect)) { 1478360efbdSAlfred Perlstein return (FALSE); 1488360efbdSAlfred Perlstein } 1498360efbdSAlfred Perlstein } else { 1508360efbdSAlfred Perlstein objp->prog = (rpcprog_t)IXDR_GET_U_INT32(buf); 1518360efbdSAlfred Perlstein objp->vers = (rpcvers_t)IXDR_GET_U_INT32(buf); 1528360efbdSAlfred Perlstein objp->proc = (rpcproc_t)IXDR_GET_U_INT32(buf); 1538360efbdSAlfred Perlstein objp->success = (int)IXDR_GET_INT32(buf); 1548360efbdSAlfred Perlstein objp->failure = (int)IXDR_GET_INT32(buf); 1558360efbdSAlfred Perlstein objp->indirect = (int)IXDR_GET_INT32(buf); 1568360efbdSAlfred Perlstein } 1578360efbdSAlfred Perlstein if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { 1588360efbdSAlfred Perlstein return (FALSE); 1598360efbdSAlfred Perlstein } 1608360efbdSAlfred Perlstein if (!xdr_pointer(xdrs, (char **)&objp->next, 1618360efbdSAlfred Perlstein sizeof (rpcbs_rmtcalllist), 1628360efbdSAlfred Perlstein (xdrproc_t)xdr_rpcbs_rmtcalllist)) { 1638360efbdSAlfred Perlstein return (FALSE); 1648360efbdSAlfred Perlstein } 1658360efbdSAlfred Perlstein return (TRUE); 1668360efbdSAlfred Perlstein } 1678360efbdSAlfred Perlstein if (!xdr_u_int32_t(xdrs, &objp->prog)) { 1688360efbdSAlfred Perlstein return (FALSE); 1698360efbdSAlfred Perlstein } 1708360efbdSAlfred Perlstein if (!xdr_u_int32_t(xdrs, &objp->vers)) { 1718360efbdSAlfred Perlstein return (FALSE); 1728360efbdSAlfred Perlstein } 1738360efbdSAlfred Perlstein if (!xdr_u_int32_t(xdrs, &objp->proc)) { 1748360efbdSAlfred Perlstein return (FALSE); 1758360efbdSAlfred Perlstein } 1768360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->success)) { 1778360efbdSAlfred Perlstein return (FALSE); 1788360efbdSAlfred Perlstein } 1798360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->failure)) { 1808360efbdSAlfred Perlstein return (FALSE); 1818360efbdSAlfred Perlstein } 1828360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->indirect)) { 1838360efbdSAlfred Perlstein return (FALSE); 1848360efbdSAlfred Perlstein } 1858360efbdSAlfred Perlstein if (!xdr_string(xdrs, &objp->netid, (u_int)~0)) { 1868360efbdSAlfred Perlstein return (FALSE); 1878360efbdSAlfred Perlstein } 1888360efbdSAlfred Perlstein if (!xdr_pointer(xdrs, (char **)&objp->next, 1898360efbdSAlfred Perlstein sizeof (rpcbs_rmtcalllist), 1908360efbdSAlfred Perlstein (xdrproc_t)xdr_rpcbs_rmtcalllist)) { 1918360efbdSAlfred Perlstein return (FALSE); 1928360efbdSAlfred Perlstein } 1938360efbdSAlfred Perlstein return (TRUE); 1948360efbdSAlfred Perlstein } 1958360efbdSAlfred Perlstein 1968360efbdSAlfred Perlstein bool_t 1978360efbdSAlfred Perlstein xdr_rpcbs_proc(xdrs, objp) 1988360efbdSAlfred Perlstein XDR *xdrs; 1998360efbdSAlfred Perlstein rpcbs_proc objp; 2008360efbdSAlfred Perlstein { 2018360efbdSAlfred Perlstein if (!xdr_vector(xdrs, (char *)(void *)objp, RPCBSTAT_HIGHPROC, 2028360efbdSAlfred Perlstein sizeof (int), (xdrproc_t)xdr_int)) { 2038360efbdSAlfred Perlstein return (FALSE); 2048360efbdSAlfred Perlstein } 2058360efbdSAlfred Perlstein return (TRUE); 2068360efbdSAlfred Perlstein } 2078360efbdSAlfred Perlstein 2088360efbdSAlfred Perlstein bool_t 2098360efbdSAlfred Perlstein xdr_rpcbs_addrlist_ptr(xdrs, objp) 2108360efbdSAlfred Perlstein XDR *xdrs; 2118360efbdSAlfred Perlstein rpcbs_addrlist_ptr *objp; 2128360efbdSAlfred Perlstein { 2138360efbdSAlfred Perlstein if (!xdr_pointer(xdrs, (char **)objp, sizeof (rpcbs_addrlist), 2148360efbdSAlfred Perlstein (xdrproc_t)xdr_rpcbs_addrlist)) { 2158360efbdSAlfred Perlstein return (FALSE); 2168360efbdSAlfred Perlstein } 2178360efbdSAlfred Perlstein return (TRUE); 2188360efbdSAlfred Perlstein } 2198360efbdSAlfred Perlstein 2208360efbdSAlfred Perlstein bool_t 2218360efbdSAlfred Perlstein xdr_rpcbs_rmtcalllist_ptr(xdrs, objp) 2228360efbdSAlfred Perlstein XDR *xdrs; 2238360efbdSAlfred Perlstein rpcbs_rmtcalllist_ptr *objp; 2248360efbdSAlfred Perlstein { 2258360efbdSAlfred Perlstein if (!xdr_pointer(xdrs, (char **)objp, sizeof (rpcbs_rmtcalllist), 2268360efbdSAlfred Perlstein (xdrproc_t)xdr_rpcbs_rmtcalllist)) { 2278360efbdSAlfred Perlstein return (FALSE); 2288360efbdSAlfred Perlstein } 2298360efbdSAlfred Perlstein return (TRUE); 2308360efbdSAlfred Perlstein } 2318360efbdSAlfred Perlstein 2328360efbdSAlfred Perlstein bool_t 2338360efbdSAlfred Perlstein xdr_rpcb_stat(xdrs, objp) 2348360efbdSAlfred Perlstein XDR *xdrs; 2358360efbdSAlfred Perlstein rpcb_stat *objp; 2368360efbdSAlfred Perlstein { 2378360efbdSAlfred Perlstein 2388360efbdSAlfred Perlstein if (!xdr_rpcbs_proc(xdrs, objp->info)) { 2398360efbdSAlfred Perlstein return (FALSE); 2408360efbdSAlfred Perlstein } 2418360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->setinfo)) { 2428360efbdSAlfred Perlstein return (FALSE); 2438360efbdSAlfred Perlstein } 2448360efbdSAlfred Perlstein if (!xdr_int(xdrs, &objp->unsetinfo)) { 2458360efbdSAlfred Perlstein return (FALSE); 2468360efbdSAlfred Perlstein } 2478360efbdSAlfred Perlstein if (!xdr_rpcbs_addrlist_ptr(xdrs, &objp->addrinfo)) { 2488360efbdSAlfred Perlstein return (FALSE); 2498360efbdSAlfred Perlstein } 250988553e9SAlfred Perlstein if (!xdr_rpcbs_rmtcalllist_ptr(xdrs, &objp->rmtinfo)) { 251988553e9SAlfred Perlstein return (FALSE); 252988553e9SAlfred Perlstein } 2538360efbdSAlfred Perlstein return (TRUE); 2548360efbdSAlfred Perlstein } 2558360efbdSAlfred Perlstein 2568360efbdSAlfred Perlstein /* 2578360efbdSAlfred Perlstein * One rpcb_stat structure is returned for each version of rpcbind 2588360efbdSAlfred Perlstein * being monitored. 2598360efbdSAlfred Perlstein */ 2608360efbdSAlfred Perlstein bool_t 2618360efbdSAlfred Perlstein xdr_rpcb_stat_byvers(xdrs, objp) 2628360efbdSAlfred Perlstein XDR *xdrs; 2638360efbdSAlfred Perlstein rpcb_stat_byvers objp; 2648360efbdSAlfred Perlstein { 2658360efbdSAlfred Perlstein if (!xdr_vector(xdrs, (char *)(void *)objp, RPCBVERS_STAT, 2668360efbdSAlfred Perlstein sizeof (rpcb_stat), (xdrproc_t)xdr_rpcb_stat)) { 2678360efbdSAlfred Perlstein return (FALSE); 2688360efbdSAlfred Perlstein } 2698360efbdSAlfred Perlstein return (TRUE); 2708360efbdSAlfred Perlstein } 271