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

#ifndef	_RXGEN_VLDBINT_
#define	_RXGEN_VLDBINT_

#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 "../afs/param.h"
#include "../h/types.h"
#ifndef	SOCK_DGRAM  /* XXXXX */
#include "../h/socket.h"
#endif
#ifndef	DTYPE_SOCKET  /* XXXXX */
#ifdef AFS_DEC_ENV
#include "../h/smp_lock.h"
#endif
#include "../h/file.h"
#endif
#ifndef	S_IFMT  /* XXXXX */
#include "../h/stat.h"
#endif
#ifndef	IPPROTO_UDP /* XXXXX */
#include "../netinet/in.h"
#endif
#ifndef	DST_USA  /* XXXXX */
#include "../h/time.h"
#endif
#include "../rpc/types.h"
#ifndef	XDR_GETLONG /* XXXXX */
#include "../rpc/xdr.h"
#endif
#include "../afsint/rxgen_consts.h"
#include "../afs/osi.h"
#include "../afsint/rx.h"
#else	/* KERNEL */
#include <sys/types.h>
#include <rx/xdr.h>
#include <rx/rx.h>
#include <afs/rxgen_consts.h>
#endif	/* KERNEL */

#include	"vl_opcodes.h"	/* directly to other places */
#define VLDBVERSION 3
#define OVLDBVERSION 2
#define VL_MAXNAMELEN 65
#define OMAXNSERVERS 8
#define NMAXNSERVERS 13
#define MAXTYPES 3

struct VldbUpdateEntry {
	u_long Mask;
	char name[VL_MAXNAMELEN];
	long spares3;
	long flags;
	u_long ReadOnlyId;
	u_long BackupId;
	long cloneId;
	long nModifiedRepsites;
	u_long RepsitesMask[OMAXNSERVERS];
	long RepsitesTargetServer[OMAXNSERVERS];
	long RepsitesTargetPart[OMAXNSERVERS];
	long RepsitesNewServer[OMAXNSERVERS];
	long RepsitesNewPart[OMAXNSERVERS];
	long RepsitesNewFlags[OMAXNSERVERS];
};
typedef struct VldbUpdateEntry VldbUpdateEntry;
bool_t xdr_VldbUpdateEntry();

#define VLUPDATE_VOLUMENAME 0x0001
#define VLUPDATE_FLAGS 0x0004
#define VLUPDATE_READONLYID 0x0008
#define VLUPDATE_BACKUPID 0x0010
#define VLUPDATE_REPSITES 0x0020
#define VLUPDATE_CLONEID 0x0080
#define VLUPDATE_VOLNAMEHASH 0x0100
#define VLUPDATE_REPS_DELETE 0x0100
#define VLUPDATE_REPS_ADD 0x0200
#define VLUPDATE_REPS_MODSERV 0x0400
#define VLUPDATE_REPS_MODPART 0x0800
#define VLUPDATE_REPS_MODFLAG 0x1000
#define DEFAULTBULK 10000

typedef struct bulk {
	u_int bulk_len;
	char *bulk_val;
} bulk;
bool_t xdr_bulk();


struct VldbListByAttributes {
	u_long Mask;
	long server;
	long partition;
	long spares3;
	long volumeid;
	long flag;
};
typedef struct VldbListByAttributes VldbListByAttributes;
bool_t xdr_VldbListByAttributes();

#define VLLIST_SERVER 0x1
#define VLLIST_PARTITION 0x2
#define VLLIST_VOLUMEID 0x8
#define VLLIST_FLAG 0x10

struct vldbentry {
	char name[VL_MAXNAMELEN];
	long spares3;
	long nServers;
	long serverNumber[OMAXNSERVERS];
	long serverPartition[OMAXNSERVERS];
	long serverFlags[OMAXNSERVERS];
	u_long volumeId[MAXTYPES];
	long cloneId;
	long flags;
};
typedef struct vldbentry vldbentry;
bool_t xdr_vldbentry();


struct nvldbentry {
	char name[VL_MAXNAMELEN];
	long nServers;
	long serverNumber[NMAXNSERVERS];
	long serverPartition[NMAXNSERVERS];
	long serverFlags[NMAXNSERVERS];
	u_long volumeId[MAXTYPES];
	long cloneId;
	long flags;
	long spares1;
	long spares2;
	long spares3;
	long spares4;
	long spares5;
	long spares6;
	long spares7;
	long spares8;
	long spares9;
};
typedef struct nvldbentry nvldbentry;
bool_t xdr_nvldbentry();


struct vital_vlheader {
	long vldbversion;
	long headersize;
	long freePtr;
	long eofPtr;
	long allocs;
	long frees;
	long MaxVolumeId;
	long totalEntries[MAXTYPES];
};
typedef struct vital_vlheader vital_vlheader;
bool_t xdr_vital_vlheader();

#define MAX_NUMBER_OPCODES 30

struct vldstats {
	u_long start_time;
	long requests[MAX_NUMBER_OPCODES];
	long aborts[MAX_NUMBER_OPCODES];
	long reserved[5];
};
typedef struct vldstats vldstats;
bool_t xdr_vldstats();

#define	VLF_RWEXISTS	    0x1000  /* flags for whole vldb entry */
#define	VLF_ROEXISTS	    0x2000
#define	VLF_BACKEXISTS	    0x4000
#define	VLSF_NEWREPSITE	    0x01    /* flags for indiv. server entry */
#define	VLSF_ROVOL	    0x02
#define	VLSF_RWVOL	    0x04
#define	VLSF_BACKVOL	    0x08

typedef struct bulkentries {
	u_int bulkentries_len;
	vldbentry *bulkentries_val;
} bulkentries;
bool_t xdr_bulkentries();


typedef struct nbulkentries {
	u_int nbulkentries_len;
	nvldbentry *nbulkentries_val;
} nbulkentries;
bool_t xdr_nbulkentries();


typedef struct bulkaddrs {
	u_int bulkaddrs_len;
	u_long *bulkaddrs_val;
} bulkaddrs;
bool_t xdr_bulkaddrs();


typedef struct single_vldbentry *vldblist;
bool_t xdr_vldblist();


struct single_vldbentry {
	vldbentry VldbEntry;
	vldblist next_vldb;
};
typedef struct single_vldbentry single_vldbentry;
bool_t xdr_single_vldbentry();


struct vldb_list {
	vldblist node;
};
typedef struct vldb_list vldb_list;
bool_t xdr_vldb_list();


typedef struct single_nvldbentry *nvldblist;
bool_t xdr_nvldblist();


struct single_nvldbentry {
	nvldbentry VldbEntry;
	nvldblist next_vldb;
};
typedef struct single_nvldbentry single_nvldbentry;
bool_t xdr_single_nvldbentry();


struct nvldb_list {
	nvldblist node;
};
typedef struct nvldb_list nvldb_list;
bool_t xdr_nvldb_list();


typedef struct VLCallBack *vlcallback;
bool_t xdr_vlcallback();


struct VLCallBack {
	u_long CallBackVersion;
	u_long ExpirationTime;
	u_long CallBackType;
	u_long Handle;
};
typedef struct VLCallBack VLCallBack;
bool_t xdr_VLCallBack();


/* Opcode-related useful stats for package: VL_ */
#define VL_LOWEST_OPCODE   501
#define VL_HIGHEST_OPCODE	523
#define VL_NUMBER_OPCODES	23

#endif	/* _RXGEN_VLDBINT_ */
