📄 vac.h
字号:
typedef struct DirEntry DirEntry;typedef struct MetaBlock MetaBlock;typedef struct MetaEntry MetaEntry;enum { MetaMagic = 0x5656fc7a, MetaHeaderSize = 12, MetaIndexSize = 4, IndexEntrySize = 8, DirMagic = 0x1c4d9072,};/* * Mode bits */enum { ModeOtherExec = (1<<0), ModeOtherWrite = (1<<1), ModeOtherRead = (1<<2), ModeGroupExec = (1<<3), ModeGroupWrite = (1<<4), ModeGroupRead = (1<<5), ModeOwnerExec = (1<<6), ModeOwnerWrite = (1<<7), ModeOwnerRead = (1<<8), ModeSticky = (1<<9), ModeSetUid = (1<<10), ModeSetGid = (1<<11), ModeAppend = (1<<12), /* append only file */ ModeExclusive = (1<<13), /* lock file - plan 9 */ ModeLink = (1<<14), /* sym link */ ModeDir = (1<<15), /* duplicate of DirEntry */ ModeHidden = (1<<16), /* MS-DOS */ ModeSystem = (1<<17), /* MS-DOS */ ModeArchive = (1<<18), /* MS-DOS */ ModeTemporary = (1<<19), /* MS-DOS */ ModeSnapshot = (1<<20), /* read only snapshot */};/* optional directory entry fields */enum { DePlan9 = 1, /* not valid in version >= 9 */ DeNT, /* not valid in version >= 9 */ DeQidSpace, DeGen, /* not valid in version >= 9 */};struct DirEntry { char *elem; /* path element */ ulong entry; /* entry in directory for data */ ulong gen; /* generation of data entry */ ulong mentry; /* entry in directory for meta */ ulong mgen; /* generation of meta entry */ uvlong size; /* size of file */ uvlong qid; /* unique file id */ char *uid; /* owner id */ char *gid; /* group id */ char *mid; /* last modified by */ ulong mtime; /* last modified time */ ulong mcount; /* number of modifications: can wrap! */ ulong ctime; /* directory entry last changed */ ulong atime; /* last time accessed */ ulong mode; /* various mode bits */ /* plan 9 */ int plan9; uvlong p9path; ulong p9version; /* sub space of qid */ int qidSpace; uvlong qidOffset; /* qid offset */ uvlong qidMax; /* qid maximum */};struct MetaEntry { uchar *p; ushort size;};struct MetaBlock { int maxsize; /* size of block */ int size; /* size used */ int free; /* free space within used size */ int maxindex; /* entries allocated for table */ int nindex; /* amount of table used */ int botch; /* compensate for my stupidity */ uchar *buf;};void deCleanup(DirEntry*);void deCopy(DirEntry*, DirEntry*);int deSize(DirEntry*);void dePack(DirEntry*, MetaEntry*);int deUnpack(DirEntry*, MetaEntry*);void mbInit(MetaBlock*, uchar*, int, int);int mbUnpack(MetaBlock*, uchar*, int);void mbInsert(MetaBlock*, int, MetaEntry*);void mbDelete(MetaBlock*, int);void mbPack(MetaBlock*);uchar *mbAlloc(MetaBlock*, int);int mbResize(MetaBlock*, MetaEntry*, int);int mbSearch(MetaBlock*, char*, int*, MetaEntry*);void meUnpack(MetaEntry*, MetaBlock*, int);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -