shithub: svcfs

ref: 3d0b6a15a45a2ec0afca34ce8d9041735be42513
dir: /alt.h/

View raw version
typedef struct Buffer Buffer;
typedef struct Notify Notify;

struct Buffer
{
	char	*name;
	char	title[1024];
	char	status[1024];
	char	aside[1024];
	int	fd;
	Notify	*notify;

	Buffer	*next;

	// Passed by the service
	void	(*input)(char*);
	char	*(*ctl)(char*, char*);
};

struct Notify
{
	char	*data;
	Notify	*next;
};

Buffer *bufferCreate(void(*fn)(char*), char*(*fn)(char*, char*));
Buffer *bufferSearch(Buffer*, char*);
char *bufferDrop(Buffer*, char*);
char *bufferPush(Buffer*, char*);
void bufferDestroy(Buffer*);

void* emalloc(int);
char* estrdup(char*);

char *mtpt;
char *srvpt;
char *user;
char *logdir;
int debug;

void clattach(Req*);
void clstat(Req*);
char *clwalk1(Fid*, char*, Qid*);
char *clclone(Fid*, Fid*);
void clopen(Req*);
void clread(Req*);
void clwrite(Req*);
void clflush(Req*);
void cldestroyfid(Fid*);
void clstart(Srv*);
void clend(Srv*);

void svcattach(Req*);
void svcstat(Req*);
char *svcwalk1(Fid*, char*, Qid*);
char *svcclone(Fid*, Fid*);
void svcopen(Req*);
void svcread(Req*);
void svcwrite(Req*);
void svcflush(Req*);
void svcdestroyfid(Fid*);
void svcstart(Srv*);
void svcend(Srv*);