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

#ifndef	_RXGEN_BUDB_
#define	_RXGEN_BUDB_

#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 <ubik.h>
#else	/* UKERNEL */
#include "h/types.h"
#ifndef	SOCK_DGRAM  /* XXXXX */
#include "h/socket.h"
#endif
struct ubik_client;
#ifndef	DTYPE_SOCKET  /* XXXXX */
#ifndef AFS_LINUX22_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 AFS_LINUX22_ENV
#include "rpc/types.h"
#endif /* AFS_LINUX22_ENV */
#ifndef	XDR_GETLONG /* XXXXX */
#ifdef AFS_LINUX22_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 "rxgen_consts.h"
#include "afs_osi.h"
#include "rx/rx.h"
#else	/* KERNEL */
#include <afs/param.h>
#include <afs/stds.h>
#include <sys/types.h>
#include <rx/xdr.h>
#include <rx/rx.h>
#include <afs/rxgen_consts.h>
#include <ubik.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 */

#ifndef NEVERDATE
#define NEVERDATE 037777777777 /* a date that will never come */
#endif
#ifndef Date
#define Date afs_uint32
#endif
#define BUDB_MAJORVERSION 2
#ifndef dumpId
#define dumpId afs_uint32
#endif
#define TB_DUMPSCHEDULE 0
#define TB_VOLUMESET 1
#define TB_TAPEHOSTS 2
#define TB_NUM 3 /* no. of block types */
#define TB_MAX 6 /* unused items are spares */

struct budb_principal {
	char name[256];
	char instance[128];
	char cell[256];
};
typedef struct budb_principal budb_principal;
bool_t xdr_budb_principal(XDR *xdrs, budb_principal *objp);


struct budb_tapeSet {
	afs_int32 id;
	char tapeServer[32];
	char format[32];
	afs_int32 maxTapes;
	afs_int32 a;
	afs_int32 b;
};
typedef struct budb_tapeSet budb_tapeSet;
bool_t xdr_budb_tapeSet(XDR *xdrs, budb_tapeSet *objp);

#define budb_MakeTapeName(name,set,seq) sprintf (name, (set)->format, (set)->a*(seq) + (set)->b)

struct budb_dumpEntry {
	afs_uint32 id;
	afs_uint32 parent;
	afs_int32 level;
	afs_int32 flags;
	char volumeSetName[32];
	char dumpPath[256];
	char name[32];
	afs_uint32 created;
	afs_uint32 incTime;
	afs_int32 nVolumes;
	struct budb_tapeSet tapes;
	struct budb_principal dumper;
	afs_uint32 initialDumpID;
	afs_uint32 appendedDumpID;
};
typedef struct budb_dumpEntry budb_dumpEntry;
bool_t xdr_budb_dumpEntry(XDR *xdrs, budb_dumpEntry *objp);

#define BUDB_DUMP_INCOMPLETE (1<<0) /* some vols omitted due to errors */
#define BUDB_DUMP_TAPEERROR (1<<1) /* tape error during dump */
#define BUDB_DUMP_INPROGRESS (1<<2)
#define BUDB_DUMP_ABORTED (1<<3) /* aborted: prob. dump unavailable */
#define BUDB_DUMP_XBSA_NSS (1<<8) /* dump was done with a client    */
#define BUDB_DUMP_BUTA (1<<11) /* (used by ADSM buta) == 0x800 */
#define BUDB_DUMP_ADSM (1<<12) /* (used by XBSA/ADSM buta) == 0x1000 */

struct budb_tapeEntry {
	char name[32];
	afs_int32 flags;
	afs_uint32 written;
	afs_uint32 expires;
	afs_uint32 nMBytes;
	afs_uint32 nBytes;
	afs_int32 nFiles;
	afs_int32 nVolumes;
	afs_int32 seq;
	afs_int32 labelpos;
	afs_int32 useCount;
	afs_int32 useKBytes;
	afs_uint32 dump;
};
typedef struct budb_tapeEntry budb_tapeEntry;
bool_t xdr_budb_tapeEntry(XDR *xdrs, budb_tapeEntry *objp);

#define BUDB_TAPE_TAPEERROR (1<<0)
#define BUDB_TAPE_DELETED (1<<1)
#define BUDB_TAPE_BEINGWRITTEN (1<<2) /* writing in progress */
#define BUDB_TAPE_ABORTED (1<<3) /* aborted: tape probably garbaged */
#define BUDB_TAPE_STAGED (1<<4) /* not yet on permanent media */
#define BUDB_TAPE_WRITTEN (1<<5) /* tape writing finished: all OK */

struct budb_volumeEntry {
	char name[32];
	afs_int32 flags;
	afs_int32 id;
	char server[32];
	afs_int32 partition;
	afs_int32 tapeSeq;
	afs_int32 position;
	afs_uint32 clone;
	afs_uint32 incTime;
	afs_int32 startByte;
	afs_uint32 nBytes;
	afs_int32 seq;
	afs_uint32 dump;
	char tape[32];
};
typedef struct budb_volumeEntry budb_volumeEntry;
bool_t xdr_budb_volumeEntry(XDR *xdrs, budb_volumeEntry *objp);

#define BUDB_VOL_TAPEERROR (1<<0) /* tape problem during dump */
#define BUDB_VOL_FILEERROR (1<<1) /* voldump aborted during dump */
#define BUDB_VOL_BEINGWRITTEN (1<<2)
#define BUDB_VOL_FIRSTFRAG (1<<3) /* same as low bits of tape position */
#define BUDB_VOL_LASTFRAG (1<<4)
#define BUDB_VOL_ABORTED (1<<5) /* aborted: vol probably undumped */
#define BUDB_STATINDEX 17
#define BUDB_OP_NAMES (0x7)
#define BUDB_OP_STARTS (0x7<<3)
#define BUDB_OP_ENDS (0x7<<6)
#define BUDB_OP_TIMES (0x3<<9)
#define BUDB_OP_MISC (0xff<<16)
#define BUDB_OP_DUMPNAME (1<<0)
#define BUDB_OP_VOLUMENAME (2<<0)
#define BUDB_OP_TAPENAME (3<<0)
#define BUDB_OP_TAPESEQ (4<<0)
#define BUDB_OP_STARTTIME (1<<3)
#define BUDB_OP_RANGE (1<<6)
#define BUDB_OP_NPREVIOUS (2<<6)
#define BUDB_OP_NFOLLOWING (3<<6)
#define BUDB_OP_DUMPID (2<<3)
#define BUDB_OP_CLONETIME (1<<9) /* use clone time */
#define BUDB_OP_DUMPTIME (2<<9) /* use dump time (create?) */
#define BUDB_OP_INCTIME (3<<9) /* use inc time */
#define BUDB_OP_FIRSTFRAG (1<<16)
#define BUDB_MAX_RETURN_LIST 1000

typedef struct budb_volumeList {
	u_int budb_volumeList_len;
	budb_volumeEntry *budb_volumeList_val;
} budb_volumeList;
bool_t xdr_budb_volumeList(XDR *xdrs, budb_volumeList *objp);


typedef struct budb_dumpList {
	u_int budb_dumpList_len;
	budb_dumpEntry *budb_dumpList_val;
} budb_dumpList;
bool_t xdr_budb_dumpList(XDR *xdrs, budb_dumpList *objp);


typedef struct budb_tapeList {
	u_int budb_tapeList_len;
	budb_tapeEntry *budb_tapeList_val;
} budb_tapeList;
bool_t xdr_budb_tapeList(XDR *xdrs, budb_tapeList *objp);


typedef struct budb_dumpsList {
	u_int budb_dumpsList_len;
	afs_int32 *budb_dumpsList_val;
} budb_dumpsList;
bool_t xdr_budb_dumpsList(XDR *xdrs, budb_dumpsList *objp);


typedef struct charListT {
	u_int charListT_len;
	char *charListT_val;
} charListT;
bool_t xdr_charListT(XDR *xdrs, charListT *objp);

#define BUDB_TEXT_COMPLETE 1
#define SD_DBHEADER 1
#define SD_DUMP 2
#define SD_TAPE 3
#define SD_VOLUME 4
#define SD_TEXT_DUMPSCHEDULE 5
#define SD_TEXT_VOLUMESET 6
#define SD_TEXT_TAPEHOSTS 7
#define SD_END 8
#define BUDB_OP_DATES (0x01)
#define BUDB_OP_GROUPID (0x02)
#define BUDB_OP_APPDUMP (0x01)
#define BUDB_OP_DBDUMP (0x02)

struct DbHeader {
	afs_int32 dbversion;
	afs_int32 created;
	char cell[256];
	afs_uint32 lastDumpId;
	afs_uint32 lastInstanceId;
	afs_uint32 lastTapeId;
};
typedef struct DbHeader DbHeader;
bool_t xdr_DbHeader(XDR *xdrs, DbHeader *objp);


struct structDumpHeader {
	afs_int32 type;
	afs_int32 structversion;
	afs_int32 size;
};
typedef struct structDumpHeader structDumpHeader;
bool_t xdr_structDumpHeader(XDR *xdrs, structDumpHeader *objp);


extern int BUDB_AddVolume(
	/*IN */ struct rx_connection *z_conn,
	/*I/O*/ struct budb_volumeEntry * vol);

extern int ubik_BUDB_AddVolume(
	struct ubik_client *aclient, afs_int32 aflags,
	/*I/O*/ struct budb_volumeEntry * vol);

extern afs_int32 SBUDB_AddVolume(
	/*IN */ struct rx_call *z_call,
	/*I/O*/ struct budb_volumeEntry * vol);

extern int BUDB_CreateDump(
	/*IN */ struct rx_connection *z_conn,
	/*I/O*/ struct budb_dumpEntry * dump);

extern int ubik_BUDB_CreateDump(
	struct ubik_client *aclient, afs_int32 aflags,
	/*I/O*/ struct budb_dumpEntry * dump);

extern afs_int32 SBUDB_CreateDump(
	/*IN */ struct rx_call *z_call,
	/*I/O*/ struct budb_dumpEntry * dump);

extern int BUDB_DeleteDump(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ afs_uint32 id,
	/*IN */ afs_uint32 fromTime,
	/*IN */ afs_uint32 toTime,
	/*I/O*/ budb_dumpsList * dumps);

extern int ubik_BUDB_DeleteDump(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ afs_uint32 id,
	/*IN */ afs_uint32 fromTime,
	/*IN */ afs_uint32 toTime,
	/*I/O*/ budb_dumpsList * dumps);

extern afs_int32 SBUDB_DeleteDump(
	/*IN */ struct rx_call *z_call,
	/*IN */ afs_uint32 id,
	/*IN */ afs_uint32 fromTime,
	/*IN */ afs_uint32 toTime,
	/*I/O*/ budb_dumpsList * dumps);

extern int BUDB_DeleteTape(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ struct budb_tapeEntry * tape);

extern int ubik_BUDB_DeleteTape(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ struct budb_tapeEntry * tape);

extern afs_int32 SBUDB_DeleteTape(
	/*IN */ struct rx_call *z_call,
	/*IN */ struct budb_tapeEntry * tape);

extern int BUDB_DeleteVDP(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ char * dsname,
	/*IN */ char * dumpPath,
	/*IN */ afs_int32 curDumpId);

extern int ubik_BUDB_DeleteVDP(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ char * dsname,
	/*IN */ char * dumpPath,
	/*IN */ afs_int32 curDumpId);

extern afs_int32 SBUDB_DeleteVDP(
	/*IN */ struct rx_call *z_call,
	/*IN */ char * dsname,
	/*IN */ char * dumpPath,
	/*IN */ afs_int32 curDumpId);

extern int BUDB_FindClone(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ afs_int32 dumpID,
	/*IN */ char * volName,
	/*I/O*/ afs_int32 * clonetime);

extern int ubik_BUDB_FindClone(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ afs_int32 dumpID,
	/*IN */ char * volName,
	/*I/O*/ afs_int32 * clonetime);

extern afs_int32 SBUDB_FindClone(
	/*IN */ struct rx_call *z_call,
	/*IN */ afs_int32 dumpID,
	/*IN */ char * volName,
	/*I/O*/ afs_int32 * clonetime);

extern int BUDB_FindDump(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ char * volumeName,
	/*IN */ afs_int32 beforeDate,
	/*I/O*/ struct budb_dumpEntry * deptr);

extern int ubik_BUDB_FindDump(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ char * volumeName,
	/*IN */ afs_int32 beforeDate,
	/*I/O*/ struct budb_dumpEntry * deptr);

extern afs_int32 SBUDB_FindDump(
	/*IN */ struct rx_call *z_call,
	/*IN */ char * volumeName,
	/*IN */ afs_int32 beforeDate,
	/*I/O*/ struct budb_dumpEntry * deptr);

extern int BUDB_FindLatestDump(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ char * vsname,
	/*IN */ char * dname,
	/*OUT*/ budb_dumpEntry * dumpentry);

extern int ubik_BUDB_FindLatestDump(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ char * vsname,
	/*IN */ char * dname,
	/*OUT*/ budb_dumpEntry * dumpentry);

extern afs_int32 SBUDB_FindLatestDump(
	/*IN */ struct rx_call *z_call,
	/*IN */ char * vsname,
	/*IN */ char * dname,
	/*OUT*/ budb_dumpEntry * dumpentry);

extern int BUDB_MakeDumpAppended(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ afs_int32 appendedDumpID,
	/*IN */ afs_int32 intialDumpID,
	/*IN */ afs_int32 startTapeSeq);

extern int ubik_BUDB_MakeDumpAppended(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ afs_int32 appendedDumpID,
	/*IN */ afs_int32 intialDumpID,
	/*IN */ afs_int32 startTapeSeq);

extern afs_int32 SBUDB_MakeDumpAppended(
	/*IN */ struct rx_call *z_call,
	/*IN */ afs_int32 appendedDumpID,
	/*IN */ afs_int32 intialDumpID,
	/*IN */ afs_int32 startTapeSeq);

extern int BUDB_FindLastTape(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ afs_int32 dumpID,
	/*OUT*/ struct budb_dumpEntry * dumpEntry,
	/*OUT*/ struct budb_tapeEntry * tapeEntry,
	/*OUT*/ struct budb_volumeEntry * volEntry);

extern int ubik_BUDB_FindLastTape(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ afs_int32 dumpID,
	/*OUT*/ struct budb_dumpEntry * dumpEntry,
	/*OUT*/ struct budb_tapeEntry * tapeEntry,
	/*OUT*/ struct budb_volumeEntry * volEntry);

extern afs_int32 SBUDB_FindLastTape(
	/*IN */ struct rx_call *z_call,
	/*IN */ afs_int32 dumpID,
	/*OUT*/ struct budb_dumpEntry * dumpEntry,
	/*OUT*/ struct budb_tapeEntry * tapeEntry,
	/*OUT*/ struct budb_volumeEntry * volEntry);

extern int BUDB_FinishDump(
	/*IN */ struct rx_connection *z_conn,
	/*I/O*/ struct budb_dumpEntry * dump);

extern int ubik_BUDB_FinishDump(
	struct ubik_client *aclient, afs_int32 aflags,
	/*I/O*/ struct budb_dumpEntry * dump);

extern afs_int32 SBUDB_FinishDump(
	/*IN */ struct rx_call *z_call,
	/*I/O*/ struct budb_dumpEntry * dump);

extern int BUDB_FinishTape(
	/*IN */ struct rx_connection *z_conn,
	/*I/O*/ struct budb_tapeEntry * tape);

extern int ubik_BUDB_FinishTape(
	struct ubik_client *aclient, afs_int32 aflags,
	/*I/O*/ struct budb_tapeEntry * tape);

extern afs_int32 SBUDB_FinishTape(
	/*IN */ struct rx_call *z_call,
	/*I/O*/ struct budb_tapeEntry * tape);

extern int BUDB_GetDumps(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ afs_int32 majorVersion,
	/*IN */ afs_int32 flags,
	/*IN */ char * name,
	/*IN */ afs_int32 start,
	/*IN */ afs_int32 end,
	/*IN */ afs_int32 index,
	/*OUT*/ afs_int32 * nextIndex,
	/*OUT*/ afs_int32 * dbUpdate,
	/*I/O*/ budb_dumpList * dumps);

extern int ubik_BUDB_GetDumps(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ afs_int32 majorVersion,
	/*IN */ afs_int32 flags,
	/*IN */ char * name,
	/*IN */ afs_int32 start,
	/*IN */ afs_int32 end,
	/*IN */ afs_int32 index,
	/*OUT*/ afs_int32 * nextIndex,
	/*OUT*/ afs_int32 * dbUpdate,
	/*I/O*/ budb_dumpList * dumps);

extern afs_int32 SBUDB_GetDumps(
	/*IN */ struct rx_call *z_call,
	/*IN */ afs_int32 majorVersion,
	/*IN */ afs_int32 flags,
	/*IN */ char * name,
	/*IN */ afs_int32 start,
	/*IN */ afs_int32 end,
	/*IN */ afs_int32 index,
	/*OUT*/ afs_int32 * nextIndex,
	/*OUT*/ afs_int32 * dbUpdate,
	/*I/O*/ budb_dumpList * dumps);

extern int BUDB_GetTapes(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ afs_int32 majorVersion,
	/*IN */ afs_int32 flags,
	/*IN */ char * name,
	/*IN */ afs_int32 start,
	/*IN */ afs_int32 end,
	/*IN */ afs_int32 index,
	/*OUT*/ afs_int32 * nextIndex,
	/*OUT*/ afs_int32 * dbUpdate,
	/*I/O*/ struct budb_tapeList * tapes);

extern int ubik_BUDB_GetTapes(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ afs_int32 majorVersion,
	/*IN */ afs_int32 flags,
	/*IN */ char * name,
	/*IN */ afs_int32 start,
	/*IN */ afs_int32 end,
	/*IN */ afs_int32 index,
	/*OUT*/ afs_int32 * nextIndex,
	/*OUT*/ afs_int32 * dbUpdate,
	/*I/O*/ struct budb_tapeList * tapes);

extern afs_int32 SBUDB_GetTapes(
	/*IN */ struct rx_call *z_call,
	/*IN */ afs_int32 majorVersion,
	/*IN */ afs_int32 flags,
	/*IN */ char * name,
	/*IN */ afs_int32 start,
	/*IN */ afs_int32 end,
	/*IN */ afs_int32 index,
	/*OUT*/ afs_int32 * nextIndex,
	/*OUT*/ afs_int32 * dbUpdate,
	/*I/O*/ struct budb_tapeList * tapes);

extern int BUDB_GetVolumes(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ afs_int32 majorVersion,
	/*IN */ afs_int32 flags,
	/*IN */ char * name,
	/*IN */ afs_int32 start,
	/*IN */ afs_int32 end,
	/*IN */ afs_int32 index,
	/*OUT*/ afs_int32 * nextIndex,
	/*OUT*/ afs_int32 * dbUpdate,
	/*I/O*/ budb_volumeList * volumes);

extern int ubik_BUDB_GetVolumes(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ afs_int32 majorVersion,
	/*IN */ afs_int32 flags,
	/*IN */ char * name,
	/*IN */ afs_int32 start,
	/*IN */ afs_int32 end,
	/*IN */ afs_int32 index,
	/*OUT*/ afs_int32 * nextIndex,
	/*OUT*/ afs_int32 * dbUpdate,
	/*I/O*/ budb_volumeList * volumes);

extern afs_int32 SBUDB_GetVolumes(
	/*IN */ struct rx_call *z_call,
	/*IN */ afs_int32 majorVersion,
	/*IN */ afs_int32 flags,
	/*IN */ char * name,
	/*IN */ afs_int32 start,
	/*IN */ afs_int32 end,
	/*IN */ afs_int32 index,
	/*OUT*/ afs_int32 * nextIndex,
	/*OUT*/ afs_int32 * dbUpdate,
	/*I/O*/ budb_volumeList * volumes);

extern int BUDB_UseTape(
	/*IN */ struct rx_connection *z_conn,
	/*I/O*/ struct budb_tapeEntry * tape,
	/*OUT*/ afs_int32 * new);

extern int ubik_BUDB_UseTape(
	struct ubik_client *aclient, afs_int32 aflags,
	/*I/O*/ struct budb_tapeEntry * tape,
	/*OUT*/ afs_int32 * new);

extern afs_int32 SBUDB_UseTape(
	/*IN */ struct rx_call *z_call,
	/*I/O*/ struct budb_tapeEntry * tape,
	/*OUT*/ afs_int32 * new);

extern int BUDB_GetText(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ afs_uint32 lockHandle,
	/*IN */ afs_int32 textType,
	/*IN */ afs_int32 maxLength,
	/*IN */ afs_int32 offset,
	/*OUT*/ afs_int32 * nextOffset,
	/*OUT*/ charListT * charListPtr);

extern int ubik_BUDB_GetText(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ afs_uint32 lockHandle,
	/*IN */ afs_int32 textType,
	/*IN */ afs_int32 maxLength,
	/*IN */ afs_int32 offset,
	/*OUT*/ afs_int32 * nextOffset,
	/*OUT*/ charListT * charListPtr);

extern afs_int32 SBUDB_GetText(
	/*IN */ struct rx_call *z_call,
	/*IN */ afs_uint32 lockHandle,
	/*IN */ afs_int32 textType,
	/*IN */ afs_int32 maxLength,
	/*IN */ afs_int32 offset,
	/*OUT*/ afs_int32 * nextOffset,
	/*OUT*/ charListT * charListPtr);

extern int BUDB_GetTextVersion(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ afs_int32 textType,
	/*OUT*/ afs_uint32 * tversion);

extern int ubik_BUDB_GetTextVersion(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ afs_int32 textType,
	/*OUT*/ afs_uint32 * tversion);

extern afs_int32 SBUDB_GetTextVersion(
	/*IN */ struct rx_call *z_call,
	/*IN */ afs_int32 textType,
	/*OUT*/ afs_uint32 * tversion);

extern int BUDB_SaveText(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ afs_uint32 lockHandle,
	/*IN */ afs_int32 textType,
	/*IN */ afs_int32 offset,
	/*IN */ afs_int32 flags,
	/*IN */ charListT * charListPtr);

extern int ubik_BUDB_SaveText(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ afs_uint32 lockHandle,
	/*IN */ afs_int32 textType,
	/*IN */ afs_int32 offset,
	/*IN */ afs_int32 flags,
	/*IN */ charListT * charListPtr);

extern afs_int32 SBUDB_SaveText(
	/*IN */ struct rx_call *z_call,
	/*IN */ afs_uint32 lockHandle,
	/*IN */ afs_int32 textType,
	/*IN */ afs_int32 offset,
	/*IN */ afs_int32 flags,
	/*IN */ charListT * charListPtr);

extern int BUDB_FreeAllLocks(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ afs_uint32 instanceId);

extern int ubik_BUDB_FreeAllLocks(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ afs_uint32 instanceId);

extern afs_int32 SBUDB_FreeAllLocks(
	/*IN */ struct rx_call *z_call,
	/*IN */ afs_uint32 instanceId);

extern int BUDB_FreeLock(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ afs_uint32 lockHandle);

extern int ubik_BUDB_FreeLock(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ afs_uint32 lockHandle);

extern afs_int32 SBUDB_FreeLock(
	/*IN */ struct rx_call *z_call,
	/*IN */ afs_uint32 lockHandle);

extern int BUDB_GetInstanceId(
	/*IN */ struct rx_connection *z_conn,
	/*OUT*/ afs_uint32 * instanceId);

extern int ubik_BUDB_GetInstanceId(
	struct ubik_client *aclient, afs_int32 aflags,
	/*OUT*/ afs_uint32 * instanceId);

extern afs_int32 SBUDB_GetInstanceId(
	/*IN */ struct rx_call *z_call,
	/*OUT*/ afs_uint32 * instanceId);

extern int BUDB_GetLock(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ afs_uint32 instanceId,
	/*IN */ afs_int32 lockName,
	/*IN */ afs_int32 expiration,
	/*OUT*/ afs_uint32 * lockHandle);

extern int ubik_BUDB_GetLock(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ afs_uint32 instanceId,
	/*IN */ afs_int32 lockName,
	/*IN */ afs_int32 expiration,
	/*OUT*/ afs_uint32 * lockHandle);

extern afs_int32 SBUDB_GetLock(
	/*IN */ struct rx_call *z_call,
	/*IN */ afs_uint32 instanceId,
	/*IN */ afs_int32 lockName,
	/*IN */ afs_int32 expiration,
	/*OUT*/ afs_uint32 * lockHandle);

extern int BUDB_DbVerify(
	/*IN */ struct rx_connection *z_conn,
	/*OUT*/ afs_int32 * status,
	/*OUT*/ afs_int32 * orphans,
	/*OUT*/ afs_int32 * host);

extern int ubik_BUDB_DbVerify(
	struct ubik_client *aclient, afs_int32 aflags,
	/*OUT*/ afs_int32 * status,
	/*OUT*/ afs_int32 * orphans,
	/*OUT*/ afs_int32 * host);

extern afs_int32 SBUDB_DbVerify(
	/*IN */ struct rx_call *z_call,
	/*OUT*/ afs_int32 * status,
	/*OUT*/ afs_int32 * orphans,
	/*OUT*/ afs_int32 * host);

extern int BUDB_DumpDB(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ int firstcall,
	/*IN */ afs_int32 maxLength,
	/*OUT*/ charListT * charListPtr,
	/*OUT*/ afs_int32 * flags);

extern int ubik_BUDB_DumpDB(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ int firstcall,
	/*IN */ afs_int32 maxLength,
	/*OUT*/ charListT * charListPtr,
	/*OUT*/ afs_int32 * flags);

extern afs_int32 SBUDB_DumpDB(
	/*IN */ struct rx_call *z_call,
	/*IN */ int firstcall,
	/*IN */ afs_int32 maxLength,
	/*OUT*/ charListT * charListPtr,
	/*OUT*/ afs_int32 * flags);

extern int BUDB_RestoreDbHeader(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ struct DbHeader * header);

extern int ubik_BUDB_RestoreDbHeader(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ struct DbHeader * header);

extern afs_int32 SBUDB_RestoreDbHeader(
	/*IN */ struct rx_call *z_call,
	/*IN */ struct DbHeader * header);

extern int BUDB_T_GetVersion(
	/*IN */ struct rx_connection *z_conn,
	/*OUT*/ afs_int32 * majorVersion);

extern int ubik_BUDB_T_GetVersion(
	struct ubik_client *aclient, afs_int32 aflags,
	/*OUT*/ afs_int32 * majorVersion);

extern afs_int32 SBUDB_T_GetVersion(
	/*IN */ struct rx_call *z_call,
	/*OUT*/ afs_int32 * majorVersion);

extern int BUDB_T_DumpHashTable(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ afs_int32 type,
	/*IN */ char * filename);

extern int ubik_BUDB_T_DumpHashTable(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ afs_int32 type,
	/*IN */ char * filename);

extern afs_int32 SBUDB_T_DumpHashTable(
	/*IN */ struct rx_call *z_call,
	/*IN */ afs_int32 type,
	/*IN */ char * filename);

extern int BUDB_T_DumpDatabase(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ char * filename);

extern int ubik_BUDB_T_DumpDatabase(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ char * filename);

extern afs_int32 SBUDB_T_DumpDatabase(
	/*IN */ struct rx_call *z_call,
	/*IN */ char * filename);

extern int BUDB_AddVolumes(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ struct budb_volumeList * vols);

extern int ubik_BUDB_AddVolumes(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ struct budb_volumeList * vols);

extern afs_int32 SBUDB_AddVolumes(
	/*IN */ struct rx_call *z_call,
	/*IN */ struct budb_volumeList * vols);

extern int BUDB_ListDumps(
	/*IN */ struct rx_connection *z_conn,
	/*IN */ afs_int32 sflags,
	/*IN */ char * name,
	/*IN */ afs_int32 group,
	/*IN */ afs_uint32 fromTime,
	/*IN */ afs_uint32 toTime,
	/*I/O*/ budb_dumpsList * dumps,
	/*I/O*/ budb_dumpsList * flags);

extern int ubik_BUDB_ListDumps(
	struct ubik_client *aclient, afs_int32 aflags,
	/*IN */ afs_int32 sflags,
	/*IN */ char * name,
	/*IN */ afs_int32 group,
	/*IN */ afs_uint32 fromTime,
	/*IN */ afs_uint32 toTime,
	/*I/O*/ budb_dumpsList * dumps,
	/*I/O*/ budb_dumpsList * flags);

extern afs_int32 SBUDB_ListDumps(
	/*IN */ struct rx_call *z_call,
	/*IN */ afs_int32 sflags,
	/*IN */ char * name,
	/*IN */ afs_int32 group,
	/*IN */ afs_uint32 fromTime,
	/*IN */ afs_uint32 toTime,
	/*I/O*/ budb_dumpsList * dumps,
	/*I/O*/ budb_dumpsList * flags);

extern int BUDB_ExecuteRequest(struct rx_call *);

/* Opcode-related useful stats for package: BUDB_ */
#define BUDB_LOWEST_OPCODE   0
#define BUDB_HIGHEST_OPCODE	30
#define BUDB_NUMBER_OPCODES	31

#endif	/* _RXGEN_BUDB_ */
