1 /* $NetBSD: lfs_extern.h,v 1.3 1994/12/14 13:03:47 mycroft Exp $ */ 2 3 /*- 4 * Copyright (c) 1991, 1993, 1994 5 * The Regents of the University of California. All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 3. All advertising materials mentioning features or use of this software 16 * must display the following acknowledgement: 17 * This product includes software developed by the University of 18 * California, Berkeley and its contributors. 19 * 4. Neither the name of the University nor the names of its contributors 20 * may be used to endorse or promote products derived from this software 21 * without specific prior written permission. 22 * 23 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33 * SUCH DAMAGE. 34 * 35 * @(#)lfs_extern.h 8.3 (Berkeley) 6/16/94 36 */ 37 38 struct fid; 39 struct mount; 40 struct nameidata; 41 struct proc; 42 struct statfs; 43 struct timeval; 44 struct inode; 45 struct uio; 46 struct mbuf; 47 48 __BEGIN_DECLS 49 u_long cksum __P((void *, size_t)); /* XXX */ 50 int lfs_balloc __P((struct vnode *, u_long, daddr_t, struct buf **)); 51 int lfs_blkatoff __P((struct vop_blkatoff_args *)); 52 int lfs_bwrite __P((struct vop_bwrite_args *)); 53 int lfs_check __P((struct vnode *, daddr_t)); 54 int lfs_close __P((struct vop_close_args *)); 55 int lfs_create __P((struct vop_create_args *)); 56 int lfs_fhtovp __P((struct mount *, struct fid *, struct mbuf *, 57 struct vnode **, int *, struct ucred **)); 58 int lfs_fsync __P((struct vop_fsync_args *)); 59 int lfs_getattr __P((struct vop_getattr_args *)); 60 struct dinode * 61 lfs_ifind __P((struct lfs *, ino_t, struct dinode *)); 62 int lfs_inactive __P((struct vop_inactive_args *)); 63 int lfs_init __P((void)); 64 int lfs_initseg __P((struct lfs *)); 65 int lfs_link __P((struct vop_link_args *)); 66 int lfs_makeinode __P((int, struct nameidata *, struct inode **)); 67 int lfs_mkdir __P((struct vop_mkdir_args *)); 68 int lfs_mknod __P((struct vop_mknod_args *)); 69 int lfs_mount __P((struct mount *, 70 char *, caddr_t, struct nameidata *, struct proc *)); 71 int lfs_mountroot __P((void)); 72 struct buf * 73 lfs_newbuf __P((struct vnode *, daddr_t, size_t)); 74 int lfs_read __P((struct vop_read_args *)); 75 int lfs_reclaim __P((struct vop_reclaim_args *)); 76 int lfs_remove __P((struct vop_remove_args *)); 77 int lfs_rmdir __P((struct vop_rmdir_args *)); 78 int lfs_rename __P((struct vop_rename_args *)); 79 void lfs_seglock __P((struct lfs *, unsigned long flags)); 80 void lfs_segunlock __P((struct lfs *)); 81 int lfs_segwrite __P((struct mount *, int)); 82 int lfs_statfs __P((struct mount *, struct statfs *, struct proc *)); 83 int lfs_symlink __P((struct vop_symlink_args *)); 84 int lfs_sync __P((struct mount *, int, struct ucred *, struct proc *)); 85 int lfs_truncate __P((struct vop_truncate_args *)); 86 int lfs_unmount __P((struct mount *, int, struct proc *)); 87 int lfs_update __P((struct vop_update_args *)); 88 int lfs_valloc __P((struct vop_valloc_args *)); 89 int lfs_vcreate __P((struct mount *, ino_t, struct vnode **)); 90 int lfs_vfree __P((struct vop_vfree_args *)); 91 int lfs_vflush __P((struct vnode *)); 92 int lfs_vget __P((struct mount *, ino_t, struct vnode **)); 93 int lfs_vptofh __P((struct vnode *, struct fid *)); 94 int lfs_vref __P((struct vnode *)); 95 void lfs_vunref __P((struct vnode *)); 96 int lfs_write __P((struct vop_write_args *)); 97 #ifdef DEBUG 98 void lfs_dump_dinode __P((struct dinode *)); 99 void lfs_dump_super __P((struct lfs *)); 100 #endif 101 __END_DECLS 102 extern int (**lfs_vnodeop_p)(); 103 extern int (**lfs_specop_p)(); 104 #ifdef FIFO 105 extern int (**lfs_fifoop_p)(); 106 #define LFS_FIFOOPS lfs_fifoop_p 107 #else 108 #define LFS_FIFOOPS NULL 109 #endif 110