ref: 74dc57b5fcfa1c98de646674040741f543d358ec
dir: /preamble.inc/
#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*);
int (*ls)(int,Dir*,void*);
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));
}