3 * Coda: an Experimental Distributed File System
6 * Copyright (c) 1987-1998 Carnegie Mellon University
9 * Permission to use, copy, modify and distribute this software and its
10 * documentation is hereby granted, provided that both the copyright
11 * notice and this permission notice appear in all copies of the
12 * software, derivative works or modified versions, and any portions
13 * thereof, and that both notices appear in supporting documentation, and
14 * that credit is given to Carnegie Mellon University in all documents
15 * and publicity pertaining to direct or indirect use of this code or its
18 * CODA IS AN EXPERIMENTAL SOFTWARE SYSTEM AND IS KNOWN TO HAVE BUGS,
19 * SOME OF WHICH MAY HAVE SERIOUS CONSEQUENCES. CARNEGIE MELLON ALLOWS
20 * FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION. CARNEGIE MELLON
21 * DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER
22 * RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE OR OF
23 * ANY DERIVATIVE WORK.
25 * Carnegie Mellon encourages users of this software to return any
26 * improvements or extensions that they make, and to grant Carnegie
27 * Mellon the rights to redistribute these changes without encumbrance.
29 * @(#) src/sys/coda/coda_venus.h,v 1.1.1.1 1998/08/29 21:14:52 rvb Exp $
30 * $FreeBSD: src/sys/coda/coda_venus.h,v 1.4 1999/08/28 00:40:56 peter Exp $
31 * $DragonFly: src/sys/vfs/coda/Attic/coda_venus.h,v 1.3 2003/06/25 03:55:44 dillon Exp $
37 struct ucred *cred, struct thread *td,
38 /*out*/ ViceFid *VFid);
41 venus_open(void *mdp, ViceFid *fid, int flag,
42 struct ucred *cred, struct thread *td,
43 /*out*/ dev_t *dev, ino_t *inode);
46 venus_close(void *mdp, ViceFid *fid, int flag,
47 struct ucred *cred, struct thread *td);
56 venus_ioctl(void *mdp, ViceFid *fid,
57 int com, int flag, caddr_t data,
58 struct ucred *cred, struct thread *td);
61 venus_getattr(void *mdp, ViceFid *fid,
62 struct ucred *cred, struct thread *td,
63 /*out*/ struct vattr *vap);
66 venus_setattr(void *mdp, ViceFid *fid, struct vattr *vap,
67 struct ucred *cred, struct thread *td);
70 venus_access(void *mdp, ViceFid *fid, int mode,
71 struct ucred *cred, struct thread *td);
74 venus_readlink(void *mdp, ViceFid *fid,
75 struct ucred *cred, struct thread *td,
76 /*out*/ char **str, int *len);
79 venus_fsync(void *mdp, ViceFid *fid,
80 struct ucred *cred, struct thread *td);
83 venus_lookup(void *mdp, ViceFid *fid,
84 const char *nm, int len,
85 struct ucred *cred, struct thread *td,
86 /*out*/ ViceFid *VFid, int *vtype);
89 venus_create(void *mdp, ViceFid *fid,
90 const char *nm, int len, int exclusive, int mode, struct vattr *va,
91 struct ucred *cred, struct thread *td,
92 /*out*/ ViceFid *VFid, struct vattr *attr);
95 venus_remove(void *mdp, ViceFid *fid,
96 const char *nm, int len,
97 struct ucred *cred, struct thread *td);
100 venus_link(void *mdp, ViceFid *fid, ViceFid *tfid,
101 const char *nm, int len,
102 struct ucred *cred, struct thread *td);
105 venus_rename(void *mdp, ViceFid *fid, ViceFid *tfid,
106 const char *nm, int len, const char *tnm, int tlen,
107 struct ucred *cred, struct thread *td);
110 venus_mkdir(void *mdp, ViceFid *fid,
111 const char *nm, int len, struct vattr *va,
112 struct ucred *cred, struct thread *td,
113 /*out*/ ViceFid *VFid, struct vattr *ova);
116 venus_rmdir(void *mdp, ViceFid *fid,
117 const char *nm, int len,
118 struct ucred *cred, struct thread *td);
121 venus_symlink(void *mdp, ViceFid *fid,
122 const char *lnm, int llen, const char *nm, int len, struct vattr *va,
123 struct ucred *cred, struct thread *td);
126 venus_readdir(void *mdp, ViceFid *fid,
127 int count, int offset,
128 struct ucred *cred, struct thread *td,
129 /*out*/ char *buffer, int *len);
132 venus_fhtovp(void *mdp, ViceFid *fid,
133 struct ucred *cred, struct thread *td,
134 /*out*/ ViceFid *VFid, int *vtype);