90 lines · 1.2 KB · C
RawDownload
/* memventi.c */ typedef unsigned char uchar;typedef unsigned long long uvlong;typedef ushort uint16;typedef uint uint32;typedef uvlong uint64;  enum {	Magicsize	= 4,	Scoresize	= 20,	Indexscoresize	= 8,	Diskiheadersize	= Indexscoresize+1+6,	Diskdheadersize	= Magicsize+Scoresize+1+2, 	Chainentriesmin	= 8,	Bufallocsize	= 1*1024*1024,	Chainallocn	= 8*1024, 	Datamax		= 56 * 1024,	Stringmax	= 1024, 	Headermagic	= 0x2f9d81e5,};  typedef struct DHeader DHeader;typedef struct IHeader IHeader; struct DHeader {	uchar score[Scoresize];	uchar type;	ushort size;};  struct IHeader {	uchar indexscore[Indexscoresize];	uchar type;	uvlong offset;};  /* proto.c */enum {	Rerror		= 1,	Tping,	Rping,	Thello,	Rhello,	Tgoodbye,	Rgoodbye,	Tread		= 12,	Rread,	Twrite,	Rwrite,	Tsync,	Rsync,}; typedef struct Vmsg Vmsg; struct Vmsg {	ushort msize;	uchar op;	uchar tag;	uchar score[Scoresize];	uchar type;	ushort count;	char *msg;	uchar *data;	ushort dsize;};  /* util.c */typedef struct Lock Lock;typedef struct RWLock RWLock; struct Lock {	pthread_mutex_t lock;}; struct RWLock {	pthread_rwlock_t rwlock;}; extern int debugflag;extern struct syslog_data sdata;