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

#include "protocol.h"

bool_t
xdr_Ganglia_value_types (XDR *xdrs, Ganglia_value_types *objp)
{
	register int32_t *buf;

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

bool_t
xdr_Ganglia_gmetric_message (XDR *xdrs, Ganglia_gmetric_message *objp)
{
	register int32_t *buf;

	 if (!xdr_string (xdrs, &objp->type, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->name, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->value, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->units, ~0))
		 return FALSE;
	 if (!xdr_u_int (xdrs, &objp->slope))
		 return FALSE;
	 if (!xdr_u_int (xdrs, &objp->tmax))
		 return FALSE;
	 if (!xdr_u_int (xdrs, &objp->dmax))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_Ganglia_spoof_header (XDR *xdrs, Ganglia_spoof_header *objp)
{
	register int32_t *buf;

	 if (!xdr_string (xdrs, &objp->spoofName, ~0))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->spoofIP, ~0))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_Ganglia_spoof_message (XDR *xdrs, Ganglia_spoof_message *objp)
{
	register int32_t *buf;

	 if (!xdr_Ganglia_spoof_header (xdrs, &objp->spheader))
		 return FALSE;
	 if (!xdr_Ganglia_gmetric_message (xdrs, &objp->gmetric))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_Ganglia_message_formats (XDR *xdrs, Ganglia_message_formats *objp)
{
	register int32_t *buf;

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

bool_t
xdr_Ganglia_message (XDR *xdrs, Ganglia_message *objp)
{
	register int32_t *buf;

	 if (!xdr_Ganglia_message_formats (xdrs, &objp->id))
		 return FALSE;
	switch (objp->id) {
	case metric_user_defined:
		 if (!xdr_Ganglia_gmetric_message (xdrs, &objp->Ganglia_message_u.gmetric))
			 return FALSE;
		break;
	case spoof_metric:
		 if (!xdr_Ganglia_spoof_message (xdrs, &objp->Ganglia_message_u.spmetric))
			 return FALSE;
		break;
	case spoof_heartbeat:
		 if (!xdr_Ganglia_spoof_header (xdrs, &objp->Ganglia_message_u.spheader))
			 return FALSE;
		break;
	case metric_cpu_num:
		 if (!xdr_u_short (xdrs, &objp->Ganglia_message_u.u_short))
			 return FALSE;
		break;
	case metric_cpu_speed:
	case metric_mem_total:
	case metric_swap_total:
	case metric_boottime:
	case metric_sys_clock:
	case metric_proc_run:
	case metric_proc_total:
	case metric_mem_free:
	case metric_mem_shared:
	case metric_mem_buffers:
	case metric_mem_cached:
	case metric_swap_free:
	case metric_heartbeat:
	case metric_mtu:
	case metric_mem_arm:
	case metric_mem_rm:
	case metric_mem_avm:
	case metric_mem_vm:
		 if (!xdr_u_int (xdrs, &objp->Ganglia_message_u.u_int))
			 return FALSE;
		break;
	case metric_machine_type:
	case metric_os_name:
	case metric_os_release:
	case metric_gexec:
	case metric_location:
		 if (!xdr_string (xdrs, &objp->Ganglia_message_u.str, ~0))
			 return FALSE;
		break;
	case metric_cpu_user:
	case metric_cpu_nice:
	case metric_cpu_system:
	case metric_cpu_idle:
	case metric_cpu_aidle:
	case metric_load_one:
	case metric_load_five:
	case metric_load_fifteen:
	case metric_bytes_in:
	case metric_bytes_out:
	case metric_pkts_in:
	case metric_pkts_out:
	case metric_part_max_used:
	case metric_cpu_wio:
	case metric_bread_sec:
	case metric_bwrite_sec:
	case metric_lread_sec:
	case metric_lwrite_sec:
	case metric_rcache:
	case metric_wcache:
	case metric_phread_sec:
	case metric_phwrite_sec:
	case metric_cpu_intr:
	case metric_cpu_sintr:
		 if (!xdr_float (xdrs, &objp->Ganglia_message_u.f))
			 return FALSE;
		break;
	case metric_disk_total:
	case metric_disk_free:
		 if (!xdr_double (xdrs, &objp->Ganglia_message_u.d))
			 return FALSE;
		break;
	default:
		break;
	}
	return TRUE;
}

bool_t
xdr_Ganglia_25metric (XDR *xdrs, Ganglia_25metric *objp)
{
	register int32_t *buf;

	 if (!xdr_int (xdrs, &objp->key))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->name, 16))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->tmax))
		 return FALSE;
	 if (!xdr_Ganglia_value_types (xdrs, &objp->type))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->units, 32))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->slope, 32))
		 return FALSE;
	 if (!xdr_string (xdrs, &objp->fmt, 32))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->msg_size))
		 return FALSE;
	return TRUE;
}
 Ganglia_25metric ganglia_25_metric_array[GANGLIA_NUM_25_METRICS] = {
 {metric_user_defined, "gmetric", 0, GANGLIA_VALUE_UNKNOWN, "", "", 0 },
 {metric_cpu_num, "cpu_num", 1200, GANGLIA_VALUE_UNSIGNED_SHORT, "CPUs", "zero", "%hu", 28 +8},
 {metric_cpu_speed, "cpu_speed", 1200, GANGLIA_VALUE_UNSIGNED_INT, "MHz", "zero", "%hu", 28 +8},
 {metric_mem_total, "mem_total", 1200, GANGLIA_VALUE_UNSIGNED_INT, "KB", "zero", "%u", 28 +8},
 {metric_swap_total, "swap_total", 1200, GANGLIA_VALUE_UNSIGNED_INT, "KB", "zero", "%u", 28 +8},
 {metric_boottime, "boottime", 1200, GANGLIA_VALUE_UNSIGNED_INT, "s", "zero", "%u", 28 +8},
 {metric_sys_clock, "sys_clock", 1200, GANGLIA_VALUE_UNSIGNED_INT, "s", "zero", "%u", 28 +8},
 {metric_machine_type, "machine_type",1200, GANGLIA_VALUE_STRING, "", "zero", "%s", 28 +32},
 {metric_os_name, "os_name", 1200, GANGLIA_VALUE_STRING, "", "zero", "%s", 28 +32},
 {metric_os_release, "os_release", 1200, GANGLIA_VALUE_STRING, "", "zero", "%s", 28 +32},
 {metric_cpu_user, "cpu_user", 90, GANGLIA_VALUE_FLOAT, "%", "both", "%.1f",28 +8},
 {metric_cpu_nice, "cpu_nice", 90, GANGLIA_VALUE_FLOAT, "%", "both", "%.1f",28 +8},
 {metric_cpu_system, "cpu_system", 90, GANGLIA_VALUE_FLOAT, "%", "both", "%.1f",28 +8},
 {metric_cpu_idle, "cpu_idle", 90, GANGLIA_VALUE_FLOAT, "%", "both", "%.1f",28 +8},
 {metric_cpu_aidle, "cpu_aidle", 3800, GANGLIA_VALUE_FLOAT, "%", "both", "%.1f",28 +8},
 {metric_load_one, "load_one", 70, GANGLIA_VALUE_FLOAT, " ", "both", "%.2f",28 +8},
 {metric_load_five, "load_five", 325, GANGLIA_VALUE_FLOAT, " ", "both", "%.2f",28 +8},
 {metric_load_fifteen, "load_fifteen",950, GANGLIA_VALUE_FLOAT, " ", "both", "%.2f",28 +8},
 {metric_proc_run, "proc_run", 950, GANGLIA_VALUE_UNSIGNED_INT, " ", "both", "%u", 28 +8},
 {metric_proc_total, "proc_total", 950, GANGLIA_VALUE_UNSIGNED_INT, " ", "both", "%u", 28 +8},
 {metric_mem_free, "mem_free", 180, GANGLIA_VALUE_UNSIGNED_INT, "KB", "both", "%u", 28 +8},
 {metric_mem_shared, "mem_shared", 180, GANGLIA_VALUE_UNSIGNED_INT, "KB", "both", "%u", 28 +8},
 {metric_mem_buffers, "mem_buffers", 180, GANGLIA_VALUE_UNSIGNED_INT, "KB", "both", "%u", 28 +8},
 {metric_mem_cached, "mem_cached", 180, GANGLIA_VALUE_UNSIGNED_INT, "KB", "both", "%u", 28 +8},
 {metric_swap_free, "swap_free", 180, GANGLIA_VALUE_UNSIGNED_INT, "KB", "both", "%u", 28 +8},
 {metric_gexec, "gexec", 300, GANGLIA_VALUE_STRING, "", "zero", "%s", 28 +32},
 {metric_heartbeat, "heartbeat", 20, GANGLIA_VALUE_UNSIGNED_INT, "", "", "%u", 28 +8},
 {metric_mtu, "mtu", 1200, GANGLIA_VALUE_UNSIGNED_INT, "", "both", "%u", 28 +8},
 {metric_location, "location", 1200, GANGLIA_VALUE_STRING, "(x,y,z)", "", "%s", 28 +12},
 {metric_bytes_out, "bytes_out", 300, GANGLIA_VALUE_FLOAT, "bytes/sec", "both", "%.2f",28 +8},
 {metric_bytes_in, "bytes_in", 300, GANGLIA_VALUE_FLOAT, "bytes/sec", "both", "%.2f",28 +8},
 {metric_pkts_in, "pkts_in", 300, GANGLIA_VALUE_FLOAT, "packets/sec","both", "%.2f",28 +8},
 {metric_pkts_out, "pkts_out", 300, GANGLIA_VALUE_FLOAT, "packets/sec","both", "%.2f",28 +8},
 {metric_disk_total, "disk_total", 1200, GANGLIA_VALUE_DOUBLE, "GB", "both", "%.3f",28 +16},
 {metric_disk_free, "disk_free", 180, GANGLIA_VALUE_DOUBLE, "GB", "both", "%.3f",28 +16},
 {metric_part_max_used,"part_max_used",180, GANGLIA_VALUE_FLOAT, "%", "both", "%.1f",28 +8},
 {metric_cpu_wio, "cpu_wio", 90, GANGLIA_VALUE_FLOAT, "%", "both", "%.1f",28 +8},
 {metric_bread_sec, "bread_sec", 90, GANGLIA_VALUE_FLOAT, "1/sec", "both", "%.2f",28 +8},
 {metric_bwrite_sec, "bwrite_sec", 90, GANGLIA_VALUE_FLOAT, "1/sec", "both", "%.2f",28 +8},
 {metric_lread_sec, "lread_sec", 90, GANGLIA_VALUE_FLOAT, "1/sec", "both", "%.2f",28 +8},
 {metric_lwrite_sec, "lwrite_sec", 90, GANGLIA_VALUE_FLOAT, "1/sec", "both", "%.2f",28 +8},
 {metric_rcache, "rcache", 90, GANGLIA_VALUE_FLOAT, "%", "both", "%.1f",28 +8},
 {metric_wcache, "wcache", 90, GANGLIA_VALUE_FLOAT, "%", "both", "%.1f",28 +8},
 {metric_phread_sec, "phread_sec", 90, GANGLIA_VALUE_FLOAT, "1/sec", "both", "%.2f",28 +8},
 {metric_phwrite_sec, "phwrite_sec", 90, GANGLIA_VALUE_FLOAT, "1/sec", "both", "%.2f",28 +8},
 {metric_cpu_intr, "cpu_intr", 90, GANGLIA_VALUE_FLOAT, "%", "both", "%.1f",28 +8},
 {metric_cpu_sintr, "cpu_sintr", 90, GANGLIA_VALUE_FLOAT, "%", "both", "%.1f",28 +8},
 {metric_mem_arm, "mem_arm", 180, GANGLIA_VALUE_UNSIGNED_INT, "KB", "both", "%u", 28 +8},
 {metric_mem_rm, "mem_rm", 180, GANGLIA_VALUE_UNSIGNED_INT, "KB", "both", "%u", 28 +8},
 {metric_mem_avm, "mem_avm", 180, GANGLIA_VALUE_UNSIGNED_INT, "KB", "both", "%u", 28 +8},
 {metric_mem_vm, "mem_vm", 180, GANGLIA_VALUE_UNSIGNED_INT, "KB", "both", "%u", 28 +8}
 };

 Ganglia_25metric *
 Ganglia_25metric_bykey( int key )
 {
 if(key < 0 || key >= GANGLIA_NUM_25_METRICS)
 {
 return NULL;
 }
 return &ganglia_25_metric_array[key];
 }
 Ganglia_25metric *
 Ganglia_25metric_byname( char *name )
 {
 int i;
 if(!name)
 {
 return NULL;
 }
 for(i = 0; i< GANGLIA_NUM_25_METRICS; i++)
 {
 if(! strcasecmp(name, ganglia_25_metric_array[i].name))
 {
 return &ganglia_25_metric_array[i];
 }
 }
 return NULL;
 }


syntax highlighted by Code2HTML, v. 0.9.1