📄 dat.h
字号:
typedef struct Chan Chan;typedef struct Command Command;typedef struct Conf Conf;typedef struct Cons Cons;typedef struct Devcall Devcall;#define MAXBUFSIZE (16*1024) /* max. buffer size */#include "portdat.h"struct Chan{ int chan; /* fd request came in on */ QLock rlock, wlock; /* lock for reading/writing messages on chan */ int type; int flags; long whotime; File* flist; /* base of file structures */ Lock flock; /* manipulate flist */ RWLock reflock; /* lock for Tflush */ int msize; /* version */ int authed; /* someone other than ``none'' has authed *//* 9p1 auth */ uchar chal[8]; uchar rchal[8]; int idoffset; int idvec; Lock idlock;};/* * console cons.flag flags */enum{ Fchat = (1<<0), /* print out filesys rpc traffic */ Fuid = (1<<2), /* print out uids */ /* debugging flags for drivers */};struct Cons{ int flags; /* overall flags for all channels */ int uid; /* botch -- used to get uid on cons_create */ int gid; /* botch -- used to get gid on cons_create */ int allow; /* no-protection flag */ long offset; /* used to read files, c.f. fchar */ char* arg; /* pointer to remaining line */ Chan *chan; /* console channel */ Chan *srvchan; /* local server channel */ Filter work; /* thruput in messages */ Filter rate; /* thruput in bytes */ Filter bhit; /* getbufs that hit */ Filter bread; /* getbufs that miss and read */ Filter binit; /* getbufs that miss and dont read */ Filter tags[MAXTAG]; /* reads of each type of block */};struct Conf{ ulong niobuf; /* number of iobufs to allocate */ ulong nuid; /* distinct uids */ ulong uidspace; /* space for uid names -- derrived from nuid */ ulong gidspace; /* space for gid names -- derrived from nuid */ ulong nserve; /* server processes */ ulong nfile; /* number of fid -- system wide */ ulong nwpath; /* number of active paths, derrived from nfile */ ulong bootsize; /* number of bytes reserved for booting */};struct Command{ char *string; void (*func)(void); char *args;};struct Devcall{ void (*init)(Device); void (*ream)(Device); int (*check)(Device); long (*super)(Device); long (*root)(Device); long (*size)(Device); int (*read)(Device, long, void*); int (*write)(Device, long, void*);};/* * device types */enum{ Devnone = 0, Devwren, MAXDEV};/* * file systems */enum{ MAXFILSYS = 4};/* * should be in portdat.h */#define QPDIR 0x80000000L#define QPNONE 0#define QPROOT 1#define QPSUPER 2/* * perm argument in p9 create */#define PDIR (1L<<31) /* is a directory */#define PAPND (1L<<30) /* is append only */#define PLOCK (1L<<29) /* is locked on open */#define NOF (-1)#define FID1 1#define FID2 2#define FID3 3#define SECOND(n) (n)#define MINUTE(n) (n*SECOND(60))#define HOUR(n) (n*MINUTE(60))#define DAY(n) (n*HOUR(24))#define TLOCK MINUTE(5)#define CHAT(cp) (chat)#define QID9P1(a,b) (Qid9p1){a,b}extern Uid* uid;extern char* uidspace;extern short* gidspace;extern char* errstring[MAXERR];extern Chan* chans;extern RWLock mainlock;extern long boottime;extern Tlock *tlocks;extern Device devnone;extern Filsys filesys[];extern char service[];extern char* tagnames[];extern Conf conf;extern Cons cons;extern Command command[];extern Chan *chan;extern Devcall devcall[];extern char *progname;extern char *procname;extern long niob;extern long nhiob;extern Hiob *hiob;extern int chat;extern int writeallow;extern int wstatallow;extern int allownone;extern int noatime;extern int writegroup;extern Lock wpathlock;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -