/* Machine generated file -- Do NOT edit */

#ifndef	_RXGEN_TOKEN_
#define	_RXGEN_TOKEN_

#ifdef	KERNEL
/* The following 'ifndefs' are not a good solution to the vendor's omission of surrounding all system includes with 'ifndef's since it requires that this file is included after the system includes...*/
#include <afsconfig.h>
#include "afs/param.h"
#ifdef	UKERNEL
#include "afs/sysincludes.h"
#include "rx/xdr.h"
#include "rx/rx.h"
#include "rx/rx_globals.h"
#else	/* UKERNEL */
#include "h/types.h"
#ifndef	SOCK_DGRAM  /* XXXXX */
#include "h/socket.h"
#endif
#ifndef	DTYPE_SOCKET  /* XXXXX */
#ifndef AFS_LINUX_ENV
#include "h/file.h"
#endif
#endif
#ifndef	S_IFMT  /* XXXXX */
#include "h/stat.h"
#endif
#if defined (AFS_OBSD_ENV) && !defined (MLEN)
#include "sys/mbuf.h"
#endif
#ifndef	IPPROTO_UDP /* XXXXX */
#include "netinet/in.h"
#endif
#ifndef	DST_USA  /* XXXXX */
#include "h/time.h"
#endif
#ifndef	XDR_GETLONG /* XXXXX */
#ifdef AFS_LINUX_ENV
#ifndef quad_t
#define quad_t __quad_t
#define u_quad_t __u_quad_t
#endif
#endif
#include "rx/xdr.h"
#endif /* XDR_GETLONG */
#endif   /* UKERNEL */
#include "afs/rxgen_consts.h"
#include "afs_osi.h"
#include "rx/rx.h"
#include "rx/rx_globals.h"
#else	/* KERNEL */
#include <afs/param.h>
#include <afs/stds.h>
#include <sys/types.h>
#include <rx/xdr.h>
#include <rx/rx.h>
#include <rx/rx_globals.h>
#include <afs/rxgen_consts.h>
#endif	/* KERNEL */

#ifdef AFS_NT40_ENV
#ifndef AFS_RXGEN_EXPORT
#define AFS_RXGEN_EXPORT __declspec(dllimport)
#endif /* AFS_RXGEN_EXPORT */
#else /* AFS_NT40_ENV */
#define AFS_RXGEN_EXPORT
#endif /* AFS_NT40_ENV */

#define AFSTOKEN_RK_TIX_MAX 12000

struct token_rxkad {
	afs_int32 rk_viceid;
	afs_int32 rk_kvno;
	char rk_key[8];
	afs_int32 rk_begintime;
	afs_int32 rk_endtime;
	afs_int32 rk_primary_flag;
	struct rk_ticket {
		u_int rk_ticket_len;
		char *rk_ticket_val;
	} rk_ticket;
};
typedef struct token_rxkad token_rxkad;
bool_t xdr_token_rxkad(XDR *xdrs, token_rxkad *objp);

#define AFSTOKEN_UNION_NOAUTH 0
#define AFSTOKEN_UNION_KAD 2

struct ktc_tokenUnion {
	afs_int32 at_type;
	union {
		token_rxkad at_kad;
	} ktc_tokenUnion_u;
};
typedef struct ktc_tokenUnion ktc_tokenUnion;
bool_t xdr_ktc_tokenUnion(XDR *xdrs, ktc_tokenUnion *objp);

#define AFSTOKEN_LENGTH_MAX 16384

typedef struct token_opaque {
	u_int token_opaque_len;
	char *token_opaque_val;
} token_opaque;
bool_t xdr_token_opaque(XDR *xdrs, token_opaque *objp);

#define AFSTOKEN_EX_SETPAG 0x00000001
#define AFSTOKEN_MAX 8
#define AFSTOKEN_CELL_MAX 64

struct ktc_setTokenData {
	afs_int32 flags;
	char *cell;
	struct tokens {
		u_int tokens_len;
		token_opaque *tokens_val;
	} tokens;
};
typedef struct ktc_setTokenData ktc_setTokenData;
bool_t xdr_ktc_setTokenData(XDR *xdrs, ktc_setTokenData *objp);

#endif	/* _RXGEN_TOKEN_ */
