|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights ! 7: * Reserved. This file contains Original Code and/or Modifications of ! 8: * Original Code as defined in and that are subject to the Apple Public ! 9: * Source License Version 1.1 (the "License"). You may not use this file ! 10: * except in compliance with the License. Please obtain a copy of the ! 11: * License at http://www.apple.com/publicsource and read it before using ! 12: * this file. ! 13: * ! 14: * The Original Code and all software distributed under the License are ! 15: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 18: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 19: * License for the specific language governing rights and limitations ! 20: * under the License. ! 21: * ! 22: * @APPLE_LICENSE_HEADER_END@ ! 23: */ ! 24: ! 25: /* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */ ! 26: ! 27: /*- ! 28: * Copyright (c) 1991, 1993, 1994 ! 29: * The Regents of the University of California. All rights reserved. ! 30: * ! 31: * Redistribution and use in source and binary forms, with or without ! 32: * modification, are permitted provided that the following conditions ! 33: * are met: ! 34: * 1. Redistributions of source code must retain the above copyright ! 35: * notice, this list of conditions and the following disclaimer. ! 36: * 2. Redistributions in binary form must reproduce the above copyright ! 37: * notice, this list of conditions and the following disclaimer in the ! 38: * documentation and/or other materials provided with the distribution. ! 39: * 3. All advertising materials mentioning features or use of this software ! 40: * must display the following acknowledgement: ! 41: * This product includes software developed by the University of ! 42: * California, Berkeley and its contributors. ! 43: * 4. Neither the name of the University nor the names of its contributors ! 44: * may be used to endorse or promote products derived from this software ! 45: * without specific prior written permission. ! 46: * ! 47: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ! 48: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ! 49: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ! 50: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ! 51: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ! 52: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ! 53: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ! 54: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ! 55: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ! 56: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ! 57: * SUCH DAMAGE. ! 58: * ! 59: * @(#)ffs_extern.h 8.6 (Berkeley) 3/30/95 ! 60: */ ! 61: ! 62: /* ! 63: * Sysctl values for the fast filesystem. ! 64: */ ! 65: #define FFS_CLUSTERREAD 1 /* cluster reading enabled */ ! 66: #define FFS_CLUSTERWRITE 2 /* cluster writing enabled */ ! 67: #define FFS_REALLOCBLKS 3 /* block reallocation enabled */ ! 68: #define FFS_ASYNCFREE 4 /* asynchronous block freeing enabled */ ! 69: #define FFS_MAXID 5 /* number of valid ffs ids */ ! 70: ! 71: #define FFS_NAMES { \ ! 72: { 0, 0 }, \ ! 73: { "doclusterread", CTLTYPE_INT }, \ ! 74: { "doclusterwrite", CTLTYPE_INT }, \ ! 75: { "doreallocblks", CTLTYPE_INT }, \ ! 76: { "doasyncfree", CTLTYPE_INT }, \ ! 77: } ! 78: ! 79: struct buf; ! 80: struct fid; ! 81: struct fs; ! 82: struct inode; ! 83: struct mount; ! 84: struct nameidata; ! 85: struct proc; ! 86: struct statfs; ! 87: struct timeval; ! 88: struct ucred; ! 89: struct uio; ! 90: struct vnode; ! 91: struct mbuf; ! 92: struct vfsconf; ! 93: ! 94: __BEGIN_DECLS ! 95: int ffs_alloc __P((struct inode *, ! 96: ufs_daddr_t, ufs_daddr_t, int, struct ucred *, ufs_daddr_t *)); ! 97: int ffs_balloc __P((struct inode *, ! 98: ufs_daddr_t, int, struct ucred *, struct buf **, int)); ! 99: int ffs_blkatoff __P((struct vop_blkatoff_args *)); ! 100: int ffs_blkfree __P((struct inode *, ufs_daddr_t, long)); ! 101: ufs_daddr_t ffs_blkpref __P((struct inode *, ufs_daddr_t, int, ufs_daddr_t *)); ! 102: int ffs_bmap __P((struct vop_bmap_args *)); ! 103: void ffs_clrblock __P((struct fs *, u_char *, ufs_daddr_t)); ! 104: int ffs_fhtovp __P((struct mount *, struct fid *, struct mbuf *, ! 105: struct vnode **, int *, struct ucred **)); ! 106: void ffs_fragacct __P((struct fs *, int, int32_t [], int)); ! 107: int ffs_fsync __P((struct vop_fsync_args *)); ! 108: int ffs_init __P((struct vfsconf *)); ! 109: int ffs_isblock __P((struct fs *, u_char *, ufs_daddr_t)); ! 110: int ffs_mount __P((struct mount *, ! 111: char *, caddr_t, struct nameidata *, struct proc *)); ! 112: int ffs_mountfs __P((struct vnode *, struct mount *, struct proc *)); ! 113: int ffs_mountroot __P((void)); ! 114: int ffs_read __P((struct vop_read_args *)); ! 115: int ffs_reallocblks __P((struct vop_reallocblks_args *)); ! 116: int ffs_realloccg __P((struct inode *, ! 117: ufs_daddr_t, ufs_daddr_t, int, int, struct ucred *, struct buf **)); ! 118: int ffs_reclaim __P((struct vop_reclaim_args *)); ! 119: void ffs_setblock __P((struct fs *, u_char *, ufs_daddr_t)); ! 120: int ffs_statfs __P((struct mount *, struct statfs *, struct proc *)); ! 121: int ffs_sync __P((struct mount *, int, struct ucred *, struct proc *)); ! 122: int ffs_sysctl __P((int *, u_int, void *, size_t *, void *, size_t, ! 123: struct proc *)); ! 124: int ffs_truncate __P((struct vop_truncate_args *)); ! 125: int ffs_unmount __P((struct mount *, int, struct proc *)); ! 126: int ffs_update __P((struct vop_update_args *)); ! 127: int ffs_valloc __P((struct vop_valloc_args *)); ! 128: int ffs_vfree __P((struct vop_vfree_args *)); ! 129: int ffs_vget __P((struct mount *, ino_t, struct vnode **)); ! 130: int ffs_vptofh __P((struct vnode *, struct fid *)); ! 131: int ffs_write __P((struct vop_write_args *)); ! 132: ! 133: int bwrite(); /* FFS needs a bwrite routine. XXX */ ! 134: ! 135: #if DIAGNOSTIC ! 136: void ffs_checkoverlap __P((struct buf *, struct inode *)); ! 137: #endif ! 138: __END_DECLS ! 139: ! 140: extern int (**ffs_vnodeop_p)(); ! 141: extern int (**ffs_specop_p)(); ! 142: #if FIFO ! 143: extern int (**ffs_fifoop_p)(); ! 144: #define FFS_FIFOOPS ffs_fifoop_p ! 145: #else ! 146: #define FFS_FIFOOPS NULL ! 147: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.