1 /* $NetBSD: coda_venus.h,v 1.4 2002/03/27 05:10:40 phil Exp $ */ 2 3 /* 4 * 5 * Coda: an Experimental Distributed File System 6 * Release 3.1 7 * 8 * Copyright (c) 1987-1998 Carnegie Mellon University 9 * All Rights Reserved 10 * 11 * Permission to use, copy, modify and distribute this software and its 12 * documentation is hereby granted, provided that both the copyright 13 * notice and this permission notice appear in all copies of the 14 * software, derivative works or modified versions, and any portions 15 * thereof, and that both notices appear in supporting documentation, and 16 * that credit is given to Carnegie Mellon University in all documents 17 * and publicity pertaining to direct or indirect use of this code or its 18 * derivatives. 19 * 20 * CODA IS AN EXPERIMENTAL SOFTWARE SYSTEM AND IS KNOWN TO HAVE BUGS, 21 * SOME OF WHICH MAY HAVE SERIOUS CONSEQUENCES. CARNEGIE MELLON ALLOWS 22 * FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION. CARNEGIE MELLON 23 * DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER 24 * RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE OR OF 25 * ANY DERIVATIVE WORK. 26 * 27 * Carnegie Mellon encourages users of this software to return any 28 * improvements or extensions that they make, and to grant Carnegie 29 * Mellon the rights to redistribute these changes without encumbrance. 30 * 31 * @(#) coda/coda_venus.h,v 1.1.1.1 1998/08/29 21:26:45 rvb Exp $ 32 */ 33 34 int 35 venus_root(void *mdp, 36 struct ucred *cred, struct proc *p, 37 /*out*/ ViceFid *VFid); 38 39 int 40 venus_open(void *mdp, ViceFid *fid, int flag, 41 struct ucred *cred, struct proc *p, 42 /*out*/ dev_t *dev, ino_t *inode); 43 44 int 45 venus_close(void *mdp, ViceFid *fid, int flag, 46 struct ucred *cred, struct proc *p); 47 48 void 49 venus_read(void); 50 51 void 52 venus_write(void); 53 54 int 55 venus_ioctl(void *mdp, ViceFid *fid, 56 int com, int flag, caddr_t data, 57 struct ucred *cred, struct proc *p); 58 59 int 60 venus_getattr(void *mdp, ViceFid *fid, 61 struct ucred *cred, struct proc *p, 62 /*out*/ struct vattr *vap); 63 64 int 65 venus_setattr(void *mdp, ViceFid *fid, struct vattr *vap, 66 struct ucred *cred, struct proc *p); 67 68 int 69 venus_access(void *mdp, ViceFid *fid, int mode, 70 struct ucred *cred, struct proc *p); 71 72 int 73 venus_readlink(void *mdp, ViceFid *fid, 74 struct ucred *cred, struct proc *p, 75 /*out*/ char **str, int *len); 76 77 int 78 venus_fsync(void *mdp, ViceFid *fid, 79 struct ucred *cred, struct proc *p); 80 81 int 82 venus_lookup(void *mdp, ViceFid *fid, 83 const char *nm, int len, 84 struct ucred *cred, struct proc *p, 85 /*out*/ ViceFid *VFid, int *vtype); 86 87 int 88 venus_create(void *mdp, ViceFid *fid, 89 const char *nm, int len, int exclusive, int mode, struct vattr *va, 90 struct ucred *cred, struct proc *p, 91 /*out*/ ViceFid *VFid, struct vattr *attr); 92 93 int 94 venus_remove(void *mdp, ViceFid *fid, 95 const char *nm, int len, 96 struct ucred *cred, struct proc *p); 97 98 int 99 venus_link(void *mdp, ViceFid *fid, ViceFid *tfid, 100 const char *nm, int len, 101 struct ucred *cred, struct proc *p); 102 103 int 104 venus_rename(void *mdp, ViceFid *fid, ViceFid *tfid, 105 const char *nm, int len, const char *tnm, int tlen, 106 struct ucred *cred, struct proc *p); 107 108 int 109 venus_mkdir(void *mdp, ViceFid *fid, 110 const char *nm, int len, struct vattr *va, 111 struct ucred *cred, struct proc *p, 112 /*out*/ ViceFid *VFid, struct vattr *ova); 113 114 int 115 venus_rmdir(void *mdp, ViceFid *fid, 116 const char *nm, int len, 117 struct ucred *cred, struct proc *p); 118 119 int 120 venus_symlink(void *mdp, ViceFid *fid, 121 const char *lnm, int llen, const char *nm, int len, struct vattr *va, 122 struct ucred *cred, struct proc *p); 123 124 int 125 venus_readdir(void *mdp, ViceFid *fid, 126 int count, int offset, 127 struct ucred *cred, struct proc *p, 128 /*out*/ char *buffer, int *len); 129 130 int 131 venus_statfs(void *mdp, struct ucred *cred, struct proc *p, 132 /*out*/ struct coda_statfs *fsp); 133 134 int 135 venus_fhtovp(void *mdp, ViceFid *fid, 136 struct ucred *cred, struct proc *p, 137 /*out*/ ViceFid *VFid, int *vtype); 138