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