1 /* 2 * Copyright (c) 1991 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 3. All advertising materials mentioning features or use of this software 14 * must display the following acknowledgement: 15 * This product includes software developed by the University of 16 * California, Berkeley and its contributors. 17 * 4. Neither the name of the University nor the names of its contributors 18 * may be used to endorse or promote products derived from this software 19 * without specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * 33 * from: @(#)fifo.h 7.1 (Berkeley) 4/15/91 34 * $Id: fifo.h,v 1.4 1993/06/27 05:59:02 andrew Exp $ 35 */ 36 37 #ifndef _SYS_FIFO_H_ 38 #define _SYS_FIFO_H_ 39 40 #ifdef FIFO 41 /* 42 * Prototypes for fifo operations on vnodes. 43 */ 44 int fifo_badop(), 45 fifo_ebadf(); 46 47 int fifo_lookup __P(( 48 struct vnode *vp, 49 struct nameidata *ndp, 50 struct proc *p)); 51 #define fifo_create ((int (*) __P(( \ 52 struct nameidata *ndp, \ 53 struct vattr *vap, \ 54 struct proc *p))) fifo_badop) 55 #define fifo_mknod ((int (*) __P(( \ 56 struct nameidata *ndp, \ 57 struct vattr *vap, \ 58 struct ucred *cred, \ 59 struct proc *p))) fifo_badop) 60 int fifo_open __P(( 61 struct vnode *vp, 62 int mode, 63 struct ucred *cred, 64 struct proc *p)); 65 int fifo_close __P(( 66 struct vnode *vp, 67 int fflag, 68 struct ucred *cred, 69 struct proc *p)); 70 #define fifo_access ((int (*) __P(( \ 71 struct vnode *vp, \ 72 int mode, \ 73 struct ucred *cred, \ 74 struct proc *p))) fifo_ebadf) 75 #define fifo_getattr ((int (*) __P(( \ 76 struct vnode *vp, \ 77 struct vattr *vap, \ 78 struct ucred *cred, \ 79 struct proc *p))) fifo_ebadf) 80 #define fifo_setattr ((int (*) __P(( \ 81 struct vnode *vp, \ 82 struct vattr *vap, \ 83 struct ucred *cred, \ 84 struct proc *p))) fifo_ebadf) 85 int fifo_read __P(( 86 struct vnode *vp, 87 struct uio *uio, 88 int ioflag, 89 struct ucred *cred)); 90 int fifo_write __P(( 91 struct vnode *vp, 92 struct uio *uio, 93 int ioflag, 94 struct ucred *cred)); 95 int fifo_ioctl __P(( 96 struct vnode *vp, 97 int command, 98 caddr_t data, 99 int fflag, 100 struct ucred *cred, 101 struct proc *p)); 102 int fifo_select __P(( 103 struct vnode *vp, 104 int which, 105 int fflags, 106 struct ucred *cred, 107 struct proc *p)); 108 #define fifo_mmap ((int (*) __P(( \ 109 struct vnode *vp, \ 110 int fflags, \ 111 struct ucred *cred, \ 112 struct proc *p))) fifo_badop) 113 #define fifo_fsync ((int (*) __P(( \ 114 struct vnode *vp, \ 115 int fflags, \ 116 struct ucred *cred, \ 117 int waitfor, \ 118 struct proc *p))) nullop) 119 #define fifo_seek ((int (*) __P(( \ 120 struct vnode *vp, \ 121 off_t oldoff, \ 122 off_t newoff, \ 123 struct ucred *cred))) fifo_badop) 124 #define fifo_remove ((int (*) __P(( \ 125 struct nameidata *ndp, \ 126 struct proc *p))) fifo_badop) 127 #define fifo_link ((int (*) __P(( \ 128 struct vnode *vp, \ 129 struct nameidata *ndp, \ 130 struct proc *p))) fifo_badop) 131 #define fifo_rename ((int (*) __P(( \ 132 struct nameidata *fndp, \ 133 struct nameidata *tdnp, \ 134 struct proc *p))) fifo_badop) 135 #define fifo_mkdir ((int (*) __P(( \ 136 struct nameidata *ndp, \ 137 struct vattr *vap, \ 138 struct proc *p))) fifo_badop) 139 #define fifo_rmdir ((int (*) __P(( \ 140 struct nameidata *ndp, \ 141 struct proc *p))) fifo_badop) 142 #define fifo_symlink ((int (*) __P(( \ 143 struct nameidata *ndp, \ 144 struct vattr *vap, \ 145 char *target, \ 146 struct proc *p))) fifo_badop) 147 #define fifo_readdir ((int (*) __P(( \ 148 struct vnode *vp, \ 149 struct uio *uio, \ 150 struct ucred *cred, \ 151 int *eofflagp))) fifo_badop) 152 #define fifo_readlink ((int (*) __P(( \ 153 struct vnode *vp, \ 154 struct uio *uio, \ 155 struct ucred *cred))) fifo_badop) 156 #define fifo_abortop ((int (*) __P(( \ 157 struct nameidata *ndp))) fifo_badop) 158 #define fifo_inactive ((int (*) __P(( \ 159 struct vnode *vp, \ 160 struct proc *p))) nullop) 161 #define fifo_reclaim ((int (*) __P(( \ 162 struct vnode *vp))) nullop) 163 int fifo_lock __P(( 164 struct vnode *vp)); 165 int fifo_unlock __P(( 166 struct vnode *vp)); 167 int fifo_bmap __P(( 168 struct vnode *vp, 169 daddr_t bn, 170 struct vnode **vpp, 171 daddr_t *bnp)); 172 #define fifo_strategy ((int (*) __P(( \ 173 struct buf *bp))) fifo_badop) 174 void fifo_print __P(( 175 struct vnode *vp)); 176 void fifo_printinfo __P(( 177 struct vnode *vp)); 178 #define fifo_islocked ((int (*) __P(( \ 179 struct vnode *vp))) nullop) 180 int fifo_advlock __P(( 181 struct vnode *vp, 182 caddr_t id, 183 int op, 184 struct flock *fl, 185 int flags)); 186 #endif /* FIFO */ 187 188 #endif /* !_SYS_FIFO_H_ */ 189