📄 vac.h
字号:
typedef struct VacFS VacFS;#pragma incomplete VacFStypedef struct VacDir VacDir;typedef struct VacFile VacFile;#pragma incomplete VacFiletypedef struct VacDirEnum VacDirEnum;#pragma incomplete VacDirEnum/* * 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 */};enum { MetaMagic = 0x5656fc79, MetaHeaderSize = 12, MetaIndexSize = 4, IndexEntrySize = 8, DirMagic = 0x1c4d9072,};enum { DirPlan9Entry = 1, /* not valid in version >= 9 */ DirNTEntry, /* not valid in version >= 9 */ DirQidSpaceEntry, DirGenEntry, /* not valid in version >= 9 */};struct VacDir { 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 */};VacFS *vfsOpen(VtSession *z, char *file, int readOnly, long ncache);VacFS *vfsCreate(VtSession *z, int bsize, long ncache);int vfsGetBlockSize(VacFS*);int vfsIsReadOnly(VacFS*);VacFile *vfsGetRoot(VacFS*);long vfsGetCacheSize(VacFS*);int vfsSetCacheSize(VacFS*, long);int vfsSnapshot(VacFS*, char *src, char *dst);int vfsSync(VacFS*);int vfsClose(VacFS*);int vfsGetScore(VacFS*, uchar score[VtScoreSize]);/* * other ideas * * VacFS *vfsSnapshot(VacFS*, char *src); * int vfsGraft(VacFS*, char *name, VacFS*); */VacFile *vfOpen(VacFS*, char *path);VacFile *vfCreate(VacFile*, char *elem, ulong perm, char *user);VacFile *vfWalk(VacFile*, char *elem);int vfRemove(VacFile*, char*);int vfRead(VacFile*, void *, int n, vlong offset);int vfWrite(VacFile*, void *, int n, vlong offset, char *user);int vfReadPacket(VacFile*, Packet**, vlong offset);int vfWritePacket(VacFile*, Packet*, vlong offset, char *user);uvlong vfGetId(VacFile*);ulong vfGetMcount(VacFile*);int vfIsDir(VacFile*);int vfGetBlockScore(VacFile*, ulong bn, uchar score[VtScoreSize]);int vfGetSize(VacFile*, uvlong *size);int vfGetDir(VacFile*, VacDir*);int vfSetDir(VacFile*, VacDir*);int vfGetVtEntry(VacFile*, VtEntry*);VacFile *vfGetParent(VacFile*);int vfSync(VacFile*);VacFile *vfIncRef(VacFile*);void vfDecRef(VacFile*);VacDirEnum *vfDirEnum(VacFile*);int vfIsRoot(VacFile *vf);void vdCleanup(VacDir *dir);void vdCopy(VacDir *dst, VacDir *src);VacDirEnum *vdeOpen(VacFS*, char *path);int vdeRead(VacDirEnum*, VacDir *, int n);void vdeFree(VacDirEnum*);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -