386BSD 0.1 development
[unix-history] / usr / src / sys.386bsd / sys / fifo.h
CommitLineData
b688fc87
WJ
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 * @(#)fifo.h 7.1 (Berkeley) 4/15/91
34 */
35
36#ifdef FIFO
37/*
38 * Prototypes for fifo operations on vnodes.
39 */
40int fifo_badop(),
41 fifo_ebadf();
42
43int fifo_lookup __P((
44 struct vnode *vp,
45 struct nameidata *ndp,
46 struct proc *p));
47#define fifo_create ((int (*) __P(( \
48 struct nameidata *ndp, \
49 struct vattr *vap, \
50 struct proc *p))) fifo_badop)
51#define fifo_mknod ((int (*) __P(( \
52 struct nameidata *ndp, \
53 struct vattr *vap, \
54 struct ucred *cred, \
55 struct proc *p))) fifo_badop)
56int fifo_open __P((
57 struct vnode *vp,
58 int mode,
59 struct ucred *cred,
60 struct proc *p));
61int fifo_close __P((
62 struct vnode *vp,
63 int fflag,
64 struct ucred *cred,
65 struct proc *p));
66#define fifo_access ((int (*) __P(( \
67 struct vnode *vp, \
68 int mode, \
69 struct ucred *cred, \
70 struct proc *p))) fifo_ebadf)
71#define fifo_getattr ((int (*) __P(( \
72 struct vnode *vp, \
73 struct vattr *vap, \
74 struct ucred *cred, \
75 struct proc *p))) fifo_ebadf)
76#define fifo_setattr ((int (*) __P(( \
77 struct vnode *vp, \
78 struct vattr *vap, \
79 struct ucred *cred, \
80 struct proc *p))) fifo_ebadf)
81int fifo_read __P((
82 struct vnode *vp,
83 struct uio *uio,
84 int ioflag,
85 struct ucred *cred));
86int fifo_write __P((
87 struct vnode *vp,
88 struct uio *uio,
89 int ioflag,
90 struct ucred *cred));
91int fifo_ioctl __P((
92 struct vnode *vp,
93 int command,
94 caddr_t data,
95 int fflag,
96 struct ucred *cred,
97 struct proc *p));
98int fifo_select __P((
99 struct vnode *vp,
100 int which,
101 int fflags,
102 struct ucred *cred,
103 struct proc *p));
104#define fifo_mmap ((int (*) __P(( \
105 struct vnode *vp, \
106 int fflags, \
107 struct ucred *cred, \
108 struct proc *p))) fifo_badop)
109#define fifo_fsync ((int (*) __P(( \
110 struct vnode *vp, \
111 int fflags, \
112 struct ucred *cred, \
113 int waitfor, \
114 struct proc *p))) nullop)
115#define fifo_seek ((int (*) __P(( \
116 struct vnode *vp, \
117 off_t oldoff, \
118 off_t newoff, \
119 struct ucred *cred))) fifo_badop)
120#define fifo_remove ((int (*) __P(( \
121 struct nameidata *ndp, \
122 struct proc *p))) fifo_badop)
123#define fifo_link ((int (*) __P(( \
124 struct vnode *vp, \
125 struct nameidata *ndp, \
126 struct proc *p))) fifo_badop)
127#define fifo_rename ((int (*) __P(( \
128 struct nameidata *fndp, \
129 struct nameidata *tdnp, \
130 struct proc *p))) fifo_badop)
131#define fifo_mkdir ((int (*) __P(( \
132 struct nameidata *ndp, \
133 struct vattr *vap, \
134 struct proc *p))) fifo_badop)
135#define fifo_rmdir ((int (*) __P(( \
136 struct nameidata *ndp, \
137 struct proc *p))) fifo_badop)
138#define fifo_symlink ((int (*) __P(( \
139 struct nameidata *ndp, \
140 struct vattr *vap, \
141 char *target, \
142 struct proc *p))) fifo_badop)
143#define fifo_readdir ((int (*) __P(( \
144 struct vnode *vp, \
145 struct uio *uio, \
146 struct ucred *cred, \
147 int *eofflagp))) fifo_badop)
148#define fifo_readlink ((int (*) __P(( \
149 struct vnode *vp, \
150 struct uio *uio, \
151 struct ucred *cred))) fifo_badop)
152#define fifo_abortop ((int (*) __P(( \
153 struct nameidata *ndp))) fifo_badop)
154#define fifo_inactive ((int (*) __P(( \
155 struct vnode *vp, \
156 struct proc *p))) nullop)
157#define fifo_reclaim ((int (*) __P(( \
158 struct vnode *vp))) nullop)
159int fifo_lock __P((
160 struct vnode *vp));
161int fifo_unlock __P((
162 struct vnode *vp));
163int fifo_bmap __P((
164 struct vnode *vp,
165 daddr_t bn,
166 struct vnode **vpp,
167 daddr_t *bnp));
168#define fifo_strategy ((int (*) __P(( \
169 struct buf *bp))) fifo_badop)
170int fifo_print __P((
171 struct vnode *vp));
172#define fifo_islocked ((int (*) __P(( \
173 struct vnode *vp))) nullop)
174int fifo_advlock __P((
175 struct vnode *vp,
176 caddr_t id,
177 int op,
178 struct flock *fl,
179 int flags));
180#endif /* FIFO */