shithub: fsgen

ref: f207de7119046894c031b89fe934aff4a907c969
dir: /preamble.inc/

View raw version
#include <u.h>
#include <libc.h>
#include <thread.h>
#include <fcall.h>
#include <9p.h>
#include <mp.h>
#include <libsec.h>

int **filehierarchy = nil;

typedef struct Filedata Filedata;
struct Filedata {
	void (*read)(Req*);
	void (*write)(Req*);
	void (*stat)(Req*);
	
	Dir dir;
};

int SHIFT = 3;
int qidtype = -1;

static uvlong
makeqid(uvlong id)
{
	return (id<<SHIFT) | qidtype;
}

static uvlong
getqidid(uvlong qid)
{
	return (qid>>SHIFT);
}

static uvlong
breakqid(uvlong qid)
{
	return (qid & ((0x1<<SHIFT) - 1));
}