[PATCH] Remote 2/8: Client-server protocol (updated)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Richard W.M. Jones wrote:
2 Client-server protocol
------------------------

A qemud/remote_protocol.x
A qemud/rpcgen_fix.pl
A qemud/remote_protocol.c
A qemud/remote_protocol.h

These are the additional files required to describe the XDR-based protocol for client-server communications, with the homebrew RPC mechanism on top. The first file is the protocol itself.

The second file is a Perl script to run after rpcgen which allows the code to compile with -Wall -Werror -fstrict-aliasing, and fixes a 64 bit bug (that fix really should go upstream BTW). The strict-aliasing issue isn't fully fixed yet - I expect that eventually we should compile remote_protocol.c with -fno-strict-aliasing, for safety. Daniel Veillard also asked that this be rewritten in Python (pah!) which I might do at the same time.

The last two files are the actual rpcgen-generated rpcgen_fix-fixed code. I put these two files into EXTRA_DIST because I feel that people shouldn't be required to have rpcgen & Perl just to compile libvirt. (These files are arch-independent so there is no need to recompile them unless remote_protocol.x itself changes).

Rich.

--
Emerging Technologies, Red Hat  http://et.redhat.com/~rjones/
64 Baker Street, London, W1U 7DF     Mobile: +44 7866 314 421

Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod
Street, Windsor, Berkshire, SL4 1TE, United Kingdom.
Registered in England and Wales under Company Registration No. 3798903
Directors: Michael Cunningham (USA), Charlie Peters (USA) and David
Owens (Ireland)
/* -*- c -*-
 * remote_protocol.x: private protocol for communicating between
 *   remote_internal driver and libvirtd.  This protocol is
 *   internal and may change at any time.
 *
 * Copyright (C) 2006-2007 Red Hat, Inc.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
 *
 * Author: Richard Jones <rjones@xxxxxxxxxx>
 */

/* Notes:
 *
 * (1) The protocol is internal and may change at any time, without
 * notice.  Do not use it.  Instead link to libvirt and use the remote
 * driver.
 *
 * (2) See bottom of this file for a description of the home-brew RPC.
 *
 * (3) Authentication/encryption is done outside this protocol.
 *
 * (4) For namespace reasons, all exported names begin 'remote_' or
 * 'REMOTE_'.  This makes names quite long.
 */

%#include "libvirt/libvirt.h"

/*----- Data types. -----*/

/* Maximum total message size (serialised). */
const REMOTE_MESSAGE_MAX = 262144;

/* Length of long, but not unbounded, strings.
 * This is an arbitrary limit designed to stop the decoder from trying
 * to allocate unbounded amounts of memory when fed with a bad message.
 */
const REMOTE_STRING_MAX = 65536;

/* A long string, which may NOT be NULL. */
typedef string remote_nonnull_string<REMOTE_STRING_MAX>;

/* A long string, which may be NULL. */
typedef remote_nonnull_string *remote_string;

/* This just places an upper limit on the length of lists of
 * domain IDs which may be sent via the protocol.
 */
const REMOTE_DOMAIN_ID_LIST_MAX = 16384;

/* Upper limit on lists of domain names. */
const REMOTE_DOMAIN_NAME_LIST_MAX = 1024;

/* Upper limit on cpumap (bytes) passed to virDomainPinVcpu. */
const REMOTE_CPUMAP_MAX = 256;

/* Upper limit on number of info fields returned by virDomainGetVcpus. */
const REMOTE_VCPUINFO_MAX = 2048;

/* Upper limit on cpumaps (bytes) passed to virDomainGetVcpus. */
const REMOTE_CPUMAPS_MAX = 16384;

/* Upper limit on lists of network names. */
const REMOTE_NETWORK_NAME_LIST_MAX = 256;

/* UUID.  VIR_UUID_BUFLEN definition comes from libvirt.h */
typedef opaque remote_uuid[VIR_UUID_BUFLEN];

/* A domain which may not be NULL. */
struct remote_nonnull_domain {
    remote_nonnull_string name;
    remote_uuid uuid;
    int id;
};

/* A network which may not be NULL. */
struct remote_nonnull_network {
    remote_nonnull_string name;
    remote_uuid uuid;
};

/* A domain or network which may be NULL. */
typedef remote_nonnull_domain *remote_domain;
typedef remote_nonnull_network *remote_network;

/* Error message. See <virterror.h> for explanation of fields. */

/* NB. Fields "code", "domain" and "level" are really enums.  The
 * numeric value should remain compatible between libvirt and
 * libvirtd.  This means, no changing or reordering the enums as
 * defined in <virterror.h> (but we don't do that anyway, for separate
 * ABI reasons).
 */
struct remote_error {
    int code;
    int domain;
    remote_string message;
    int level;
    remote_domain dom;
    remote_string str1;
    remote_string str2;
    remote_string str3;
    int int1;
    int int2;
    remote_network net;
};

/* Wire encoding of virVcpuInfo. */
struct remote_vcpu_info {
    unsigned int number;
    int state;
    unsigned hyper cpu_time;
    int cpu;
};

/*----- Calls. -----*/

/* For each call we may have a 'remote_CALL_args' and 'remote_CALL_ret'
 * type.  These are omitted when they are void.  The virConnectPtr
 * is not passed at all (it is inferred on the remote server from the
 * connection).  Errors are returned implicitly in the RPC protocol.
 *
 * Please follow the naming convention carefully - this file is
 * parsed by 'remote_generate_stubs.pl'.
 */

struct remote_open_args {
    /* NB. "name" might be NULL although in practice you can't
     * yet do that using the remote_internal driver.
     */
    remote_string name;
    int flags;
};

struct remote_get_type_ret {
    remote_nonnull_string type;
};

struct remote_get_version_ret {
    hyper hv_ver;
};

struct remote_get_max_vcpus_args {
    /* The only backend which supports this call is Xen HV, and
     * there the type is ignored so it could be NULL.
     */
    remote_string type;
};

struct remote_get_max_vcpus_ret {
    int max_vcpus;
};

struct remote_node_get_info_ret {
    char model[32];
    hyper memory;
    int cpus;
    int mhz;
    int nodes;
    int sockets;
    int cores;
    int threads;
};

struct remote_get_capabilities_ret {
    remote_nonnull_string capabilities;
};

struct remote_list_domains_args {
    int maxids;
};

struct remote_list_domains_ret {
    int ids<REMOTE_DOMAIN_ID_LIST_MAX>;
};

struct remote_num_of_domains_ret {
    int num;
};

struct remote_domain_create_linux_args {
    remote_nonnull_string xml_desc;
    int flags;
};

struct remote_domain_create_linux_ret {
    remote_nonnull_domain dom;
};

struct remote_domain_lookup_by_id_args {
    int id;
};

struct remote_domain_lookup_by_id_ret {
    /* XXX "Not found" semantic is ill-defined. */
    remote_nonnull_domain dom;
};

struct remote_domain_lookup_by_uuid_args {
    remote_uuid uuid;
};

struct remote_domain_lookup_by_uuid_ret {
    /* XXX "Not found" semantic is ill-defined. */
    remote_nonnull_domain dom;
};

struct remote_domain_lookup_by_name_args {
    remote_nonnull_string name;
};

struct remote_domain_lookup_by_name_ret {
    /* XXX "Not found" semantic is ill-defined. */
    remote_nonnull_domain dom;
};

struct remote_domain_suspend_args {
    remote_nonnull_domain dom;
};

struct remote_domain_resume_args {
    remote_nonnull_domain dom;
};

struct remote_domain_shutdown_args {
    remote_nonnull_domain dom;
};

struct remote_domain_reboot_args {
    remote_nonnull_domain dom;
    int flags;
};

struct remote_domain_destroy_args {
    remote_nonnull_domain dom;
};

struct remote_domain_get_os_type_args {
    remote_nonnull_domain dom;
};

struct remote_domain_get_os_type_ret {
    remote_nonnull_string type;
};

struct remote_domain_get_max_memory_args {
    remote_nonnull_domain dom;
};

struct remote_domain_get_max_memory_ret {
    unsigned hyper memory;
};

struct remote_domain_set_max_memory_args {
    remote_nonnull_domain dom;
    unsigned hyper memory;
};

struct remote_domain_set_memory_args {
    remote_nonnull_domain dom;
    unsigned hyper memory;
};

struct remote_domain_get_info_args {
    remote_nonnull_domain dom;
};

struct remote_domain_get_info_ret {
    unsigned char state;
    unsigned hyper max_mem;
    unsigned hyper memory;
    unsigned short nr_virt_cpu;
    /* XXX cpu_time is declared as unsigned long long */
    unsigned hyper cpu_time;
};

struct remote_domain_save_args {
    remote_nonnull_domain dom;
    remote_nonnull_string to;
};

struct remote_domain_restore_args {
    remote_nonnull_string from;
};

struct remote_domain_core_dump_args {
    remote_nonnull_domain dom;
    remote_nonnull_string to;
    int flags;
};

struct remote_domain_dump_xml_args {
    remote_nonnull_domain dom;
    int flags;
};

struct remote_domain_dump_xml_ret {
    remote_nonnull_string xml;
};

struct remote_list_defined_domains_args {
    int maxnames;
};

struct remote_list_defined_domains_ret {
    remote_nonnull_string names<REMOTE_DOMAIN_NAME_LIST_MAX>;
};

struct remote_num_of_defined_domains_ret {
    int num;
};

struct remote_domain_create_args {
    remote_nonnull_domain dom;
};

struct remote_domain_define_xml_args {
    remote_nonnull_string xml;
};

struct remote_domain_define_xml_ret {
    remote_nonnull_domain dom;
};

struct remote_domain_undefine_args {
    remote_nonnull_domain dom;
};

struct remote_domain_set_vcpus_args {
    remote_nonnull_domain dom;
    int nvcpus;
};

struct remote_domain_pin_vcpu_args {
    remote_nonnull_domain dom;
    int vcpu;
    opaque cpumap<REMOTE_CPUMAP_MAX>;
};

struct remote_domain_get_vcpus_args {
    remote_nonnull_domain dom;
    int maxinfo;
    int maplen;
};

struct remote_domain_get_vcpus_ret {
    remote_vcpu_info info<REMOTE_VCPUINFO_MAX>;
    opaque cpumaps<REMOTE_CPUMAPS_MAX>;
};

struct remote_domain_get_max_vcpus_args {
    remote_nonnull_domain dom;
};

struct remote_domain_get_max_vcpus_ret {
    int num;
};

struct remote_domain_attach_device_args {
    remote_nonnull_domain dom;
    remote_nonnull_string xml;
};

struct remote_domain_detach_device_args {
    remote_nonnull_domain dom;
    remote_nonnull_string xml;
};

struct remote_domain_get_autostart_args {
    remote_nonnull_domain dom;
};

struct remote_domain_get_autostart_ret {
    int autostart;
};

struct remote_domain_set_autostart_args {
    remote_nonnull_domain dom;
    int autostart;
};

/* Network calls: */

struct remote_num_of_networks_ret {
    int num;
};

struct remote_list_networks_args {
    int maxnames;
};

struct remote_list_networks_ret {
    remote_nonnull_string names<REMOTE_NETWORK_NAME_LIST_MAX>;
};

struct remote_num_of_defined_networks_ret {
    int num;
};

struct remote_list_defined_networks_args {
    int maxnames;
};

struct remote_list_defined_networks_ret {
    remote_nonnull_string names<REMOTE_NETWORK_NAME_LIST_MAX>;
};

struct remote_network_lookup_by_uuid_args {
    remote_uuid uuid;
};

struct remote_network_lookup_by_uuid_ret {
    /* XXX "Not found" semantic is ill-defined. */
    remote_nonnull_network net;
};

struct remote_network_lookup_by_name_args {
    remote_nonnull_string name;
};

struct remote_network_lookup_by_name_ret {
    /* XXX "Not found" semantic is ill-defined. */
    remote_nonnull_network net;
};

struct remote_network_create_xml_args {
    remote_nonnull_string xml;
};

struct remote_network_create_xml_ret {
    remote_nonnull_network net;
};

struct remote_network_define_xml_args {
    remote_nonnull_string xml;
};

struct remote_network_define_xml_ret {
    remote_nonnull_network net;
};

struct remote_network_undefine_args {
    remote_nonnull_network net;
};

struct remote_network_create_args {
    remote_nonnull_network net;
};

struct remote_network_destroy_args {
    remote_nonnull_network net;
};

struct remote_network_dump_xml_args {
    remote_nonnull_network net;
    int flags;
};

struct remote_network_dump_xml_ret {
    remote_nonnull_string xml;
};

struct remote_network_get_bridge_name_args {
    remote_nonnull_network net;
};

struct remote_network_get_bridge_name_ret {
    remote_nonnull_string name;
};

struct remote_network_get_autostart_args {
    remote_nonnull_network net;
};

struct remote_network_get_autostart_ret {
    int autostart;
};

struct remote_network_set_autostart_args {
    remote_nonnull_network net;
    int autostart;
};

/*----- Protocol. -----*/

/* Define the program number, protocol version and procedure numbers here. */
const REMOTE_PROGRAM = 0x20008086;
const REMOTE_PROTOCOL_VERSION = 1;

enum remote_procedure {
    REMOTE_PROC_OPEN = 1,
    REMOTE_PROC_CLOSE = 2,
    REMOTE_PROC_GET_TYPE = 3,
    REMOTE_PROC_GET_VERSION = 4,
    REMOTE_PROC_GET_MAX_VCPUS = 5,
    REMOTE_PROC_NODE_GET_INFO = 6,
    REMOTE_PROC_GET_CAPABILITIES = 7,
    REMOTE_PROC_DOMAIN_ATTACH_DEVICE = 8,
    REMOTE_PROC_DOMAIN_CREATE = 9,
    REMOTE_PROC_DOMAIN_CREATE_LINUX = 10,
    REMOTE_PROC_DOMAIN_DEFINE_XML = 11,
    REMOTE_PROC_DOMAIN_DESTROY = 12,
    REMOTE_PROC_DOMAIN_DETACH_DEVICE = 13,
    REMOTE_PROC_DOMAIN_DUMP_XML = 14,
    REMOTE_PROC_DOMAIN_GET_AUTOSTART = 15,
    REMOTE_PROC_DOMAIN_GET_INFO = 16,
    REMOTE_PROC_DOMAIN_GET_MAX_MEMORY = 17,
    REMOTE_PROC_DOMAIN_GET_MAX_VCPUS = 18,
    REMOTE_PROC_DOMAIN_GET_OS_TYPE = 19,
    REMOTE_PROC_DOMAIN_GET_VCPUS = 20,
    REMOTE_PROC_LIST_DEFINED_DOMAINS = 21,
    REMOTE_PROC_DOMAIN_LOOKUP_BY_ID = 22,
    REMOTE_PROC_DOMAIN_LOOKUP_BY_NAME = 23,
    REMOTE_PROC_DOMAIN_LOOKUP_BY_UUID = 24,
    REMOTE_PROC_NUM_OF_DEFINED_DOMAINS = 25,
    REMOTE_PROC_DOMAIN_PIN_VCPU = 26,
    REMOTE_PROC_DOMAIN_REBOOT = 27,
    REMOTE_PROC_DOMAIN_RESUME = 28,
    REMOTE_PROC_DOMAIN_SET_AUTOSTART = 29,
    REMOTE_PROC_DOMAIN_SET_MAX_MEMORY = 30,
    REMOTE_PROC_DOMAIN_SET_MEMORY = 31,
    REMOTE_PROC_DOMAIN_SET_VCPUS = 32,
    REMOTE_PROC_DOMAIN_SHUTDOWN = 33,
    REMOTE_PROC_DOMAIN_SUSPEND = 34,
    REMOTE_PROC_DOMAIN_UNDEFINE = 35,
    REMOTE_PROC_LIST_DEFINED_NETWORKS = 36,
    REMOTE_PROC_LIST_DOMAINS = 37,
    REMOTE_PROC_LIST_NETWORKS = 38,
    REMOTE_PROC_NETWORK_CREATE = 39,
    REMOTE_PROC_NETWORK_CREATE_XML = 40,
    REMOTE_PROC_NETWORK_DEFINE_XML = 41,
    REMOTE_PROC_NETWORK_DESTROY = 42,
    REMOTE_PROC_NETWORK_DUMP_XML = 43,
    REMOTE_PROC_NETWORK_GET_AUTOSTART = 44,
    REMOTE_PROC_NETWORK_GET_BRIDGE_NAME = 45,
    REMOTE_PROC_NETWORK_LOOKUP_BY_NAME = 46,
    REMOTE_PROC_NETWORK_LOOKUP_BY_UUID = 47,
    REMOTE_PROC_NETWORK_SET_AUTOSTART = 48,
    REMOTE_PROC_NETWORK_UNDEFINE = 49,
    REMOTE_PROC_NUM_OF_DEFINED_NETWORKS = 50,
    REMOTE_PROC_NUM_OF_DOMAINS = 51,
    REMOTE_PROC_NUM_OF_NETWORKS = 52,
    REMOTE_PROC_DOMAIN_CORE_DUMP = 53,
    REMOTE_PROC_DOMAIN_RESTORE = 54,
    REMOTE_PROC_DOMAIN_SAVE = 55
};

/* Custom RPC structure. */
/* Each message consists of:
 *    int length               Number of bytes in message _including_ length.
 *    remote_message_header    Header.
 * then either: args           Arguments (for REMOTE_CALL).
 *          or: ret            Return (for REMOTE_REPLY, status = REMOTE_OK)
 *          or: remote_error   Error (for REMOTE_REPLY, status = REMOTE_ERROR)
 *
 * The first two words (length, program number) are meant to be compatible
 * with the qemud protocol (qemud/protocol.x), although the rest of the
 * messages are completely different.
 */

enum remote_message_direction {
    REMOTE_CALL = 0,            /* client -> server */
    REMOTE_REPLY = 1,           /* server -> client */
    REMOTE_MESSAGE = 2          /* server -> client, asynchronous [NYI] */
};

enum remote_message_status {
    /* Status is always REMOTE_OK for calls.
     * For replies, indicates no error.
     */
    REMOTE_OK = 0,

    /* For replies, indicates that an error happened, and a struct
     * remote_error follows.
     */
    REMOTE_ERROR = 1
};

struct remote_message_header {
    unsigned prog;              /* REMOTE_PROGRAM */
    unsigned vers;              /* REMOTE_PROTOCOL_VERSION */
    remote_procedure proc;      /* REMOTE_PROC_x */
    remote_message_direction direction;
    unsigned serial;            /* Serial number of message. */
    remote_message_status status;
};


/*
 * vim: set tabstop=4:
 * vim: set shiftwidth=4:
 * vim: set expandtab:
 */
/*
 * Local variables:
 *  indent-tabs-mode: nil
 *  c-indent-level: 4
 *  c-basic-offset: 4
 *  tab-width: 4
 * End:
 */

Attachment: rpcgen_fix.pl
Description: Perl program

/*
 * Please do not edit this file.
 * It was generated using rpcgen.
 */

#include "remote_protocol.h"
#include "libvirt/libvirt.h"

bool_t
xdr_remote_nonnull_string (XDR *xdrs, remote_nonnull_string *objp)
{

	 if (!xdr_string (xdrs, objp, REMOTE_STRING_MAX))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_string (XDR *xdrs, remote_string *objp)
{

	 if (!xdr_pointer (xdrs, (char **)objp, sizeof (remote_nonnull_string), (xdrproc_t) xdr_remote_nonnull_string))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_uuid (XDR *xdrs, remote_uuid objp)
{

	 if (!xdr_opaque (xdrs, objp, VIR_UUID_BUFLEN))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_nonnull_domain (XDR *xdrs, remote_nonnull_domain *objp)
{

	 if (!xdr_remote_nonnull_string (xdrs, &objp->name))
		 return FALSE;
	 if (!xdr_remote_uuid (xdrs, objp->uuid))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->id))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_nonnull_network (XDR *xdrs, remote_nonnull_network *objp)
{

	 if (!xdr_remote_nonnull_string (xdrs, &objp->name))
		 return FALSE;
	 if (!xdr_remote_uuid (xdrs, objp->uuid))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain (XDR *xdrs, remote_domain *objp)
{

	 if (!xdr_pointer (xdrs, (char **)objp, sizeof (remote_nonnull_domain), (xdrproc_t) xdr_remote_nonnull_domain))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_network (XDR *xdrs, remote_network *objp)
{

	 if (!xdr_pointer (xdrs, (char **)objp, sizeof (remote_nonnull_network), (xdrproc_t) xdr_remote_nonnull_network))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_error (XDR *xdrs, remote_error *objp)
{

	 if (!xdr_int (xdrs, &objp->code))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->domain))
		 return FALSE;
	 if (!xdr_remote_string (xdrs, &objp->message))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->level))
		 return FALSE;
	 if (!xdr_remote_domain (xdrs, &objp->dom))
		 return FALSE;
	 if (!xdr_remote_string (xdrs, &objp->str1))
		 return FALSE;
	 if (!xdr_remote_string (xdrs, &objp->str2))
		 return FALSE;
	 if (!xdr_remote_string (xdrs, &objp->str3))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->int1))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->int2))
		 return FALSE;
	 if (!xdr_remote_network (xdrs, &objp->net))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_vcpu_info (XDR *xdrs, remote_vcpu_info *objp)
{

	 if (!xdr_u_int (xdrs, &objp->number))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->state))
		 return FALSE;
	 if (!xdr_u_quad_t (xdrs, &objp->cpu_time))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->cpu))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_open_args (XDR *xdrs, remote_open_args *objp)
{

	 if (!xdr_remote_string (xdrs, &objp->name))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->flags))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_get_type_ret (XDR *xdrs, remote_get_type_ret *objp)
{

	 if (!xdr_remote_nonnull_string (xdrs, &objp->type))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_get_version_ret (XDR *xdrs, remote_get_version_ret *objp)
{

	 if (!xdr_quad_t (xdrs, &objp->hv_ver))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_get_max_vcpus_args (XDR *xdrs, remote_get_max_vcpus_args *objp)
{

	 if (!xdr_remote_string (xdrs, &objp->type))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_get_max_vcpus_ret (XDR *xdrs, remote_get_max_vcpus_ret *objp)
{

	 if (!xdr_int (xdrs, &objp->max_vcpus))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_node_get_info_ret (XDR *xdrs, remote_node_get_info_ret *objp)
{
	register int32_t *buf;


	if (xdrs->x_op == XDR_ENCODE) {
		 if (!xdr_vector (xdrs, (char *)objp->model, 32,
			sizeof (char), (xdrproc_t) xdr_char))
			 return FALSE;
		 if (!xdr_quad_t (xdrs, &objp->memory))
			 return FALSE;
		buf = XDR_INLINE (xdrs, 6 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_int (xdrs, &objp->cpus))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->mhz))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->nodes))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->sockets))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->cores))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->threads))
				 return FALSE;
		} else {
			(void)IXDR_PUT_INT32(buf, objp->cpus);
			(void)IXDR_PUT_INT32(buf, objp->mhz);
			(void)IXDR_PUT_INT32(buf, objp->nodes);
			(void)IXDR_PUT_INT32(buf, objp->sockets);
			(void)IXDR_PUT_INT32(buf, objp->cores);
			(void)IXDR_PUT_INT32(buf, objp->threads);
		}
		return TRUE;
	} else if (xdrs->x_op == XDR_DECODE) {
		 if (!xdr_vector (xdrs, (char *)objp->model, 32,
			sizeof (char), (xdrproc_t) xdr_char))
			 return FALSE;
		 if (!xdr_quad_t (xdrs, &objp->memory))
			 return FALSE;
		buf = XDR_INLINE (xdrs, 6 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_int (xdrs, &objp->cpus))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->mhz))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->nodes))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->sockets))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->cores))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->threads))
				 return FALSE;
		} else {
			objp->cpus = IXDR_GET_LONG(buf);
			objp->mhz = IXDR_GET_LONG(buf);
			objp->nodes = IXDR_GET_LONG(buf);
			objp->sockets = IXDR_GET_LONG(buf);
			objp->cores = IXDR_GET_LONG(buf);
			objp->threads = IXDR_GET_LONG(buf);
		}
	 return TRUE;
	}

	 if (!xdr_vector (xdrs, (char *)objp->model, 32,
		sizeof (char), (xdrproc_t) xdr_char))
		 return FALSE;
	 if (!xdr_quad_t (xdrs, &objp->memory))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->cpus))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->mhz))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->nodes))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->sockets))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->cores))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->threads))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_get_capabilities_ret (XDR *xdrs, remote_get_capabilities_ret *objp)
{

	 if (!xdr_remote_nonnull_string (xdrs, &objp->capabilities))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_list_domains_args (XDR *xdrs, remote_list_domains_args *objp)
{

	 if (!xdr_int (xdrs, &objp->maxids))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_list_domains_ret (XDR *xdrs, remote_list_domains_ret *objp)
{
	char **objp_cpp0 = (char **) (void *) &objp->ids.ids_val;

	 if (!xdr_array (xdrs, objp_cpp0, (u_int *) &objp->ids.ids_len, REMOTE_DOMAIN_ID_LIST_MAX,
		sizeof (int), (xdrproc_t) xdr_int))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_num_of_domains_ret (XDR *xdrs, remote_num_of_domains_ret *objp)
{

	 if (!xdr_int (xdrs, &objp->num))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_create_linux_args (XDR *xdrs, remote_domain_create_linux_args *objp)
{

	 if (!xdr_remote_nonnull_string (xdrs, &objp->xml_desc))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->flags))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_create_linux_ret (XDR *xdrs, remote_domain_create_linux_ret *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_lookup_by_id_args (XDR *xdrs, remote_domain_lookup_by_id_args *objp)
{

	 if (!xdr_int (xdrs, &objp->id))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_lookup_by_id_ret (XDR *xdrs, remote_domain_lookup_by_id_ret *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_lookup_by_uuid_args (XDR *xdrs, remote_domain_lookup_by_uuid_args *objp)
{

	 if (!xdr_remote_uuid (xdrs, objp->uuid))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_lookup_by_uuid_ret (XDR *xdrs, remote_domain_lookup_by_uuid_ret *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_lookup_by_name_args (XDR *xdrs, remote_domain_lookup_by_name_args *objp)
{

	 if (!xdr_remote_nonnull_string (xdrs, &objp->name))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_lookup_by_name_ret (XDR *xdrs, remote_domain_lookup_by_name_ret *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_suspend_args (XDR *xdrs, remote_domain_suspend_args *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_resume_args (XDR *xdrs, remote_domain_resume_args *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_shutdown_args (XDR *xdrs, remote_domain_shutdown_args *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_reboot_args (XDR *xdrs, remote_domain_reboot_args *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->flags))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_destroy_args (XDR *xdrs, remote_domain_destroy_args *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_get_os_type_args (XDR *xdrs, remote_domain_get_os_type_args *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_get_os_type_ret (XDR *xdrs, remote_domain_get_os_type_ret *objp)
{

	 if (!xdr_remote_nonnull_string (xdrs, &objp->type))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_get_max_memory_args (XDR *xdrs, remote_domain_get_max_memory_args *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_get_max_memory_ret (XDR *xdrs, remote_domain_get_max_memory_ret *objp)
{

	 if (!xdr_u_quad_t (xdrs, &objp->memory))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_set_max_memory_args (XDR *xdrs, remote_domain_set_max_memory_args *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	 if (!xdr_u_quad_t (xdrs, &objp->memory))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_set_memory_args (XDR *xdrs, remote_domain_set_memory_args *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	 if (!xdr_u_quad_t (xdrs, &objp->memory))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_get_info_args (XDR *xdrs, remote_domain_get_info_args *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_get_info_ret (XDR *xdrs, remote_domain_get_info_ret *objp)
{

	 if (!xdr_u_char (xdrs, &objp->state))
		 return FALSE;
	 if (!xdr_u_quad_t (xdrs, &objp->max_mem))
		 return FALSE;
	 if (!xdr_u_quad_t (xdrs, &objp->memory))
		 return FALSE;
	 if (!xdr_u_short (xdrs, &objp->nr_virt_cpu))
		 return FALSE;
	 if (!xdr_u_quad_t (xdrs, &objp->cpu_time))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_save_args (XDR *xdrs, remote_domain_save_args *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	 if (!xdr_remote_nonnull_string (xdrs, &objp->to))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_restore_args (XDR *xdrs, remote_domain_restore_args *objp)
{

	 if (!xdr_remote_nonnull_string (xdrs, &objp->from))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_core_dump_args (XDR *xdrs, remote_domain_core_dump_args *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	 if (!xdr_remote_nonnull_string (xdrs, &objp->to))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->flags))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_dump_xml_args (XDR *xdrs, remote_domain_dump_xml_args *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->flags))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_dump_xml_ret (XDR *xdrs, remote_domain_dump_xml_ret *objp)
{

	 if (!xdr_remote_nonnull_string (xdrs, &objp->xml))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_list_defined_domains_args (XDR *xdrs, remote_list_defined_domains_args *objp)
{

	 if (!xdr_int (xdrs, &objp->maxnames))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_list_defined_domains_ret (XDR *xdrs, remote_list_defined_domains_ret *objp)
{
	char **objp_cpp0 = (char **) (void *) &objp->names.names_val;

	 if (!xdr_array (xdrs, objp_cpp0, (u_int *) &objp->names.names_len, REMOTE_DOMAIN_NAME_LIST_MAX,
		sizeof (remote_nonnull_string), (xdrproc_t) xdr_remote_nonnull_string))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_num_of_defined_domains_ret (XDR *xdrs, remote_num_of_defined_domains_ret *objp)
{

	 if (!xdr_int (xdrs, &objp->num))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_create_args (XDR *xdrs, remote_domain_create_args *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_define_xml_args (XDR *xdrs, remote_domain_define_xml_args *objp)
{

	 if (!xdr_remote_nonnull_string (xdrs, &objp->xml))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_define_xml_ret (XDR *xdrs, remote_domain_define_xml_ret *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_undefine_args (XDR *xdrs, remote_domain_undefine_args *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_set_vcpus_args (XDR *xdrs, remote_domain_set_vcpus_args *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->nvcpus))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_pin_vcpu_args (XDR *xdrs, remote_domain_pin_vcpu_args *objp)
{
	char **objp_cpp0 = (char **) (void *) &objp->cpumap.cpumap_val;

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->vcpu))
		 return FALSE;
	 if (!xdr_bytes (xdrs, objp_cpp0, (u_int *) &objp->cpumap.cpumap_len, REMOTE_CPUMAP_MAX))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_get_vcpus_args (XDR *xdrs, remote_domain_get_vcpus_args *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->maxinfo))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->maplen))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_get_vcpus_ret (XDR *xdrs, remote_domain_get_vcpus_ret *objp)
{
	char **objp_cpp0 = (char **) (void *) &objp->info.info_val;
	char **objp_cpp1 = (char **) (void *) &objp->cpumaps.cpumaps_val;

	 if (!xdr_array (xdrs, objp_cpp0, (u_int *) &objp->info.info_len, REMOTE_VCPUINFO_MAX,
		sizeof (remote_vcpu_info), (xdrproc_t) xdr_remote_vcpu_info))
		 return FALSE;
	 if (!xdr_bytes (xdrs, objp_cpp1, (u_int *) &objp->cpumaps.cpumaps_len, REMOTE_CPUMAPS_MAX))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_get_max_vcpus_args (XDR *xdrs, remote_domain_get_max_vcpus_args *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_get_max_vcpus_ret (XDR *xdrs, remote_domain_get_max_vcpus_ret *objp)
{

	 if (!xdr_int (xdrs, &objp->num))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_attach_device_args (XDR *xdrs, remote_domain_attach_device_args *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	 if (!xdr_remote_nonnull_string (xdrs, &objp->xml))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_detach_device_args (XDR *xdrs, remote_domain_detach_device_args *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	 if (!xdr_remote_nonnull_string (xdrs, &objp->xml))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_get_autostart_args (XDR *xdrs, remote_domain_get_autostart_args *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_get_autostart_ret (XDR *xdrs, remote_domain_get_autostart_ret *objp)
{

	 if (!xdr_int (xdrs, &objp->autostart))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_domain_set_autostart_args (XDR *xdrs, remote_domain_set_autostart_args *objp)
{

	 if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->autostart))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_num_of_networks_ret (XDR *xdrs, remote_num_of_networks_ret *objp)
{

	 if (!xdr_int (xdrs, &objp->num))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_list_networks_args (XDR *xdrs, remote_list_networks_args *objp)
{

	 if (!xdr_int (xdrs, &objp->maxnames))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_list_networks_ret (XDR *xdrs, remote_list_networks_ret *objp)
{
	char **objp_cpp0 = (char **) (void *) &objp->names.names_val;

	 if (!xdr_array (xdrs, objp_cpp0, (u_int *) &objp->names.names_len, REMOTE_NETWORK_NAME_LIST_MAX,
		sizeof (remote_nonnull_string), (xdrproc_t) xdr_remote_nonnull_string))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_num_of_defined_networks_ret (XDR *xdrs, remote_num_of_defined_networks_ret *objp)
{

	 if (!xdr_int (xdrs, &objp->num))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_list_defined_networks_args (XDR *xdrs, remote_list_defined_networks_args *objp)
{

	 if (!xdr_int (xdrs, &objp->maxnames))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_list_defined_networks_ret (XDR *xdrs, remote_list_defined_networks_ret *objp)
{
	char **objp_cpp0 = (char **) (void *) &objp->names.names_val;

	 if (!xdr_array (xdrs, objp_cpp0, (u_int *) &objp->names.names_len, REMOTE_NETWORK_NAME_LIST_MAX,
		sizeof (remote_nonnull_string), (xdrproc_t) xdr_remote_nonnull_string))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_network_lookup_by_uuid_args (XDR *xdrs, remote_network_lookup_by_uuid_args *objp)
{

	 if (!xdr_remote_uuid (xdrs, objp->uuid))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_network_lookup_by_uuid_ret (XDR *xdrs, remote_network_lookup_by_uuid_ret *objp)
{

	 if (!xdr_remote_nonnull_network (xdrs, &objp->net))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_network_lookup_by_name_args (XDR *xdrs, remote_network_lookup_by_name_args *objp)
{

	 if (!xdr_remote_nonnull_string (xdrs, &objp->name))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_network_lookup_by_name_ret (XDR *xdrs, remote_network_lookup_by_name_ret *objp)
{

	 if (!xdr_remote_nonnull_network (xdrs, &objp->net))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_network_create_xml_args (XDR *xdrs, remote_network_create_xml_args *objp)
{

	 if (!xdr_remote_nonnull_string (xdrs, &objp->xml))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_network_create_xml_ret (XDR *xdrs, remote_network_create_xml_ret *objp)
{

	 if (!xdr_remote_nonnull_network (xdrs, &objp->net))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_network_define_xml_args (XDR *xdrs, remote_network_define_xml_args *objp)
{

	 if (!xdr_remote_nonnull_string (xdrs, &objp->xml))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_network_define_xml_ret (XDR *xdrs, remote_network_define_xml_ret *objp)
{

	 if (!xdr_remote_nonnull_network (xdrs, &objp->net))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_network_undefine_args (XDR *xdrs, remote_network_undefine_args *objp)
{

	 if (!xdr_remote_nonnull_network (xdrs, &objp->net))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_network_create_args (XDR *xdrs, remote_network_create_args *objp)
{

	 if (!xdr_remote_nonnull_network (xdrs, &objp->net))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_network_destroy_args (XDR *xdrs, remote_network_destroy_args *objp)
{

	 if (!xdr_remote_nonnull_network (xdrs, &objp->net))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_network_dump_xml_args (XDR *xdrs, remote_network_dump_xml_args *objp)
{

	 if (!xdr_remote_nonnull_network (xdrs, &objp->net))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->flags))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_network_dump_xml_ret (XDR *xdrs, remote_network_dump_xml_ret *objp)
{

	 if (!xdr_remote_nonnull_string (xdrs, &objp->xml))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_network_get_bridge_name_args (XDR *xdrs, remote_network_get_bridge_name_args *objp)
{

	 if (!xdr_remote_nonnull_network (xdrs, &objp->net))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_network_get_bridge_name_ret (XDR *xdrs, remote_network_get_bridge_name_ret *objp)
{

	 if (!xdr_remote_nonnull_string (xdrs, &objp->name))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_network_get_autostart_args (XDR *xdrs, remote_network_get_autostart_args *objp)
{

	 if (!xdr_remote_nonnull_network (xdrs, &objp->net))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_network_get_autostart_ret (XDR *xdrs, remote_network_get_autostart_ret *objp)
{

	 if (!xdr_int (xdrs, &objp->autostart))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_network_set_autostart_args (XDR *xdrs, remote_network_set_autostart_args *objp)
{

	 if (!xdr_remote_nonnull_network (xdrs, &objp->net))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->autostart))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_procedure (XDR *xdrs, remote_procedure *objp)
{

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_message_direction (XDR *xdrs, remote_message_direction *objp)
{

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_message_status (XDR *xdrs, remote_message_status *objp)
{

	 if (!xdr_enum (xdrs, (enum_t *) objp))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_remote_message_header (XDR *xdrs, remote_message_header *objp)
{

	 if (!xdr_u_int (xdrs, &objp->prog))
		 return FALSE;
	 if (!xdr_u_int (xdrs, &objp->vers))
		 return FALSE;
	 if (!xdr_remote_procedure (xdrs, &objp->proc))
		 return FALSE;
	 if (!xdr_remote_message_direction (xdrs, &objp->direction))
		 return FALSE;
	 if (!xdr_u_int (xdrs, &objp->serial))
		 return FALSE;
	 if (!xdr_remote_message_status (xdrs, &objp->status))
		 return FALSE;
	return TRUE;
}
/*
 * Please do not edit this file.
 * It was generated using rpcgen.
 */

#ifndef _REMOTE_PROTOCOL_H_RPCGEN
#define _REMOTE_PROTOCOL_H_RPCGEN

#include <rpc/rpc.h>


#ifdef __cplusplus
extern "C" {
#endif

#include "libvirt/libvirt.h"
#define REMOTE_MESSAGE_MAX 262144
#define REMOTE_STRING_MAX 65536

typedef char *remote_nonnull_string;

typedef remote_nonnull_string *remote_string;
#define REMOTE_DOMAIN_ID_LIST_MAX 16384
#define REMOTE_DOMAIN_NAME_LIST_MAX 1024
#define REMOTE_CPUMAP_MAX 256
#define REMOTE_VCPUINFO_MAX 2048
#define REMOTE_CPUMAPS_MAX 16384
#define REMOTE_NETWORK_NAME_LIST_MAX 256

typedef char remote_uuid[VIR_UUID_BUFLEN];

struct remote_nonnull_domain {
	remote_nonnull_string name;
	remote_uuid uuid;
	int id;
};
typedef struct remote_nonnull_domain remote_nonnull_domain;

struct remote_nonnull_network {
	remote_nonnull_string name;
	remote_uuid uuid;
};
typedef struct remote_nonnull_network remote_nonnull_network;

typedef remote_nonnull_domain *remote_domain;

typedef remote_nonnull_network *remote_network;

struct remote_error {
	int code;
	int domain;
	remote_string message;
	int level;
	remote_domain dom;
	remote_string str1;
	remote_string str2;
	remote_string str3;
	int int1;
	int int2;
	remote_network net;
};
typedef struct remote_error remote_error;

struct remote_vcpu_info {
	u_int number;
	int state;
	u_quad_t cpu_time;
	int cpu;
};
typedef struct remote_vcpu_info remote_vcpu_info;

struct remote_open_args {
	remote_string name;
	int flags;
};
typedef struct remote_open_args remote_open_args;

struct remote_get_type_ret {
	remote_nonnull_string type;
};
typedef struct remote_get_type_ret remote_get_type_ret;

struct remote_get_version_ret {
	quad_t hv_ver;
};
typedef struct remote_get_version_ret remote_get_version_ret;

struct remote_get_max_vcpus_args {
	remote_string type;
};
typedef struct remote_get_max_vcpus_args remote_get_max_vcpus_args;

struct remote_get_max_vcpus_ret {
	int max_vcpus;
};
typedef struct remote_get_max_vcpus_ret remote_get_max_vcpus_ret;

struct remote_node_get_info_ret {
	char model[32];
	quad_t memory;
	int cpus;
	int mhz;
	int nodes;
	int sockets;
	int cores;
	int threads;
};
typedef struct remote_node_get_info_ret remote_node_get_info_ret;

struct remote_get_capabilities_ret {
	remote_nonnull_string capabilities;
};
typedef struct remote_get_capabilities_ret remote_get_capabilities_ret;

struct remote_list_domains_args {
	int maxids;
};
typedef struct remote_list_domains_args remote_list_domains_args;

struct remote_list_domains_ret {
	struct {
		u_int ids_len;
		int *ids_val;
	} ids;
};
typedef struct remote_list_domains_ret remote_list_domains_ret;

struct remote_num_of_domains_ret {
	int num;
};
typedef struct remote_num_of_domains_ret remote_num_of_domains_ret;

struct remote_domain_create_linux_args {
	remote_nonnull_string xml_desc;
	int flags;
};
typedef struct remote_domain_create_linux_args remote_domain_create_linux_args;

struct remote_domain_create_linux_ret {
	remote_nonnull_domain dom;
};
typedef struct remote_domain_create_linux_ret remote_domain_create_linux_ret;

struct remote_domain_lookup_by_id_args {
	int id;
};
typedef struct remote_domain_lookup_by_id_args remote_domain_lookup_by_id_args;

struct remote_domain_lookup_by_id_ret {
	remote_nonnull_domain dom;
};
typedef struct remote_domain_lookup_by_id_ret remote_domain_lookup_by_id_ret;

struct remote_domain_lookup_by_uuid_args {
	remote_uuid uuid;
};
typedef struct remote_domain_lookup_by_uuid_args remote_domain_lookup_by_uuid_args;

struct remote_domain_lookup_by_uuid_ret {
	remote_nonnull_domain dom;
};
typedef struct remote_domain_lookup_by_uuid_ret remote_domain_lookup_by_uuid_ret;

struct remote_domain_lookup_by_name_args {
	remote_nonnull_string name;
};
typedef struct remote_domain_lookup_by_name_args remote_domain_lookup_by_name_args;

struct remote_domain_lookup_by_name_ret {
	remote_nonnull_domain dom;
};
typedef struct remote_domain_lookup_by_name_ret remote_domain_lookup_by_name_ret;

struct remote_domain_suspend_args {
	remote_nonnull_domain dom;
};
typedef struct remote_domain_suspend_args remote_domain_suspend_args;

struct remote_domain_resume_args {
	remote_nonnull_domain dom;
};
typedef struct remote_domain_resume_args remote_domain_resume_args;

struct remote_domain_shutdown_args {
	remote_nonnull_domain dom;
};
typedef struct remote_domain_shutdown_args remote_domain_shutdown_args;

struct remote_domain_reboot_args {
	remote_nonnull_domain dom;
	int flags;
};
typedef struct remote_domain_reboot_args remote_domain_reboot_args;

struct remote_domain_destroy_args {
	remote_nonnull_domain dom;
};
typedef struct remote_domain_destroy_args remote_domain_destroy_args;

struct remote_domain_get_os_type_args {
	remote_nonnull_domain dom;
};
typedef struct remote_domain_get_os_type_args remote_domain_get_os_type_args;

struct remote_domain_get_os_type_ret {
	remote_nonnull_string type;
};
typedef struct remote_domain_get_os_type_ret remote_domain_get_os_type_ret;

struct remote_domain_get_max_memory_args {
	remote_nonnull_domain dom;
};
typedef struct remote_domain_get_max_memory_args remote_domain_get_max_memory_args;

struct remote_domain_get_max_memory_ret {
	u_quad_t memory;
};
typedef struct remote_domain_get_max_memory_ret remote_domain_get_max_memory_ret;

struct remote_domain_set_max_memory_args {
	remote_nonnull_domain dom;
	u_quad_t memory;
};
typedef struct remote_domain_set_max_memory_args remote_domain_set_max_memory_args;

struct remote_domain_set_memory_args {
	remote_nonnull_domain dom;
	u_quad_t memory;
};
typedef struct remote_domain_set_memory_args remote_domain_set_memory_args;

struct remote_domain_get_info_args {
	remote_nonnull_domain dom;
};
typedef struct remote_domain_get_info_args remote_domain_get_info_args;

struct remote_domain_get_info_ret {
	u_char state;
	u_quad_t max_mem;
	u_quad_t memory;
	u_short nr_virt_cpu;
	u_quad_t cpu_time;
};
typedef struct remote_domain_get_info_ret remote_domain_get_info_ret;

struct remote_domain_save_args {
	remote_nonnull_domain dom;
	remote_nonnull_string to;
};
typedef struct remote_domain_save_args remote_domain_save_args;

struct remote_domain_restore_args {
	remote_nonnull_string from;
};
typedef struct remote_domain_restore_args remote_domain_restore_args;

struct remote_domain_core_dump_args {
	remote_nonnull_domain dom;
	remote_nonnull_string to;
	int flags;
};
typedef struct remote_domain_core_dump_args remote_domain_core_dump_args;

struct remote_domain_dump_xml_args {
	remote_nonnull_domain dom;
	int flags;
};
typedef struct remote_domain_dump_xml_args remote_domain_dump_xml_args;

struct remote_domain_dump_xml_ret {
	remote_nonnull_string xml;
};
typedef struct remote_domain_dump_xml_ret remote_domain_dump_xml_ret;

struct remote_list_defined_domains_args {
	int maxnames;
};
typedef struct remote_list_defined_domains_args remote_list_defined_domains_args;

struct remote_list_defined_domains_ret {
	struct {
		u_int names_len;
		remote_nonnull_string *names_val;
	} names;
};
typedef struct remote_list_defined_domains_ret remote_list_defined_domains_ret;

struct remote_num_of_defined_domains_ret {
	int num;
};
typedef struct remote_num_of_defined_domains_ret remote_num_of_defined_domains_ret;

struct remote_domain_create_args {
	remote_nonnull_domain dom;
};
typedef struct remote_domain_create_args remote_domain_create_args;

struct remote_domain_define_xml_args {
	remote_nonnull_string xml;
};
typedef struct remote_domain_define_xml_args remote_domain_define_xml_args;

struct remote_domain_define_xml_ret {
	remote_nonnull_domain dom;
};
typedef struct remote_domain_define_xml_ret remote_domain_define_xml_ret;

struct remote_domain_undefine_args {
	remote_nonnull_domain dom;
};
typedef struct remote_domain_undefine_args remote_domain_undefine_args;

struct remote_domain_set_vcpus_args {
	remote_nonnull_domain dom;
	int nvcpus;
};
typedef struct remote_domain_set_vcpus_args remote_domain_set_vcpus_args;

struct remote_domain_pin_vcpu_args {
	remote_nonnull_domain dom;
	int vcpu;
	struct {
		u_int cpumap_len;
		char *cpumap_val;
	} cpumap;
};
typedef struct remote_domain_pin_vcpu_args remote_domain_pin_vcpu_args;

struct remote_domain_get_vcpus_args {
	remote_nonnull_domain dom;
	int maxinfo;
	int maplen;
};
typedef struct remote_domain_get_vcpus_args remote_domain_get_vcpus_args;

struct remote_domain_get_vcpus_ret {
	struct {
		u_int info_len;
		remote_vcpu_info *info_val;
	} info;
	struct {
		u_int cpumaps_len;
		char *cpumaps_val;
	} cpumaps;
};
typedef struct remote_domain_get_vcpus_ret remote_domain_get_vcpus_ret;

struct remote_domain_get_max_vcpus_args {
	remote_nonnull_domain dom;
};
typedef struct remote_domain_get_max_vcpus_args remote_domain_get_max_vcpus_args;

struct remote_domain_get_max_vcpus_ret {
	int num;
};
typedef struct remote_domain_get_max_vcpus_ret remote_domain_get_max_vcpus_ret;

struct remote_domain_attach_device_args {
	remote_nonnull_domain dom;
	remote_nonnull_string xml;
};
typedef struct remote_domain_attach_device_args remote_domain_attach_device_args;

struct remote_domain_detach_device_args {
	remote_nonnull_domain dom;
	remote_nonnull_string xml;
};
typedef struct remote_domain_detach_device_args remote_domain_detach_device_args;

struct remote_domain_get_autostart_args {
	remote_nonnull_domain dom;
};
typedef struct remote_domain_get_autostart_args remote_domain_get_autostart_args;

struct remote_domain_get_autostart_ret {
	int autostart;
};
typedef struct remote_domain_get_autostart_ret remote_domain_get_autostart_ret;

struct remote_domain_set_autostart_args {
	remote_nonnull_domain dom;
	int autostart;
};
typedef struct remote_domain_set_autostart_args remote_domain_set_autostart_args;

struct remote_num_of_networks_ret {
	int num;
};
typedef struct remote_num_of_networks_ret remote_num_of_networks_ret;

struct remote_list_networks_args {
	int maxnames;
};
typedef struct remote_list_networks_args remote_list_networks_args;

struct remote_list_networks_ret {
	struct {
		u_int names_len;
		remote_nonnull_string *names_val;
	} names;
};
typedef struct remote_list_networks_ret remote_list_networks_ret;

struct remote_num_of_defined_networks_ret {
	int num;
};
typedef struct remote_num_of_defined_networks_ret remote_num_of_defined_networks_ret;

struct remote_list_defined_networks_args {
	int maxnames;
};
typedef struct remote_list_defined_networks_args remote_list_defined_networks_args;

struct remote_list_defined_networks_ret {
	struct {
		u_int names_len;
		remote_nonnull_string *names_val;
	} names;
};
typedef struct remote_list_defined_networks_ret remote_list_defined_networks_ret;

struct remote_network_lookup_by_uuid_args {
	remote_uuid uuid;
};
typedef struct remote_network_lookup_by_uuid_args remote_network_lookup_by_uuid_args;

struct remote_network_lookup_by_uuid_ret {
	remote_nonnull_network net;
};
typedef struct remote_network_lookup_by_uuid_ret remote_network_lookup_by_uuid_ret;

struct remote_network_lookup_by_name_args {
	remote_nonnull_string name;
};
typedef struct remote_network_lookup_by_name_args remote_network_lookup_by_name_args;

struct remote_network_lookup_by_name_ret {
	remote_nonnull_network net;
};
typedef struct remote_network_lookup_by_name_ret remote_network_lookup_by_name_ret;

struct remote_network_create_xml_args {
	remote_nonnull_string xml;
};
typedef struct remote_network_create_xml_args remote_network_create_xml_args;

struct remote_network_create_xml_ret {
	remote_nonnull_network net;
};
typedef struct remote_network_create_xml_ret remote_network_create_xml_ret;

struct remote_network_define_xml_args {
	remote_nonnull_string xml;
};
typedef struct remote_network_define_xml_args remote_network_define_xml_args;

struct remote_network_define_xml_ret {
	remote_nonnull_network net;
};
typedef struct remote_network_define_xml_ret remote_network_define_xml_ret;

struct remote_network_undefine_args {
	remote_nonnull_network net;
};
typedef struct remote_network_undefine_args remote_network_undefine_args;

struct remote_network_create_args {
	remote_nonnull_network net;
};
typedef struct remote_network_create_args remote_network_create_args;

struct remote_network_destroy_args {
	remote_nonnull_network net;
};
typedef struct remote_network_destroy_args remote_network_destroy_args;

struct remote_network_dump_xml_args {
	remote_nonnull_network net;
	int flags;
};
typedef struct remote_network_dump_xml_args remote_network_dump_xml_args;

struct remote_network_dump_xml_ret {
	remote_nonnull_string xml;
};
typedef struct remote_network_dump_xml_ret remote_network_dump_xml_ret;

struct remote_network_get_bridge_name_args {
	remote_nonnull_network net;
};
typedef struct remote_network_get_bridge_name_args remote_network_get_bridge_name_args;

struct remote_network_get_bridge_name_ret {
	remote_nonnull_string name;
};
typedef struct remote_network_get_bridge_name_ret remote_network_get_bridge_name_ret;

struct remote_network_get_autostart_args {
	remote_nonnull_network net;
};
typedef struct remote_network_get_autostart_args remote_network_get_autostart_args;

struct remote_network_get_autostart_ret {
	int autostart;
};
typedef struct remote_network_get_autostart_ret remote_network_get_autostart_ret;

struct remote_network_set_autostart_args {
	remote_nonnull_network net;
	int autostart;
};
typedef struct remote_network_set_autostart_args remote_network_set_autostart_args;
#define REMOTE_PROGRAM 0x20008086
#define REMOTE_PROTOCOL_VERSION 1

enum remote_procedure {
	REMOTE_PROC_OPEN = 1,
	REMOTE_PROC_CLOSE = 2,
	REMOTE_PROC_GET_TYPE = 3,
	REMOTE_PROC_GET_VERSION = 4,
	REMOTE_PROC_GET_MAX_VCPUS = 5,
	REMOTE_PROC_NODE_GET_INFO = 6,
	REMOTE_PROC_GET_CAPABILITIES = 7,
	REMOTE_PROC_DOMAIN_ATTACH_DEVICE = 8,
	REMOTE_PROC_DOMAIN_CREATE = 9,
	REMOTE_PROC_DOMAIN_CREATE_LINUX = 10,
	REMOTE_PROC_DOMAIN_DEFINE_XML = 11,
	REMOTE_PROC_DOMAIN_DESTROY = 12,
	REMOTE_PROC_DOMAIN_DETACH_DEVICE = 13,
	REMOTE_PROC_DOMAIN_DUMP_XML = 14,
	REMOTE_PROC_DOMAIN_GET_AUTOSTART = 15,
	REMOTE_PROC_DOMAIN_GET_INFO = 16,
	REMOTE_PROC_DOMAIN_GET_MAX_MEMORY = 17,
	REMOTE_PROC_DOMAIN_GET_MAX_VCPUS = 18,
	REMOTE_PROC_DOMAIN_GET_OS_TYPE = 19,
	REMOTE_PROC_DOMAIN_GET_VCPUS = 20,
	REMOTE_PROC_LIST_DEFINED_DOMAINS = 21,
	REMOTE_PROC_DOMAIN_LOOKUP_BY_ID = 22,
	REMOTE_PROC_DOMAIN_LOOKUP_BY_NAME = 23,
	REMOTE_PROC_DOMAIN_LOOKUP_BY_UUID = 24,
	REMOTE_PROC_NUM_OF_DEFINED_DOMAINS = 25,
	REMOTE_PROC_DOMAIN_PIN_VCPU = 26,
	REMOTE_PROC_DOMAIN_REBOOT = 27,
	REMOTE_PROC_DOMAIN_RESUME = 28,
	REMOTE_PROC_DOMAIN_SET_AUTOSTART = 29,
	REMOTE_PROC_DOMAIN_SET_MAX_MEMORY = 30,
	REMOTE_PROC_DOMAIN_SET_MEMORY = 31,
	REMOTE_PROC_DOMAIN_SET_VCPUS = 32,
	REMOTE_PROC_DOMAIN_SHUTDOWN = 33,
	REMOTE_PROC_DOMAIN_SUSPEND = 34,
	REMOTE_PROC_DOMAIN_UNDEFINE = 35,
	REMOTE_PROC_LIST_DEFINED_NETWORKS = 36,
	REMOTE_PROC_LIST_DOMAINS = 37,
	REMOTE_PROC_LIST_NETWORKS = 38,
	REMOTE_PROC_NETWORK_CREATE = 39,
	REMOTE_PROC_NETWORK_CREATE_XML = 40,
	REMOTE_PROC_NETWORK_DEFINE_XML = 41,
	REMOTE_PROC_NETWORK_DESTROY = 42,
	REMOTE_PROC_NETWORK_DUMP_XML = 43,
	REMOTE_PROC_NETWORK_GET_AUTOSTART = 44,
	REMOTE_PROC_NETWORK_GET_BRIDGE_NAME = 45,
	REMOTE_PROC_NETWORK_LOOKUP_BY_NAME = 46,
	REMOTE_PROC_NETWORK_LOOKUP_BY_UUID = 47,
	REMOTE_PROC_NETWORK_SET_AUTOSTART = 48,
	REMOTE_PROC_NETWORK_UNDEFINE = 49,
	REMOTE_PROC_NUM_OF_DEFINED_NETWORKS = 50,
	REMOTE_PROC_NUM_OF_DOMAINS = 51,
	REMOTE_PROC_NUM_OF_NETWORKS = 52,
	REMOTE_PROC_DOMAIN_CORE_DUMP = 53,
	REMOTE_PROC_DOMAIN_RESTORE = 54,
	REMOTE_PROC_DOMAIN_SAVE = 55,
};
typedef enum remote_procedure remote_procedure;

enum remote_message_direction {
	REMOTE_CALL = 0,
	REMOTE_REPLY = 1,
	REMOTE_MESSAGE = 2,
};
typedef enum remote_message_direction remote_message_direction;

enum remote_message_status {
	REMOTE_OK = 0,
	REMOTE_ERROR = 1,
};
typedef enum remote_message_status remote_message_status;

struct remote_message_header {
	u_int prog;
	u_int vers;
	remote_procedure proc;
	remote_message_direction direction;
	u_int serial;
	remote_message_status status;
};
typedef struct remote_message_header remote_message_header;

/* the xdr functions */

#if defined(__STDC__) || defined(__cplusplus)
extern  bool_t xdr_remote_nonnull_string (XDR *, remote_nonnull_string*);
extern  bool_t xdr_remote_string (XDR *, remote_string*);
extern  bool_t xdr_remote_uuid (XDR *, remote_uuid);
extern  bool_t xdr_remote_nonnull_domain (XDR *, remote_nonnull_domain*);
extern  bool_t xdr_remote_nonnull_network (XDR *, remote_nonnull_network*);
extern  bool_t xdr_remote_domain (XDR *, remote_domain*);
extern  bool_t xdr_remote_network (XDR *, remote_network*);
extern  bool_t xdr_remote_error (XDR *, remote_error*);
extern  bool_t xdr_remote_vcpu_info (XDR *, remote_vcpu_info*);
extern  bool_t xdr_remote_open_args (XDR *, remote_open_args*);
extern  bool_t xdr_remote_get_type_ret (XDR *, remote_get_type_ret*);
extern  bool_t xdr_remote_get_version_ret (XDR *, remote_get_version_ret*);
extern  bool_t xdr_remote_get_max_vcpus_args (XDR *, remote_get_max_vcpus_args*);
extern  bool_t xdr_remote_get_max_vcpus_ret (XDR *, remote_get_max_vcpus_ret*);
extern  bool_t xdr_remote_node_get_info_ret (XDR *, remote_node_get_info_ret*);
extern  bool_t xdr_remote_get_capabilities_ret (XDR *, remote_get_capabilities_ret*);
extern  bool_t xdr_remote_list_domains_args (XDR *, remote_list_domains_args*);
extern  bool_t xdr_remote_list_domains_ret (XDR *, remote_list_domains_ret*);
extern  bool_t xdr_remote_num_of_domains_ret (XDR *, remote_num_of_domains_ret*);
extern  bool_t xdr_remote_domain_create_linux_args (XDR *, remote_domain_create_linux_args*);
extern  bool_t xdr_remote_domain_create_linux_ret (XDR *, remote_domain_create_linux_ret*);
extern  bool_t xdr_remote_domain_lookup_by_id_args (XDR *, remote_domain_lookup_by_id_args*);
extern  bool_t xdr_remote_domain_lookup_by_id_ret (XDR *, remote_domain_lookup_by_id_ret*);
extern  bool_t xdr_remote_domain_lookup_by_uuid_args (XDR *, remote_domain_lookup_by_uuid_args*);
extern  bool_t xdr_remote_domain_lookup_by_uuid_ret (XDR *, remote_domain_lookup_by_uuid_ret*);
extern  bool_t xdr_remote_domain_lookup_by_name_args (XDR *, remote_domain_lookup_by_name_args*);
extern  bool_t xdr_remote_domain_lookup_by_name_ret (XDR *, remote_domain_lookup_by_name_ret*);
extern  bool_t xdr_remote_domain_suspend_args (XDR *, remote_domain_suspend_args*);
extern  bool_t xdr_remote_domain_resume_args (XDR *, remote_domain_resume_args*);
extern  bool_t xdr_remote_domain_shutdown_args (XDR *, remote_domain_shutdown_args*);
extern  bool_t xdr_remote_domain_reboot_args (XDR *, remote_domain_reboot_args*);
extern  bool_t xdr_remote_domain_destroy_args (XDR *, remote_domain_destroy_args*);
extern  bool_t xdr_remote_domain_get_os_type_args (XDR *, remote_domain_get_os_type_args*);
extern  bool_t xdr_remote_domain_get_os_type_ret (XDR *, remote_domain_get_os_type_ret*);
extern  bool_t xdr_remote_domain_get_max_memory_args (XDR *, remote_domain_get_max_memory_args*);
extern  bool_t xdr_remote_domain_get_max_memory_ret (XDR *, remote_domain_get_max_memory_ret*);
extern  bool_t xdr_remote_domain_set_max_memory_args (XDR *, remote_domain_set_max_memory_args*);
extern  bool_t xdr_remote_domain_set_memory_args (XDR *, remote_domain_set_memory_args*);
extern  bool_t xdr_remote_domain_get_info_args (XDR *, remote_domain_get_info_args*);
extern  bool_t xdr_remote_domain_get_info_ret (XDR *, remote_domain_get_info_ret*);
extern  bool_t xdr_remote_domain_save_args (XDR *, remote_domain_save_args*);
extern  bool_t xdr_remote_domain_restore_args (XDR *, remote_domain_restore_args*);
extern  bool_t xdr_remote_domain_core_dump_args (XDR *, remote_domain_core_dump_args*);
extern  bool_t xdr_remote_domain_dump_xml_args (XDR *, remote_domain_dump_xml_args*);
extern  bool_t xdr_remote_domain_dump_xml_ret (XDR *, remote_domain_dump_xml_ret*);
extern  bool_t xdr_remote_list_defined_domains_args (XDR *, remote_list_defined_domains_args*);
extern  bool_t xdr_remote_list_defined_domains_ret (XDR *, remote_list_defined_domains_ret*);
extern  bool_t xdr_remote_num_of_defined_domains_ret (XDR *, remote_num_of_defined_domains_ret*);
extern  bool_t xdr_remote_domain_create_args (XDR *, remote_domain_create_args*);
extern  bool_t xdr_remote_domain_define_xml_args (XDR *, remote_domain_define_xml_args*);
extern  bool_t xdr_remote_domain_define_xml_ret (XDR *, remote_domain_define_xml_ret*);
extern  bool_t xdr_remote_domain_undefine_args (XDR *, remote_domain_undefine_args*);
extern  bool_t xdr_remote_domain_set_vcpus_args (XDR *, remote_domain_set_vcpus_args*);
extern  bool_t xdr_remote_domain_pin_vcpu_args (XDR *, remote_domain_pin_vcpu_args*);
extern  bool_t xdr_remote_domain_get_vcpus_args (XDR *, remote_domain_get_vcpus_args*);
extern  bool_t xdr_remote_domain_get_vcpus_ret (XDR *, remote_domain_get_vcpus_ret*);
extern  bool_t xdr_remote_domain_get_max_vcpus_args (XDR *, remote_domain_get_max_vcpus_args*);
extern  bool_t xdr_remote_domain_get_max_vcpus_ret (XDR *, remote_domain_get_max_vcpus_ret*);
extern  bool_t xdr_remote_domain_attach_device_args (XDR *, remote_domain_attach_device_args*);
extern  bool_t xdr_remote_domain_detach_device_args (XDR *, remote_domain_detach_device_args*);
extern  bool_t xdr_remote_domain_get_autostart_args (XDR *, remote_domain_get_autostart_args*);
extern  bool_t xdr_remote_domain_get_autostart_ret (XDR *, remote_domain_get_autostart_ret*);
extern  bool_t xdr_remote_domain_set_autostart_args (XDR *, remote_domain_set_autostart_args*);
extern  bool_t xdr_remote_num_of_networks_ret (XDR *, remote_num_of_networks_ret*);
extern  bool_t xdr_remote_list_networks_args (XDR *, remote_list_networks_args*);
extern  bool_t xdr_remote_list_networks_ret (XDR *, remote_list_networks_ret*);
extern  bool_t xdr_remote_num_of_defined_networks_ret (XDR *, remote_num_of_defined_networks_ret*);
extern  bool_t xdr_remote_list_defined_networks_args (XDR *, remote_list_defined_networks_args*);
extern  bool_t xdr_remote_list_defined_networks_ret (XDR *, remote_list_defined_networks_ret*);
extern  bool_t xdr_remote_network_lookup_by_uuid_args (XDR *, remote_network_lookup_by_uuid_args*);
extern  bool_t xdr_remote_network_lookup_by_uuid_ret (XDR *, remote_network_lookup_by_uuid_ret*);
extern  bool_t xdr_remote_network_lookup_by_name_args (XDR *, remote_network_lookup_by_name_args*);
extern  bool_t xdr_remote_network_lookup_by_name_ret (XDR *, remote_network_lookup_by_name_ret*);
extern  bool_t xdr_remote_network_create_xml_args (XDR *, remote_network_create_xml_args*);
extern  bool_t xdr_remote_network_create_xml_ret (XDR *, remote_network_create_xml_ret*);
extern  bool_t xdr_remote_network_define_xml_args (XDR *, remote_network_define_xml_args*);
extern  bool_t xdr_remote_network_define_xml_ret (XDR *, remote_network_define_xml_ret*);
extern  bool_t xdr_remote_network_undefine_args (XDR *, remote_network_undefine_args*);
extern  bool_t xdr_remote_network_create_args (XDR *, remote_network_create_args*);
extern  bool_t xdr_remote_network_destroy_args (XDR *, remote_network_destroy_args*);
extern  bool_t xdr_remote_network_dump_xml_args (XDR *, remote_network_dump_xml_args*);
extern  bool_t xdr_remote_network_dump_xml_ret (XDR *, remote_network_dump_xml_ret*);
extern  bool_t xdr_remote_network_get_bridge_name_args (XDR *, remote_network_get_bridge_name_args*);
extern  bool_t xdr_remote_network_get_bridge_name_ret (XDR *, remote_network_get_bridge_name_ret*);
extern  bool_t xdr_remote_network_get_autostart_args (XDR *, remote_network_get_autostart_args*);
extern  bool_t xdr_remote_network_get_autostart_ret (XDR *, remote_network_get_autostart_ret*);
extern  bool_t xdr_remote_network_set_autostart_args (XDR *, remote_network_set_autostart_args*);
extern  bool_t xdr_remote_procedure (XDR *, remote_procedure*);
extern  bool_t xdr_remote_message_direction (XDR *, remote_message_direction*);
extern  bool_t xdr_remote_message_status (XDR *, remote_message_status*);
extern  bool_t xdr_remote_message_header (XDR *, remote_message_header*);

#else /* K&R C */
extern bool_t xdr_remote_nonnull_string ();
extern bool_t xdr_remote_string ();
extern bool_t xdr_remote_uuid ();
extern bool_t xdr_remote_nonnull_domain ();
extern bool_t xdr_remote_nonnull_network ();
extern bool_t xdr_remote_domain ();
extern bool_t xdr_remote_network ();
extern bool_t xdr_remote_error ();
extern bool_t xdr_remote_vcpu_info ();
extern bool_t xdr_remote_open_args ();
extern bool_t xdr_remote_get_type_ret ();
extern bool_t xdr_remote_get_version_ret ();
extern bool_t xdr_remote_get_max_vcpus_args ();
extern bool_t xdr_remote_get_max_vcpus_ret ();
extern bool_t xdr_remote_node_get_info_ret ();
extern bool_t xdr_remote_get_capabilities_ret ();
extern bool_t xdr_remote_list_domains_args ();
extern bool_t xdr_remote_list_domains_ret ();
extern bool_t xdr_remote_num_of_domains_ret ();
extern bool_t xdr_remote_domain_create_linux_args ();
extern bool_t xdr_remote_domain_create_linux_ret ();
extern bool_t xdr_remote_domain_lookup_by_id_args ();
extern bool_t xdr_remote_domain_lookup_by_id_ret ();
extern bool_t xdr_remote_domain_lookup_by_uuid_args ();
extern bool_t xdr_remote_domain_lookup_by_uuid_ret ();
extern bool_t xdr_remote_domain_lookup_by_name_args ();
extern bool_t xdr_remote_domain_lookup_by_name_ret ();
extern bool_t xdr_remote_domain_suspend_args ();
extern bool_t xdr_remote_domain_resume_args ();
extern bool_t xdr_remote_domain_shutdown_args ();
extern bool_t xdr_remote_domain_reboot_args ();
extern bool_t xdr_remote_domain_destroy_args ();
extern bool_t xdr_remote_domain_get_os_type_args ();
extern bool_t xdr_remote_domain_get_os_type_ret ();
extern bool_t xdr_remote_domain_get_max_memory_args ();
extern bool_t xdr_remote_domain_get_max_memory_ret ();
extern bool_t xdr_remote_domain_set_max_memory_args ();
extern bool_t xdr_remote_domain_set_memory_args ();
extern bool_t xdr_remote_domain_get_info_args ();
extern bool_t xdr_remote_domain_get_info_ret ();
extern bool_t xdr_remote_domain_save_args ();
extern bool_t xdr_remote_domain_restore_args ();
extern bool_t xdr_remote_domain_core_dump_args ();
extern bool_t xdr_remote_domain_dump_xml_args ();
extern bool_t xdr_remote_domain_dump_xml_ret ();
extern bool_t xdr_remote_list_defined_domains_args ();
extern bool_t xdr_remote_list_defined_domains_ret ();
extern bool_t xdr_remote_num_of_defined_domains_ret ();
extern bool_t xdr_remote_domain_create_args ();
extern bool_t xdr_remote_domain_define_xml_args ();
extern bool_t xdr_remote_domain_define_xml_ret ();
extern bool_t xdr_remote_domain_undefine_args ();
extern bool_t xdr_remote_domain_set_vcpus_args ();
extern bool_t xdr_remote_domain_pin_vcpu_args ();
extern bool_t xdr_remote_domain_get_vcpus_args ();
extern bool_t xdr_remote_domain_get_vcpus_ret ();
extern bool_t xdr_remote_domain_get_max_vcpus_args ();
extern bool_t xdr_remote_domain_get_max_vcpus_ret ();
extern bool_t xdr_remote_domain_attach_device_args ();
extern bool_t xdr_remote_domain_detach_device_args ();
extern bool_t xdr_remote_domain_get_autostart_args ();
extern bool_t xdr_remote_domain_get_autostart_ret ();
extern bool_t xdr_remote_domain_set_autostart_args ();
extern bool_t xdr_remote_num_of_networks_ret ();
extern bool_t xdr_remote_list_networks_args ();
extern bool_t xdr_remote_list_networks_ret ();
extern bool_t xdr_remote_num_of_defined_networks_ret ();
extern bool_t xdr_remote_list_defined_networks_args ();
extern bool_t xdr_remote_list_defined_networks_ret ();
extern bool_t xdr_remote_network_lookup_by_uuid_args ();
extern bool_t xdr_remote_network_lookup_by_uuid_ret ();
extern bool_t xdr_remote_network_lookup_by_name_args ();
extern bool_t xdr_remote_network_lookup_by_name_ret ();
extern bool_t xdr_remote_network_create_xml_args ();
extern bool_t xdr_remote_network_create_xml_ret ();
extern bool_t xdr_remote_network_define_xml_args ();
extern bool_t xdr_remote_network_define_xml_ret ();
extern bool_t xdr_remote_network_undefine_args ();
extern bool_t xdr_remote_network_create_args ();
extern bool_t xdr_remote_network_destroy_args ();
extern bool_t xdr_remote_network_dump_xml_args ();
extern bool_t xdr_remote_network_dump_xml_ret ();
extern bool_t xdr_remote_network_get_bridge_name_args ();
extern bool_t xdr_remote_network_get_bridge_name_ret ();
extern bool_t xdr_remote_network_get_autostart_args ();
extern bool_t xdr_remote_network_get_autostart_ret ();
extern bool_t xdr_remote_network_set_autostart_args ();
extern bool_t xdr_remote_procedure ();
extern bool_t xdr_remote_message_direction ();
extern bool_t xdr_remote_message_status ();
extern bool_t xdr_remote_message_header ();

#endif /* K&R C */

#ifdef __cplusplus
}
#endif

#endif /* !_REMOTE_PROTOCOL_H_RPCGEN */

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature


[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]