btmux-0.6-rc4/doc/
btmux-0.6-rc4/event/
btmux-0.6-rc4/game/
btmux-0.6-rc4/game/maps/
btmux-0.6-rc4/game/mechs/
btmux-0.6-rc4/game/text/help/
btmux-0.6-rc4/game/text/help/cat_faction/
btmux-0.6-rc4/game/text/help/cat_inform/
btmux-0.6-rc4/game/text/help/cat_misc/
btmux-0.6-rc4/game/text/help/cat_mux/
btmux-0.6-rc4/game/text/help/cat_mux/cat_commands/
btmux-0.6-rc4/game/text/help/cat_mux/cat_functions/
btmux-0.6-rc4/game/text/help/cat_templates/
btmux-0.6-rc4/game/text/wizhelp/
btmux-0.6-rc4/include/
btmux-0.6-rc4/misc/
btmux-0.6-rc4/python/
btmux-0.6-rc4/src/hcode/btech/
btmux-0.6-rc4/tree/
/*
 * db_rw.h
 */
#ifndef __MMDB_H__
#define __MMDB_H__
#include "copyright.h"

struct mmdb_t {
	void *base;
	void *ppos;
	void *end;
	int length;
	int fd;
};

struct mmdb_t *mmdb_open_read(char *filename);
struct mmdb_t *mmdb_open_write(char *filename);
void mmdb_resize(struct mmdb_t *, int length);
void mmdb_close(struct mmdb_t *);
void *mmdb_read(struct mmdb_t *, void *dest, int length);
void mmdb_write(struct mmdb_t *, void *data, int length);

void mmdb_write_opaque(struct mmdb_t *, void *data, int length);
void mmdb_read_opaque(struct mmdb_t *, void *dest, int max);
void mmdb_write_string(struct mmdb_t *, char *data);
char *mmdb_read_string(struct mmdb_t *);

void mmdb_write_uint(struct mmdb_t *, unsigned int); /* Deprecated */
unsigned int mmdb_read_uint(struct mmdb_t *); /* Deprecated */

#define mmdb_write_uint8(db,val) mmdb_write_uint32(db, (uint32_t)val);
#define mmdb_read_uint8(db) (uint8_t)mmdb_read_uint32(db);
#define mmdb_write_uint16(db,val) mmdb_write_uint32(db, (uint32_t)val);
#define mmdb_read_uint16(db) (uint8_t)mmdb_read_uint32(db);

void mmdb_write_uint32(struct mmdb_t *, uint32_t);
uint32_t mmdb_read_uint32(struct mmdb_t *);
void mmdb_write_uint64(struct mmdb_t *, uint64_t);
uint64_t mmdb_read_uint64(struct mmdb_t *);

void mmdb_write_single(struct mmdb_t *, float);
float mmdb_read_single(struct mmdb_t *);
void mmdb_write_double(struct mmdb_t *, double);
double mmdb_read_double(struct mmdb_t *);


#endif