138494Sobrien/* 2174294Sobrien * Copyright (c) 1997-2006 Erez Zadok 338494Sobrien * Copyright (c) 1990 Jan-Simon Pendry 438494Sobrien * Copyright (c) 1990 Imperial College of Science, Technology & Medicine 538494Sobrien * Copyright (c) 1990 The Regents of the University of California. 638494Sobrien * All rights reserved. 738494Sobrien * 838494Sobrien * This code is derived from software contributed to Berkeley by 938494Sobrien * Jan-Simon Pendry at Imperial College, London. 1038494Sobrien * 1138494Sobrien * Redistribution and use in source and binary forms, with or without 1238494Sobrien * modification, are permitted provided that the following conditions 1338494Sobrien * are met: 1438494Sobrien * 1. Redistributions of source code must retain the above copyright 1538494Sobrien * notice, this list of conditions and the following disclaimer. 1638494Sobrien * 2. Redistributions in binary form must reproduce the above copyright 1738494Sobrien * notice, this list of conditions and the following disclaimer in the 1838494Sobrien * documentation and/or other materials provided with the distribution. 1938494Sobrien * 3. All advertising materials mentioning features or use of this software 2042629Sobrien * must display the following acknowledgment: 2138494Sobrien * This product includes software developed by the University of 2238494Sobrien * California, Berkeley and its contributors. 2338494Sobrien * 4. Neither the name of the University nor the names of its contributors 2438494Sobrien * may be used to endorse or promote products derived from this software 2538494Sobrien * without specific prior written permission. 2638494Sobrien * 2738494Sobrien * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 2838494Sobrien * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2938494Sobrien * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 3038494Sobrien * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 3138494Sobrien * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 3238494Sobrien * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 3338494Sobrien * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 3438494Sobrien * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 3538494Sobrien * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 3638494Sobrien * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3738494Sobrien * SUCH DAMAGE. 3838494Sobrien * 3938494Sobrien * 40174294Sobrien * File: am-utils/amq/amq_xdr.c 4138494Sobrien * 4238494Sobrien */ 4338494Sobrien 4438494Sobrien#ifdef HAVE_CONFIG_H 4538494Sobrien# include <config.h> 4638494Sobrien#endif /* HAVE_CONFIG_H */ 4738494Sobrien#include <am_defs.h> 4838494Sobrien#include <amq.h> 4938494Sobrien 5038494Sobrien 5138494Sobrienbool_t 5238494Sobrienxdr_time_type(XDR *xdrs, time_type *objp) 5338494Sobrien{ 5438494Sobrien if (!xdr_long(xdrs, (long *) objp)) { 5538494Sobrien return (FALSE); 5638494Sobrien } 5738494Sobrien return (TRUE); 5838494Sobrien} 5938494Sobrien 6038494Sobrien 6138494Sobrienbool_t 6238494Sobrienxdr_amq_mount_tree(XDR *xdrs, amq_mount_tree *objp) 6338494Sobrien{ 6438494Sobrien 6538494Sobrien if (!xdr_amq_string(xdrs, &objp->mt_mountinfo)) { 6638494Sobrien return (FALSE); 6738494Sobrien } 6838494Sobrien 6938494Sobrien if (!xdr_amq_string(xdrs, &objp->mt_directory)) { 7038494Sobrien return (FALSE); 7138494Sobrien } 7238494Sobrien 7338494Sobrien if (!xdr_amq_string(xdrs, &objp->mt_mountpoint)) { 7438494Sobrien return (FALSE); 7538494Sobrien } 7638494Sobrien 7738494Sobrien if (!xdr_amq_string(xdrs, &objp->mt_type)) { 7838494Sobrien return (FALSE); 7938494Sobrien } 8038494Sobrien 8138494Sobrien if (!xdr_time_type(xdrs, &objp->mt_mounttime)) { 8238494Sobrien return (FALSE); 8338494Sobrien } 8438494Sobrien 8538494Sobrien if (!xdr_u_short(xdrs, &objp->mt_mountuid)) { 8638494Sobrien return (FALSE); 8738494Sobrien } 8838494Sobrien 8938494Sobrien if (!xdr_int(xdrs, &objp->mt_getattr)) { 9038494Sobrien return (FALSE); 9138494Sobrien } 9238494Sobrien 9338494Sobrien if (!xdr_int(xdrs, &objp->mt_lookup)) { 9438494Sobrien return (FALSE); 9538494Sobrien } 9638494Sobrien 9738494Sobrien if (!xdr_int(xdrs, &objp->mt_readdir)) { 9838494Sobrien return (FALSE); 9938494Sobrien } 10038494Sobrien 10138494Sobrien if (!xdr_int(xdrs, &objp->mt_readlink)) { 10238494Sobrien return (FALSE); 10338494Sobrien } 10438494Sobrien 10538494Sobrien if (!xdr_int(xdrs, &objp->mt_statfs)) { 10638494Sobrien return (FALSE); 10738494Sobrien } 10838494Sobrien 109174294Sobrien if (!xdr_pointer(xdrs, 110174294Sobrien (char **) ((voidp) &objp->mt_next), 111174294Sobrien sizeof(amq_mount_tree), 112174294Sobrien (XDRPROC_T_TYPE) xdr_amq_mount_tree)) { 11338494Sobrien return (FALSE); 11438494Sobrien } 11538494Sobrien 116174294Sobrien if (!xdr_pointer(xdrs, 117174294Sobrien (char **) ((voidp) &objp->mt_child), 118174294Sobrien sizeof(amq_mount_tree), 119174294Sobrien (XDRPROC_T_TYPE) xdr_amq_mount_tree)) { 12038494Sobrien return (FALSE); 12138494Sobrien } 12238494Sobrien 12338494Sobrien return (TRUE); 12438494Sobrien} 12538494Sobrien 12638494Sobrien 12738494Sobrienbool_t 12838494Sobrienxdr_amq_mount_tree_p(XDR *xdrs, amq_mount_tree_p *objp) 12938494Sobrien{ 130174294Sobrien if (!xdr_pointer(xdrs, 131174294Sobrien (char **) objp, 132174294Sobrien sizeof(amq_mount_tree), 133174294Sobrien (XDRPROC_T_TYPE) xdr_amq_mount_tree)) { 13438494Sobrien return (FALSE); 13538494Sobrien } 13638494Sobrien return (TRUE); 13738494Sobrien} 13838494Sobrien 13938494Sobrien 14038494Sobrienbool_t 14138494Sobrienxdr_amq_mount_info(XDR *xdrs, amq_mount_info *objp) 14238494Sobrien{ 14338494Sobrien 14438494Sobrien if (!xdr_amq_string(xdrs, &objp->mi_type)) { 14538494Sobrien return (FALSE); 14638494Sobrien } 14738494Sobrien 14838494Sobrien if (!xdr_amq_string(xdrs, &objp->mi_mountpt)) { 14938494Sobrien return (FALSE); 15038494Sobrien } 15138494Sobrien 15238494Sobrien if (!xdr_amq_string(xdrs, &objp->mi_mountinfo)) { 15338494Sobrien return (FALSE); 15438494Sobrien } 15538494Sobrien 15638494Sobrien if (!xdr_amq_string(xdrs, &objp->mi_fserver)) { 15738494Sobrien return (FALSE); 15838494Sobrien } 15938494Sobrien 16038494Sobrien if (!xdr_int(xdrs, &objp->mi_error)) { 16138494Sobrien return (FALSE); 16238494Sobrien } 16338494Sobrien 16438494Sobrien if (!xdr_int(xdrs, &objp->mi_refc)) { 16538494Sobrien return (FALSE); 16638494Sobrien } 16738494Sobrien 16838494Sobrien if (!xdr_int(xdrs, &objp->mi_up)) { 16938494Sobrien return (FALSE); 17038494Sobrien } 17138494Sobrien 17238494Sobrien return (TRUE); 17338494Sobrien} 17438494Sobrien 17538494Sobrien 17638494Sobrienbool_t 17738494Sobrienxdr_amq_mount_info_list(XDR *xdrs, amq_mount_info_list *objp) 17838494Sobrien{ 17938494Sobrien if (!xdr_array(xdrs, 180174294Sobrien (char **) ((voidp) &objp->amq_mount_info_list_val), 18138494Sobrien (u_int *) &objp->amq_mount_info_list_len, 18238494Sobrien ~0, 18338494Sobrien sizeof(amq_mount_info), 18438494Sobrien (XDRPROC_T_TYPE) xdr_amq_mount_info)) { 18538494Sobrien return (FALSE); 18638494Sobrien } 18738494Sobrien return (TRUE); 18838494Sobrien} 18938494Sobrien 19038494Sobrien 19138494Sobrienbool_t 19238494Sobrienxdr_amq_mount_tree_list(XDR *xdrs, amq_mount_tree_list *objp) 19338494Sobrien{ 19438494Sobrien if (!xdr_array(xdrs, 195174294Sobrien (char **) ((voidp) &objp->amq_mount_tree_list_val), 19638494Sobrien (u_int *) &objp->amq_mount_tree_list_len, 19738494Sobrien ~0, 19838494Sobrien sizeof(amq_mount_tree_p), 19938494Sobrien (XDRPROC_T_TYPE) xdr_amq_mount_tree_p)) { 20038494Sobrien return (FALSE); 20138494Sobrien } 20238494Sobrien return (TRUE); 20338494Sobrien} 20438494Sobrien 20538494Sobrien 20638494Sobrienbool_t 20738494Sobrienxdr_amq_mount_stats(XDR *xdrs, amq_mount_stats *objp) 20838494Sobrien{ 20938494Sobrien 21038494Sobrien if (!xdr_int(xdrs, &objp->as_drops)) { 21138494Sobrien return (FALSE); 21238494Sobrien } 21338494Sobrien 21438494Sobrien if (!xdr_int(xdrs, &objp->as_stale)) { 21538494Sobrien return (FALSE); 21638494Sobrien } 21738494Sobrien 21838494Sobrien if (!xdr_int(xdrs, &objp->as_mok)) { 21938494Sobrien return (FALSE); 22038494Sobrien } 22138494Sobrien 22238494Sobrien if (!xdr_int(xdrs, &objp->as_merr)) { 22338494Sobrien return (FALSE); 22438494Sobrien } 22538494Sobrien 22638494Sobrien if (!xdr_int(xdrs, &objp->as_uerr)) { 22738494Sobrien return (FALSE); 22838494Sobrien } 22938494Sobrien 23038494Sobrien return (TRUE); 23138494Sobrien} 23238494Sobrien 23338494Sobrien 23438494Sobrienbool_t 23538494Sobrienxdr_amq_opt(XDR *xdrs, amq_opt *objp) 23638494Sobrien{ 23738494Sobrien if (!xdr_enum(xdrs, (enum_t *) objp)) { 23838494Sobrien return (FALSE); 23938494Sobrien } 24038494Sobrien return (TRUE); 24138494Sobrien} 24238494Sobrien 24338494Sobrien 24438494Sobrienbool_t 24538494Sobrienxdr_amq_setopt(XDR *xdrs, amq_setopt *objp) 24638494Sobrien{ 24738494Sobrien 24838494Sobrien if (!xdr_amq_opt(xdrs, &objp->as_opt)) { 24938494Sobrien return (FALSE); 25038494Sobrien } 25138494Sobrien 25238494Sobrien if (!xdr_amq_string(xdrs, &objp->as_str)) { 25338494Sobrien return (FALSE); 25438494Sobrien } 25538494Sobrien 25638494Sobrien return (TRUE); 25738494Sobrien} 25838494Sobrien 25938494Sobrien 26038494Sobrienbool_t 26138494Sobrienxdr_pri_free(XDRPROC_T_TYPE xdr_args, caddr_t args_ptr) 26238494Sobrien{ 26338494Sobrien XDR xdr; 26438494Sobrien 26538494Sobrien xdr.x_op = XDR_FREE; 26638494Sobrien return ((*xdr_args) (&xdr, (caddr_t *) args_ptr)); 26738494Sobrien} 268