📄 coda.h
字号:
int flags;};struct coda_close_out { struct coda_out_hdr out;};/* coda_ioctl: */struct coda_ioctl_in { struct coda_in_hdr ih; ViceFid VFid; int cmd; int len; int rwflag; char *data; /* Place holder for data. */};struct coda_ioctl_out { struct coda_out_hdr oh; int len; caddr_t data; /* Place holder for data. */};/* coda_getattr: */struct coda_getattr_in { struct coda_in_hdr ih; ViceFid VFid;};struct coda_getattr_out { struct coda_out_hdr oh; struct coda_vattr attr;};/* coda_setattr: NO_OUT */struct coda_setattr_in { struct coda_in_hdr ih; ViceFid VFid; struct coda_vattr attr;};struct coda_setattr_out { struct coda_out_hdr out;};/* coda_access: NO_OUT */struct coda_access_in { struct coda_in_hdr ih; ViceFid VFid; int flags;};struct coda_access_out { struct coda_out_hdr out;};/* lookup flags */#define CLU_CASE_SENSITIVE 0x01#define CLU_CASE_INSENSITIVE 0x02/* coda_lookup: */struct coda_lookup_in { struct coda_in_hdr ih; ViceFid VFid; int name; /* Place holder for data. */ int flags; };struct coda_lookup_out { struct coda_out_hdr oh; ViceFid VFid; int vtype;};/* coda_create: */struct coda_create_in { struct coda_in_hdr ih; ViceFid VFid; struct coda_vattr attr; int excl; int mode; int name; /* Place holder for data. */};struct coda_create_out { struct coda_out_hdr oh; ViceFid VFid; struct coda_vattr attr;};/* coda_remove: NO_OUT */struct coda_remove_in { struct coda_in_hdr ih; ViceFid VFid; int name; /* Place holder for data. */};struct coda_remove_out { struct coda_out_hdr out;};/* coda_link: NO_OUT */struct coda_link_in { struct coda_in_hdr ih; ViceFid sourceFid; /* cnode to link *to* */ ViceFid destFid; /* Directory in which to place link */ int tname; /* Place holder for data. */};struct coda_link_out { struct coda_out_hdr out;};/* coda_rename: NO_OUT */struct coda_rename_in { struct coda_in_hdr ih; ViceFid sourceFid; int srcname; ViceFid destFid; int destname;};struct coda_rename_out { struct coda_out_hdr out;};/* coda_mkdir: */struct coda_mkdir_in { struct coda_in_hdr ih; ViceFid VFid; struct coda_vattr attr; int name; /* Place holder for data. */};struct coda_mkdir_out { struct coda_out_hdr oh; ViceFid VFid; struct coda_vattr attr;};/* coda_rmdir: NO_OUT */struct coda_rmdir_in { struct coda_in_hdr ih; ViceFid VFid; int name; /* Place holder for data. */};struct coda_rmdir_out { struct coda_out_hdr out;};/* coda_symlink: NO_OUT */struct coda_symlink_in { struct coda_in_hdr ih; ViceFid VFid; /* Directory to put symlink in */ int srcname; struct coda_vattr attr; int tname;};struct coda_symlink_out { struct coda_out_hdr out;};/* coda_readlink: */struct coda_readlink_in { struct coda_in_hdr ih; ViceFid VFid;};struct coda_readlink_out { struct coda_out_hdr oh; int count; caddr_t data; /* Place holder for data. */};/* coda_fsync: NO_OUT */struct coda_fsync_in { struct coda_in_hdr ih; ViceFid VFid;};struct coda_fsync_out { struct coda_out_hdr out;};/* coda_vget: */struct coda_vget_in { struct coda_in_hdr ih; ViceFid VFid;};struct coda_vget_out { struct coda_out_hdr oh; ViceFid VFid; int vtype;};/* CODA_SIGNAL is out-of-band, doesn't need data. *//* CODA_INVALIDATE is a venus->kernel call *//* CODA_FLUSH is a venus->kernel call *//* coda_purgeuser: *//* CODA_PURGEUSER is a venus->kernel call */struct coda_purgeuser_out { struct coda_out_hdr oh; struct coda_cred cred;};/* coda_zapfile: *//* CODA_ZAPFILE is a venus->kernel call */struct coda_zapfile_out { struct coda_out_hdr oh; ViceFid CodaFid;};/* coda_zapdir: *//* CODA_ZAPDIR is a venus->kernel call */ struct coda_zapdir_out { struct coda_out_hdr oh; ViceFid CodaFid;};/* coda_zapnode: *//* CODA_ZAPVNODE is a venus->kernel call */ struct coda_zapvnode_out { struct coda_out_hdr oh; struct coda_cred cred; ViceFid VFid;};/* coda_purgefid: *//* CODA_PURGEFID is a venus->kernel call */ struct coda_purgefid_out { struct coda_out_hdr oh; ViceFid CodaFid;};/* coda_replace: *//* CODA_REPLACE is a venus->kernel call */ struct coda_replace_out { /* coda_replace is a venus->kernel call */ struct coda_out_hdr oh; ViceFid NewFid; ViceFid OldFid;};/* coda_open_by_fd: */struct coda_open_by_fd_in { struct coda_in_hdr ih; ViceFid VFid; int flags;};struct coda_open_by_fd_out { struct coda_out_hdr oh; int fd;#ifdef __KERNEL__ struct file *fh; /* not passed from userspace but used in-kernel only */#endif};/* coda_open_by_path: */struct coda_open_by_path_in { struct coda_in_hdr ih; ViceFid VFid; int flags;};struct coda_open_by_path_out { struct coda_out_hdr oh; int path;};/* coda_statfs: NO_IN */struct coda_statfs_in { struct coda_in_hdr in;};struct coda_statfs_out { struct coda_out_hdr oh; struct coda_statfs stat;};/* * Occasionally, we don't cache the fid returned by CODA_LOOKUP. * For instance, if the fid is inconsistent. * This case is handled by setting the top bit of the type result parameter. */#define CODA_NOCACHE 0x80000000union inputArgs { struct coda_in_hdr ih; /* NB: every struct below begins with an ih */ struct coda_open_in coda_open; struct coda_store_in coda_store; struct coda_release_in coda_release; struct coda_close_in coda_close; struct coda_ioctl_in coda_ioctl; struct coda_getattr_in coda_getattr; struct coda_setattr_in coda_setattr; struct coda_access_in coda_access; struct coda_lookup_in coda_lookup; struct coda_create_in coda_create; struct coda_remove_in coda_remove; struct coda_link_in coda_link; struct coda_rename_in coda_rename; struct coda_mkdir_in coda_mkdir; struct coda_rmdir_in coda_rmdir; struct coda_symlink_in coda_symlink; struct coda_readlink_in coda_readlink; struct coda_fsync_in coda_fsync; struct coda_vget_in coda_vget; struct coda_open_by_fd_in coda_open_by_fd; struct coda_open_by_path_in coda_open_by_path; struct coda_statfs_in coda_statfs;};union outputArgs { struct coda_out_hdr oh; /* NB: every struct below begins with an oh */ struct coda_root_out coda_root; struct coda_open_out coda_open; struct coda_ioctl_out coda_ioctl; struct coda_getattr_out coda_getattr; struct coda_lookup_out coda_lookup; struct coda_create_out coda_create; struct coda_mkdir_out coda_mkdir; struct coda_readlink_out coda_readlink; struct coda_vget_out coda_vget; struct coda_purgeuser_out coda_purgeuser; struct coda_zapfile_out coda_zapfile; struct coda_zapdir_out coda_zapdir; struct coda_zapvnode_out coda_zapvnode; struct coda_purgefid_out coda_purgefid; struct coda_replace_out coda_replace; struct coda_open_by_fd_out coda_open_by_fd; struct coda_open_by_path_out coda_open_by_path; struct coda_statfs_out coda_statfs;}; union coda_downcalls { /* CODA_INVALIDATE is a venus->kernel call */ /* CODA_FLUSH is a venus->kernel call */ struct coda_purgeuser_out purgeuser; struct coda_zapfile_out zapfile; struct coda_zapdir_out zapdir; struct coda_zapvnode_out zapvnode; struct coda_purgefid_out purgefid; struct coda_replace_out replace;};/* * Used for identifying usage of "Control" and pioctls */#define PIOCPARM_MASK 0x0000ffffstruct ViceIoctl { caddr_t in, out; /* Data to be transferred in, or out */ short in_size; /* Size of input buffer <= 2K */ short out_size; /* Maximum size of output buffer, <= 2K */};struct PioctlData { const char *path; int follow; struct ViceIoctl vi;};#define CODA_CONTROL ".CONTROL"#define CODA_CONTROLLEN 8#define CTL_VOL -1#define CTL_VNO -1#define CTL_UNI -1#define CTL_INO -1#define CTL_FILE "/coda/.CONTROL"#define IS_CTL_FID(fidp) ((fidp)->Volume == CTL_VOL &&\ (fidp)->Vnode == CTL_VNO &&\ (fidp)->Unique == CTL_UNI)/* Data passed to mount */#define CODA_MOUNT_VERSION 1struct coda_mount_data { int version; int fd; /* Opened device */};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -