/*
Header file for the UnterMud DB layer, as applied to MUSH 2.0
Andrew Molitor, amolitor@eagle.wesleyan.edu
1991
*/
typedef struct Attr {
int size;
char *data;
} Attr;
/*
some machines stdio use different parameters to tell fopen to open
a file for creation and binary read/write. that is why they call it
the "standard" I/O library, I guess. for HP/UX, you need to have
this "rb+", and make sure the file already exists before use. bleah
*/
#define FOPEN_BINARY_RW "a+"
#ifdef VMS
#define MAXPATHLEN 256
#define NOSYSTYPES_H
#define NOSYSFILE_H
#endif VMS
/*
Maximum key size. MUSH has a define somewhere for this, possibly even MAXKEY.
Use that instead of this. grep around and replace all refs to MAXKEY with
whatever it is MUSH uses.
*/
#define MAXKEY 17
/* If your malloc() returns void or char pointers... */
/* typedef void *mall_t; */
typedef char *mall_t;
/* default (runtime-resettable) cache parameters */
#define CACHE_DEPTH 20
#define CACHE_WIDTH 512
/* Macros for calling the DB layer */
#define DB_INIT() dddb_init()
#define DB_CLOSE() dddb_close()
#define DB_SYNC() dddb_sync()
#define DB_GET(n) dddb_get(n)
#define DB_PUT(o,n) dddb_put(o,n)
#define DB_CHECK(s) dddb_check(s)
#define DB_DEL(n,f) dddb_del(n,f)
#define DB_BACKUP(f) dddb_backup(f)
#define DB_TRAVSTART() dddb_travstart()
#define DB_TRAVERSE(b) dddb_traverse(b)
#define DB_TRAVEND() dddb_travend()
#define CMD__DBCONFIG cmd__dddbconfig
extern Attr *cache_get();
extern int cache_put();
extern int cache_check();
extern int cache_init();
extern void cache_reset();
extern int cache_sync();
extern int cache_del();
extern Attr *attrfromFILE();