xref: /netbsd-src/sys/miscfs/fifofs/fifo.h (revision cda4f8f6ee55684e8d311b86c99ea59191e6b74f)
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