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