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

#include "fep.h"
/* RPC XDR test */
/* RPC XDR Modifications */
#undef MAXSHORTMESSAGELEN
#undef MAXLONGMESSAGELEN
#undef MAXSHORTPOLLS
#undef MAXLONGPOLLS
#undef MAXPOLLRETRY
#undef MAXSHORTREPLYLEN
#undef MAXLONGREPLYLEN
#define MAXSHORTMESSAGELEN (objp->message_len?((objp->message_len>_MAXSHORTMESSAGELEN) ?_MAXSHORTMESSAGELEN:objp->message_len) :1)
#define MAXLONGMESSAGELEN (objp->message_len?((objp->message_len>_MAXLONGMESSAGELEN) ?_MAXLONGMESSAGELEN:objp->message_len) :1)
#define MAXSHORTPOLLS (objp->count? ((objp->count>_MAXSHORTPOLLS) ?_MAXSHORTPOLLS:objp->count) :1)
#define MAXLONGPOLLS (objp->count? ((objp->count>_MAXLONGPOLLS) ?_MAXLONGPOLLS:objp->count) :1)
#define MAXPOLLRETRY (objp->poll_error_count? ((objp->poll_error_count>_MAXPOLLRETRY) ?_MAXPOLLRETRY:objp->poll_error_count) :1)
#define MAXSHORTREPLYLEN (objp->message_len? ((objp->message_len>_MAXSHORTREPLYLEN)?_MAXSHORTREPLYLEN:objp->message_len) :1)
#define MAXLONGREPLYLEN (objp->message_len? ((objp->message_len>_MAXLONGREPLYLEN) ?_MAXLONGREPLYLEN:objp->message_len) :1)

bool_t
xdr_errorstatus (XDR *xdrs, errorstatus *objp)
{
	register int32_t *buf;

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

bool_t
xdr_Polling_FSM_States (XDR *xdrs, Polling_FSM_States *objp)
{
	register int32_t *buf;

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

bool_t
xdr_fep_lineinfo (XDR *xdrs, fep_lineinfo *objp)
{
	register int32_t *buf;

	int i;

	if (xdrs->x_op == XDR_ENCODE) {
		 if (!xdr_int (xdrs, &objp->lineinfo))
			 return FALSE;
		 if (!xdr_opaque (xdrs, objp->device, MAXDEVLEN))
			 return FALSE;
		buf = XDR_INLINE (xdrs, 7 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_int (xdrs, &objp->poll))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->command))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->sync))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->line_error_count))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->pid))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->semaphore))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->debug))
				 return FALSE;
		} else {
			IXDR_PUT_LONG(buf, objp->poll);
			IXDR_PUT_LONG(buf, objp->command);
			IXDR_PUT_LONG(buf, objp->sync);
			IXDR_PUT_LONG(buf, objp->line_error_count);
			IXDR_PUT_LONG(buf, objp->pid);
			IXDR_PUT_LONG(buf, objp->semaphore);
			IXDR_PUT_LONG(buf, objp->debug);
		}
		return TRUE;
	} else if (xdrs->x_op == XDR_DECODE) {
		 if (!xdr_int (xdrs, &objp->lineinfo))
			 return FALSE;
		 if (!xdr_opaque (xdrs, objp->device, MAXDEVLEN))
			 return FALSE;
		buf = XDR_INLINE (xdrs, 7 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_int (xdrs, &objp->poll))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->command))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->sync))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->line_error_count))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->pid))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->semaphore))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->debug))
				 return FALSE;
		} else {
			objp->poll = IXDR_GET_LONG(buf);
			objp->command = IXDR_GET_LONG(buf);
			objp->sync = IXDR_GET_LONG(buf);
			objp->line_error_count = IXDR_GET_LONG(buf);
			objp->pid = IXDR_GET_LONG(buf);
			objp->semaphore = IXDR_GET_LONG(buf);
			objp->debug = IXDR_GET_LONG(buf);
		}
	 return TRUE;
	}

	 if (!xdr_int (xdrs, &objp->lineinfo))
		 return FALSE;
	 if (!xdr_opaque (xdrs, objp->device, MAXDEVLEN))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->poll))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->command))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->sync))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->line_error_count))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->pid))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->semaphore))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->debug))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_lineinfo_ret (XDR *xdrs, lineinfo_ret *objp)
{
	register int32_t *buf;

	 if (!xdr_errorstatus (xdrs, &objp->status))
		 return FALSE;
	switch (objp->status) {
	case FEP_OK:
		 if (!xdr_fep_lineinfo (xdrs, &objp->lineinfo_ret_u.info))
			 return FALSE;
		break;
	default:
		break;
	}
	return TRUE;
}

bool_t
xdr_fep_std_time (XDR *xdrs, fep_std_time *objp)
{
	register int32_t *buf;


	if (xdrs->x_op == XDR_ENCODE) {
		buf = XDR_INLINE (xdrs, 7 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_int (xdrs, &objp->year))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->month))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->day))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->hour))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->minute))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->second))
				 return FALSE;
			 if (!xdr_long (xdrs, &objp->time_t))
				 return FALSE;
		} else {
			IXDR_PUT_LONG(buf, objp->year);
			IXDR_PUT_LONG(buf, objp->month);
			IXDR_PUT_LONG(buf, objp->day);
			IXDR_PUT_LONG(buf, objp->hour);
			IXDR_PUT_LONG(buf, objp->minute);
			IXDR_PUT_LONG(buf, objp->second);
			IXDR_PUT_LONG(buf, objp->time_t);
		}
		return TRUE;
	} else if (xdrs->x_op == XDR_DECODE) {
		buf = XDR_INLINE (xdrs, 7 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_int (xdrs, &objp->year))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->month))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->day))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->hour))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->minute))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->second))
				 return FALSE;
			 if (!xdr_long (xdrs, &objp->time_t))
				 return FALSE;
		} else {
			objp->year = IXDR_GET_LONG(buf);
			objp->month = IXDR_GET_LONG(buf);
			objp->day = IXDR_GET_LONG(buf);
			objp->hour = IXDR_GET_LONG(buf);
			objp->minute = IXDR_GET_LONG(buf);
			objp->second = IXDR_GET_LONG(buf);
			objp->time_t = IXDR_GET_LONG(buf);
		}
	 return TRUE;
	}

	 if (!xdr_int (xdrs, &objp->year))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->month))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->day))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->hour))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->minute))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->second))
		 return FALSE;
	 if (!xdr_long (xdrs, &objp->time_t))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_std_time_ret (XDR *xdrs, std_time_ret *objp)
{
	register int32_t *buf;

	 if (!xdr_errorstatus (xdrs, &objp->status))
		 return FALSE;
	switch (objp->status) {
	case FEP_OK:
		 if (!xdr_fep_std_time (xdrs, &objp->std_time_ret_u.info))
			 return FALSE;
		break;
	default:
		break;
	}
	return TRUE;
}

bool_t
xdr_protocoltype (XDR *xdrs, protocoltype *objp)
{
	register int32_t *buf;

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

bool_t
xdr_duplex (XDR *xdrs, duplex *objp)
{
	register int32_t *buf;

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

bool_t
xdr_fep_poll_info (XDR *xdrs, fep_poll_info *objp)
{
	register int32_t *buf;


	if (xdrs->x_op == XDR_ENCODE) {
		 if (!xdr_int (xdrs, &objp->D7_update))
			 return FALSE;
		 if (!xdr_protocoltype (xdrs, &objp->protocol))
			 return FALSE;
		buf = XDR_INLINE (xdrs, 14 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_int (xdrs, &objp->poll_user_info1))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->poll_user_info2))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->format))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->speed))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->mode))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->min_separation))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->delay_rts_on))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->max_send))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->delay_rts_off))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->max_reply))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->min_error))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->max_retry))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->reply_len))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->poll_error_count))
				 return FALSE;
		} else {
			IXDR_PUT_LONG(buf, objp->poll_user_info1);
			IXDR_PUT_LONG(buf, objp->poll_user_info2);
			IXDR_PUT_LONG(buf, objp->format);
			IXDR_PUT_LONG(buf, objp->speed);
			IXDR_PUT_LONG(buf, objp->mode);
			IXDR_PUT_LONG(buf, objp->min_separation);
			IXDR_PUT_LONG(buf, objp->delay_rts_on);
			IXDR_PUT_LONG(buf, objp->max_send);
			IXDR_PUT_LONG(buf, objp->delay_rts_off);
			IXDR_PUT_LONG(buf, objp->max_reply);
			IXDR_PUT_LONG(buf, objp->min_error);
			IXDR_PUT_LONG(buf, objp->max_retry);
			IXDR_PUT_LONG(buf, objp->reply_len);
			IXDR_PUT_LONG(buf, objp->poll_error_count);
		}
		return TRUE;
	} else if (xdrs->x_op == XDR_DECODE) {
		 if (!xdr_int (xdrs, &objp->D7_update))
			 return FALSE;
		 if (!xdr_protocoltype (xdrs, &objp->protocol))
			 return FALSE;
		buf = XDR_INLINE (xdrs, 14 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_int (xdrs, &objp->poll_user_info1))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->poll_user_info2))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->format))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->speed))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->mode))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->min_separation))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->delay_rts_on))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->max_send))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->delay_rts_off))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->max_reply))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->min_error))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->max_retry))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->reply_len))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->poll_error_count))
				 return FALSE;
		} else {
			objp->poll_user_info1 = IXDR_GET_LONG(buf);
			objp->poll_user_info2 = IXDR_GET_LONG(buf);
			objp->format = IXDR_GET_LONG(buf);
			objp->speed = IXDR_GET_LONG(buf);
			objp->mode = IXDR_GET_LONG(buf);
			objp->min_separation = IXDR_GET_LONG(buf);
			objp->delay_rts_on = IXDR_GET_LONG(buf);
			objp->max_send = IXDR_GET_LONG(buf);
			objp->delay_rts_off = IXDR_GET_LONG(buf);
			objp->max_reply = IXDR_GET_LONG(buf);
			objp->min_error = IXDR_GET_LONG(buf);
			objp->max_retry = IXDR_GET_LONG(buf);
			objp->reply_len = IXDR_GET_LONG(buf);
			objp->poll_error_count = IXDR_GET_LONG(buf);
		}
	 return TRUE;
	}

	 if (!xdr_int (xdrs, &objp->D7_update))
		 return FALSE;
	 if (!xdr_protocoltype (xdrs, &objp->protocol))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->poll_user_info1))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->poll_user_info2))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->format))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->speed))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->mode))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->min_separation))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->delay_rts_on))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->max_send))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->delay_rts_off))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->max_reply))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->min_error))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->max_retry))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->reply_len))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->poll_error_count))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_fep_poll_short_msg (XDR *xdrs, fep_poll_short_msg *objp)
{
	register int32_t *buf;

	int i;
	 if (!xdr_int (xdrs, &objp->message_len))
		 return FALSE;
	 if (!xdr_opaque (xdrs, objp->message, MAXSHORTMESSAGELEN))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_fep_shortpoll (XDR *xdrs, fep_shortpoll *objp)
{
	register int32_t *buf;

	 if (!xdr_fep_poll_info (xdrs, &objp->info))
		 return FALSE;
	 if (!xdr_fep_poll_short_msg (xdrs, &objp->msg))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_fep_shortpoll_list (XDR *xdrs, fep_shortpoll_list *objp)
{
	register int32_t *buf;

	int i;
	 if (!xdr_int (xdrs, &objp->count))
		 return FALSE;
	 if (!xdr_vector (xdrs, (char *)objp->polls, MAXSHORTPOLLS,
		sizeof (fep_shortpoll), (xdrproc_t) xdr_fep_shortpoll))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_fep_poll_long_msg (XDR *xdrs, fep_poll_long_msg *objp)
{
	register int32_t *buf;

	int i;
	 if (!xdr_int (xdrs, &objp->message_len))
		 return FALSE;
	 if (!xdr_opaque (xdrs, objp->message, MAXLONGMESSAGELEN))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_fep_longpoll (XDR *xdrs, fep_longpoll *objp)
{
	register int32_t *buf;

	 if (!xdr_fep_poll_info (xdrs, &objp->info))
		 return FALSE;
	 if (!xdr_fep_poll_long_msg (xdrs, &objp->msg))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_fep_longpoll_list (XDR *xdrs, fep_longpoll_list *objp)
{
	register int32_t *buf;

	int i;
	 if (!xdr_int (xdrs, &objp->count))
		 return FALSE;
	 if (!xdr_vector (xdrs, (char *)objp->polls, MAXLONGPOLLS,
		sizeof (fep_longpoll), (xdrproc_t) xdr_fep_longpoll))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_poll_length (XDR *xdrs, poll_length *objp)
{
	register int32_t *buf;

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

bool_t
xdr_fep_poll_list (XDR *xdrs, fep_poll_list *objp)
{
	register int32_t *buf;

	 if (!xdr_int (xdrs, &objp->size))
		 return FALSE;
	switch (objp->size) {
	case SHORTPOLL:
		 if (!xdr_fep_shortpoll_list (xdrs, &objp->fep_poll_list_u.shortp))
			 return FALSE;
		break;
	case LONGPOLL:
		 if (!xdr_fep_longpoll_list (xdrs, &objp->fep_poll_list_u.longp))
			 return FALSE;
		break;
	default:
		return FALSE;
	}
	return TRUE;
}

bool_t
xdr_polltype (XDR *xdrs, polltype *objp)
{
	register int32_t *buf;

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

bool_t
xdr_commandtype (XDR *xdrs, commandtype *objp)
{
	register int32_t *buf;

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

bool_t
xdr_schedulestatus (XDR *xdrs, schedulestatus *objp)
{
	register int32_t *buf;

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

bool_t
xdr_fep_schedule (XDR *xdrs, fep_schedule *objp)
{
	register int32_t *buf;


	if (xdrs->x_op == XDR_ENCODE) {
		 if (!xdr_int (xdrs, &objp->schedule))
			 return FALSE;
		 if (!xdr_int (xdrs, &objp->lineinfo))
			 return FALSE;
		 if (!xdr_polltype (xdrs, &objp->kind))
			 return FALSE;
		 if (!xdr_commandtype (xdrs, &objp->priority))
			 return FALSE;
		 if (!xdr_protocoltype (xdrs, &objp->protocol))
			 return FALSE;
		 if (!xdr_fep_std_time (xdrs, &objp->time))
			 return FALSE;
		buf = XDR_INLINE (xdrs, 11 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_int (xdrs, &objp->interval))
				 return FALSE;
			 if (!xdr_long (xdrs, &objp->at_time))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->user_info1))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->user_info2))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->system_key))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->next))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->previous))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->report))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->sequence))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->status))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->retry))
				 return FALSE;

		} else {
		IXDR_PUT_LONG(buf, objp->interval);
		IXDR_PUT_LONG(buf, objp->at_time);
		IXDR_PUT_LONG(buf, objp->user_info1);
		IXDR_PUT_LONG(buf, objp->user_info2);
		IXDR_PUT_LONG(buf, objp->system_key);
		IXDR_PUT_LONG(buf, objp->next);
		IXDR_PUT_LONG(buf, objp->previous);
		IXDR_PUT_LONG(buf, objp->report);
		IXDR_PUT_LONG(buf, objp->sequence);
		IXDR_PUT_LONG(buf, objp->status);
		IXDR_PUT_LONG(buf, objp->retry);
		}
		 if (!xdr_fep_poll_list (xdrs, &objp->fep_polls))
			 return FALSE;
		return TRUE;
	} else if (xdrs->x_op == XDR_DECODE) {
		 if (!xdr_int (xdrs, &objp->schedule))
			 return FALSE;
		 if (!xdr_int (xdrs, &objp->lineinfo))
			 return FALSE;
		 if (!xdr_polltype (xdrs, &objp->kind))
			 return FALSE;
		 if (!xdr_commandtype (xdrs, &objp->priority))
			 return FALSE;
		 if (!xdr_protocoltype (xdrs, &objp->protocol))
			 return FALSE;
		 if (!xdr_fep_std_time (xdrs, &objp->time))
			 return FALSE;
		buf = XDR_INLINE (xdrs, 11 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_int (xdrs, &objp->interval))
				 return FALSE;
			 if (!xdr_long (xdrs, &objp->at_time))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->user_info1))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->user_info2))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->system_key))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->next))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->previous))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->report))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->sequence))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->status))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->retry))
				 return FALSE;

		} else {
		objp->interval = IXDR_GET_LONG(buf);
		objp->at_time = IXDR_GET_LONG(buf);
		objp->user_info1 = IXDR_GET_LONG(buf);
		objp->user_info2 = IXDR_GET_LONG(buf);
		objp->system_key = IXDR_GET_LONG(buf);
		objp->next = IXDR_GET_LONG(buf);
		objp->previous = IXDR_GET_LONG(buf);
		objp->report = IXDR_GET_LONG(buf);
		objp->sequence = IXDR_GET_LONG(buf);
		objp->status = IXDR_GET_LONG(buf);
		objp->retry = IXDR_GET_LONG(buf);
		}
		 if (!xdr_fep_poll_list (xdrs, &objp->fep_polls))
			 return FALSE;
	 return TRUE;
	}

	 if (!xdr_int (xdrs, &objp->schedule))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->lineinfo))
		 return FALSE;
	 if (!xdr_polltype (xdrs, &objp->kind))
		 return FALSE;
	 if (!xdr_commandtype (xdrs, &objp->priority))
		 return FALSE;
	 if (!xdr_protocoltype (xdrs, &objp->protocol))
		 return FALSE;
	 if (!xdr_fep_std_time (xdrs, &objp->time))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->interval))
		 return FALSE;
	 if (!xdr_long (xdrs, &objp->at_time))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->user_info1))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->user_info2))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->system_key))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->next))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->previous))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->report))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->sequence))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->status))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->retry))
		 return FALSE;
	 if (!xdr_fep_poll_list (xdrs, &objp->fep_polls))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_answererror (XDR *xdrs, answererror *objp)
{
	register int32_t *buf;

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

bool_t
xdr_fep_pollerror (XDR *xdrs, fep_pollerror *objp)
{
	register int32_t *buf;

	 if (!xdr_answererror (xdrs, &objp->msgerror))
		 return FALSE;
	 if (!xdr_Polling_FSM_States (xdrs, &objp->state))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->perrno))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->termination))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->count))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_replystatus (XDR *xdrs, replystatus *objp)
{
	register int32_t *buf;

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

bool_t
xdr_fep_answer_info (XDR *xdrs, fep_answer_info *objp)
{
	register int32_t *buf;

	int i;

	if (xdrs->x_op == XDR_ENCODE) {
		 if (!xdr_long (xdrs, &objp->poll_time))
			 return FALSE;
		 if (!xdr_replystatus (xdrs, &objp->status))
			 return FALSE;
		buf = XDR_INLINE (xdrs, 4 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_int (xdrs, &objp->poll_user_info1))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->poll_user_info2))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->retries))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->poll_error_count))
				 return FALSE;

		} else {
		IXDR_PUT_LONG(buf, objp->poll_user_info1);
		IXDR_PUT_LONG(buf, objp->poll_user_info2);
		IXDR_PUT_LONG(buf, objp->retries);
		IXDR_PUT_LONG(buf, objp->poll_error_count);
		}
		 if (!xdr_vector (xdrs, (char *)objp->pollerror, MAXPOLLRETRY,
			sizeof (fep_pollerror), (xdrproc_t) xdr_fep_pollerror))
			 return FALSE;
		return TRUE;
	} else if (xdrs->x_op == XDR_DECODE) {
		 if (!xdr_long (xdrs, &objp->poll_time))
			 return FALSE;
		 if (!xdr_replystatus (xdrs, &objp->status))
			 return FALSE;
		buf = XDR_INLINE (xdrs, 4 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_int (xdrs, &objp->poll_user_info1))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->poll_user_info2))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->retries))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->poll_error_count))
				 return FALSE;

		} else {
		objp->poll_user_info1 = IXDR_GET_LONG(buf);
		objp->poll_user_info2 = IXDR_GET_LONG(buf);
		objp->retries = IXDR_GET_LONG(buf);
		objp->poll_error_count = IXDR_GET_LONG(buf);
		}
		 if (!xdr_vector (xdrs, (char *)objp->pollerror, MAXPOLLRETRY,
			sizeof (fep_pollerror), (xdrproc_t) xdr_fep_pollerror))
			 return FALSE;
	 return TRUE;
	}

	 if (!xdr_long (xdrs, &objp->poll_time))
		 return FALSE;
	 if (!xdr_replystatus (xdrs, &objp->status))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->poll_user_info1))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->poll_user_info2))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->retries))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->poll_error_count))
		 return FALSE;
	 if (!xdr_vector (xdrs, (char *)objp->pollerror, MAXPOLLRETRY,
		sizeof (fep_pollerror), (xdrproc_t) xdr_fep_pollerror))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_fep_answer_short_msg (XDR *xdrs, fep_answer_short_msg *objp)
{
	register int32_t *buf;

	int i;
	 if (!xdr_int (xdrs, &objp->message_len))
		 return FALSE;
	 if (!xdr_opaque (xdrs, objp->message, MAXSHORTREPLYLEN))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_fep_shortanswer (XDR *xdrs, fep_shortanswer *objp)
{
	register int32_t *buf;

	 if (!xdr_fep_answer_info (xdrs, &objp->info))
		 return FALSE;
	 if (!xdr_fep_answer_short_msg (xdrs, &objp->msg))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_fep_shortanswer_list (XDR *xdrs, fep_shortanswer_list *objp)
{
	register int32_t *buf;

	int i;
	 if (!xdr_int (xdrs, &objp->count))
		 return FALSE;
	 if (!xdr_vector (xdrs, (char *)objp->answers, MAXSHORTPOLLS,
		sizeof (fep_shortanswer), (xdrproc_t) xdr_fep_shortanswer))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_fep_answer_long_msg (XDR *xdrs, fep_answer_long_msg *objp)
{
	register int32_t *buf;

	int i;
	 if (!xdr_int (xdrs, &objp->message_len))
		 return FALSE;
	 if (!xdr_opaque (xdrs, objp->message, MAXLONGREPLYLEN))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_fep_longanswer (XDR *xdrs, fep_longanswer *objp)
{
	register int32_t *buf;

	 if (!xdr_fep_answer_info (xdrs, &objp->info))
		 return FALSE;
	 if (!xdr_fep_answer_long_msg (xdrs, &objp->msg))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_fep_longanswer_list (XDR *xdrs, fep_longanswer_list *objp)
{
	register int32_t *buf;

	int i;
	 if (!xdr_int (xdrs, &objp->count))
		 return FALSE;
	 if (!xdr_vector (xdrs, (char *)objp->answers, MAXLONGPOLLS,
		sizeof (fep_longanswer), (xdrproc_t) xdr_fep_longanswer))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_fep_answer_list (XDR *xdrs, fep_answer_list *objp)
{
	register int32_t *buf;

	 if (!xdr_int (xdrs, &objp->size))
		 return FALSE;
	switch (objp->size) {
	case SHORTPOLL:
		 if (!xdr_fep_shortanswer_list (xdrs, &objp->fep_answer_list_u.shortp))
			 return FALSE;
		break;
	case LONGPOLL:
		 if (!xdr_fep_longanswer_list (xdrs, &objp->fep_answer_list_u.longp))
			 return FALSE;
		break;
	default:
		return FALSE;
	}
	return TRUE;
}

bool_t
xdr_replykind (XDR *xdrs, replykind *objp)
{
	register int32_t *buf;

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

bool_t
xdr_fep_reply (XDR *xdrs, fep_reply *objp)
{
	register int32_t *buf;


	if (xdrs->x_op == XDR_ENCODE) {
		buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_int (xdrs, &objp->reply))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->schedule))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->lineinfo))
				 return FALSE;

		} else {
		IXDR_PUT_LONG(buf, objp->reply);
		IXDR_PUT_LONG(buf, objp->schedule);
		IXDR_PUT_LONG(buf, objp->lineinfo);
		}
		 if (!xdr_polltype (xdrs, &objp->kind))
			 return FALSE;
		 if (!xdr_replykind (xdrs, &objp->flag))
			 return FALSE;
		buf = XDR_INLINE (xdrs, 6 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_int (xdrs, &objp->schedule_sequence))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->global_sequence))
				 return FALSE;
			 if (!xdr_long (xdrs, &objp->schedule_time))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->user_info1))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->user_info2))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->system_key))
				 return FALSE;

		} else {
		IXDR_PUT_LONG(buf, objp->schedule_sequence);
		IXDR_PUT_LONG(buf, objp->global_sequence);
		IXDR_PUT_LONG(buf, objp->schedule_time);
		IXDR_PUT_LONG(buf, objp->user_info1);
		IXDR_PUT_LONG(buf, objp->user_info2);
		IXDR_PUT_LONG(buf, objp->system_key);
		}
		 if (!xdr_fep_answer_list (xdrs, &objp->answers))
			 return FALSE;
		return TRUE;
	} else if (xdrs->x_op == XDR_DECODE) {
		buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_int (xdrs, &objp->reply))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->schedule))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->lineinfo))
				 return FALSE;

		} else {
		objp->reply = IXDR_GET_LONG(buf);
		objp->schedule = IXDR_GET_LONG(buf);
		objp->lineinfo = IXDR_GET_LONG(buf);
		}
		 if (!xdr_polltype (xdrs, &objp->kind))
			 return FALSE;
		 if (!xdr_replykind (xdrs, &objp->flag))
			 return FALSE;
		buf = XDR_INLINE (xdrs, 6 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_int (xdrs, &objp->schedule_sequence))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->global_sequence))
				 return FALSE;
			 if (!xdr_long (xdrs, &objp->schedule_time))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->user_info1))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->user_info2))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->system_key))
				 return FALSE;

		} else {
		objp->schedule_sequence = IXDR_GET_LONG(buf);
		objp->global_sequence = IXDR_GET_LONG(buf);
		objp->schedule_time = IXDR_GET_LONG(buf);
		objp->user_info1 = IXDR_GET_LONG(buf);
		objp->user_info2 = IXDR_GET_LONG(buf);
		objp->system_key = IXDR_GET_LONG(buf);
		}
		 if (!xdr_fep_answer_list (xdrs, &objp->answers))
			 return FALSE;
	 return TRUE;
	}

	 if (!xdr_int (xdrs, &objp->reply))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->schedule))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->lineinfo))
		 return FALSE;
	 if (!xdr_polltype (xdrs, &objp->kind))
		 return FALSE;
	 if (!xdr_replykind (xdrs, &objp->flag))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->schedule_sequence))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->global_sequence))
		 return FALSE;
	 if (!xdr_long (xdrs, &objp->schedule_time))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->user_info1))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->user_info2))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->system_key))
		 return FALSE;
	 if (!xdr_fep_answer_list (xdrs, &objp->answers))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_schedule_ret (XDR *xdrs, schedule_ret *objp)
{
	register int32_t *buf;

	 if (!xdr_errorstatus (xdrs, &objp->status))
		 return FALSE;
	switch (objp->status) {
	case FEP_OK:
		 if (!xdr_fep_schedule (xdrs, &objp->schedule_ret_u.info))
			 return FALSE;
		break;
	default:
		break;
	}
	return TRUE;
}

bool_t
xdr_fep_reply_request (XDR *xdrs, fep_reply_request *objp)
{
	register int32_t *buf;

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

bool_t
xdr_reply_ret (XDR *xdrs, reply_ret *objp)
{
	register int32_t *buf;

	 if (!xdr_errorstatus (xdrs, &objp->status))
		 return FALSE;
	switch (objp->status) {
	case FEP_OK:
		 if (!xdr_fep_reply (xdrs, &objp->reply_ret_u.info))
			 return FALSE;
		break;
	default:
		break;
	}
	return TRUE;
}

bool_t
xdr_init_form (XDR *xdrs, init_form *objp)
{
	register int32_t *buf;

	int i;
	 if (!xdr_vector (xdrs, (char *)objp->host, 10,
		sizeof (char), (xdrproc_t) xdr_char))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->config))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_fep_setschedule (XDR *xdrs, fep_setschedule *objp)
{
	register int32_t *buf;

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

bool_t
xdr_statusflags (XDR *xdrs, statusflags *objp)
{
	register int32_t *buf;

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

bool_t
xdr_fep_lineop (XDR *xdrs, fep_lineop *objp)
{
	register int32_t *buf;

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

bool_t
xdr_ipprotocol (XDR *xdrs, ipprotocol *objp)
{
	register int32_t *buf;

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

bool_t
xdr_action (XDR *xdrs, action *objp)
{
	register int32_t *buf;

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

bool_t
xdr_portstatus (XDR *xdrs, portstatus *objp)
{
	register int32_t *buf;

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

bool_t
xdr_fep_report (XDR *xdrs, fep_report *objp)
{
	register int32_t *buf;

	int i;

	if (xdrs->x_op == XDR_ENCODE) {
		 if (!xdr_int (xdrs, &objp->report))
			 return FALSE;
		 if (!xdr_opaque (xdrs, objp->dest, MAXADDRLEN))
			 return FALSE;
		 if (!xdr_opaque (xdrs, objp->logfile, MAXADDRLEN))
			 return FALSE;
		 if (!xdr_opaque (xdrs, objp->monitor, MAXADDRLEN))
			 return FALSE;
		 if (!xdr_int (xdrs, &objp->port))
			 return FALSE;
		 if (!xdr_ipprotocol (xdrs, &objp->protocol))
			 return FALSE;
		 if (!xdr_int (xdrs, &objp->update))
			 return FALSE;
		 if (!xdr_action (xdrs, &objp->action))
			 return FALSE;
		 if (!xdr_int (xdrs, &objp->reconnect))
			 return FALSE;
		 if (!xdr_portstatus (xdrs, &objp->status))
			 return FALSE;
		buf = XDR_INLINE (xdrs, 4 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_int (xdrs, &objp->perrno))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->debug))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->pid))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->semaphore))
				 return FALSE;
		} else {
			IXDR_PUT_LONG(buf, objp->perrno);
			IXDR_PUT_LONG(buf, objp->debug);
			IXDR_PUT_LONG(buf, objp->pid);
			IXDR_PUT_LONG(buf, objp->semaphore);
		}
		return TRUE;
	} else if (xdrs->x_op == XDR_DECODE) {
		 if (!xdr_int (xdrs, &objp->report))
			 return FALSE;
		 if (!xdr_opaque (xdrs, objp->dest, MAXADDRLEN))
			 return FALSE;
		 if (!xdr_opaque (xdrs, objp->logfile, MAXADDRLEN))
			 return FALSE;
		 if (!xdr_opaque (xdrs, objp->monitor, MAXADDRLEN))
			 return FALSE;
		 if (!xdr_int (xdrs, &objp->port))
			 return FALSE;
		 if (!xdr_ipprotocol (xdrs, &objp->protocol))
			 return FALSE;
		 if (!xdr_int (xdrs, &objp->update))
			 return FALSE;
		 if (!xdr_action (xdrs, &objp->action))
			 return FALSE;
		 if (!xdr_int (xdrs, &objp->reconnect))
			 return FALSE;
		 if (!xdr_portstatus (xdrs, &objp->status))
			 return FALSE;
		buf = XDR_INLINE (xdrs, 4 * BYTES_PER_XDR_UNIT);
		if (buf == NULL) {
			 if (!xdr_int (xdrs, &objp->perrno))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->debug))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->pid))
				 return FALSE;
			 if (!xdr_int (xdrs, &objp->semaphore))
				 return FALSE;
		} else {
			objp->perrno = IXDR_GET_LONG(buf);
			objp->debug = IXDR_GET_LONG(buf);
			objp->pid = IXDR_GET_LONG(buf);
			objp->semaphore = IXDR_GET_LONG(buf);
		}
	 return TRUE;
	}

	 if (!xdr_int (xdrs, &objp->report))
		 return FALSE;
	 if (!xdr_opaque (xdrs, objp->dest, MAXADDRLEN))
		 return FALSE;
	 if (!xdr_opaque (xdrs, objp->logfile, MAXADDRLEN))
		 return FALSE;
	 if (!xdr_opaque (xdrs, objp->monitor, MAXADDRLEN))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->port))
		 return FALSE;
	 if (!xdr_ipprotocol (xdrs, &objp->protocol))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->update))
		 return FALSE;
	 if (!xdr_action (xdrs, &objp->action))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->reconnect))
		 return FALSE;
	 if (!xdr_portstatus (xdrs, &objp->status))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->perrno))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->debug))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->pid))
		 return FALSE;
	 if (!xdr_int (xdrs, &objp->semaphore))
		 return FALSE;
	return TRUE;
}

bool_t
xdr_report_ret (XDR *xdrs, report_ret *objp)
{
	register int32_t *buf;

	 if (!xdr_errorstatus (xdrs, &objp->status))
		 return FALSE;
	switch (objp->status) {
	case FEP_OK:
		 if (!xdr_fep_report (xdrs, &objp->report_ret_u.info))
			 return FALSE;
		break;
	default:
		break;
	}
	return TRUE;
}
