add prototypes for special device vnode ops
authorKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Tue, 16 Apr 1991 14:26:07 +0000 (06:26 -0800)
committerKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Tue, 16 Apr 1991 14:26:07 +0000 (06:26 -0800)
SCCS-vsn: sys/miscfs/specfs/specdev.h 7.3

usr/src/sys/miscfs/specfs/specdev.h

index 09bdbf8..dac088a 100644 (file)
@@ -4,7 +4,7 @@
  *
  * %sccs.include.redist.c%
  *
  *
  * %sccs.include.redist.c%
  *
- *     @(#)specdev.h   7.2 (Berkeley) %G%
+ *     @(#)specdev.h   7.3 (Berkeley) %G%
  */
 
 /*
  */
 
 /*
@@ -42,3 +42,147 @@ struct specinfo {
 #endif
 
 struct vnode *speclisth[SPECHSZ];
 #endif
 
 struct vnode *speclisth[SPECHSZ];
+
+/*
+ * Prototypes for special file operations on vnodes.
+ */
+int    spec_badop(),
+       spec_ebadf();
+
+int    spec_lookup __P((
+               struct vnode *vp,
+               struct nameidata *ndp,
+               struct proc *p));
+#define spec_create ((int (*) __P(( \
+               struct nameidata *ndp, \
+               struct vattr *vap, \
+               struct proc *p))) spec_badop)
+#define spec_mknod ((int (*) __P(( \
+               struct nameidata *ndp, \
+               struct vattr *vap, \
+               struct ucred *cred, \
+               struct proc *p))) spec_badop)
+int    spec_open __P((
+               struct vnode *vp,
+               int mode,
+               struct ucred *cred,
+               struct proc *p));
+int    spec_close __P((
+               struct vnode *vp,
+               int fflag,
+               struct ucred *cred,
+               struct proc *p));
+#define spec_access ((int (*) __P(( \
+               struct vnode *vp, \
+               int mode, \
+               struct ucred *cred, \
+               struct proc *p))) spec_ebadf)
+#define spec_getattr ((int (*) __P(( \
+               struct vnode *vp, \
+               struct vattr *vap, \
+               struct ucred *cred, \
+               struct proc *p))) spec_ebadf)
+#define spec_setattr ((int (*) __P(( \
+               struct vnode *vp, \
+               struct vattr *vap, \
+               struct ucred *cred, \
+               struct proc *p))) spec_ebadf)
+int    spec_read __P((
+               struct vnode *vp,
+               struct uio *uio,
+               int ioflag,
+               struct ucred *cred));
+int    spec_write __P((
+               struct vnode *vp,
+               struct uio *uio,
+               int ioflag,
+               struct ucred *cred));
+int    spec_ioctl __P((
+               struct vnode *vp,
+               int command,
+               caddr_t data,
+               int fflag,
+               struct ucred *cred,
+               struct proc *p));
+int    spec_select __P((
+               struct vnode *vp,
+               int which,
+               int fflags,
+               struct ucred *cred,
+               struct proc *p));
+#define spec_mmap ((int (*) __P(( \
+               struct vnode *vp, \
+               int fflags, \
+               struct ucred *cred, \
+               struct proc *p))) spec_badop)
+#define spec_fsync ((int (*) __P(( \
+               struct vnode *vp, \
+               int fflags, \
+               struct ucred *cred, \
+               int waitfor, \
+               struct proc *p))) nullop)
+#define spec_seek ((int (*) __P(( \
+               struct vnode *vp, \
+               off_t oldoff, \
+               off_t newoff, \
+               struct ucred *cred))) spec_badop)
+#define spec_remove ((int (*) __P(( \
+               struct nameidata *ndp, \
+               struct proc *p))) spec_badop)
+#define spec_link ((int (*) __P(( \
+               struct vnode *vp, \
+               struct nameidata *ndp, \
+               struct proc *p))) spec_badop)
+#define spec_rename ((int (*) __P(( \
+               struct nameidata *fndp, \
+               struct nameidata *tdnp, \
+               struct proc *p))) spec_badop)
+#define spec_mkdir ((int (*) __P(( \
+               struct nameidata *ndp, \
+               struct vattr *vap, \
+               struct proc *p))) spec_badop)
+#define spec_rmdir ((int (*) __P(( \
+               struct nameidata *ndp, \
+               struct proc *p))) spec_badop)
+#define spec_symlink ((int (*) __P(( \
+               struct nameidata *ndp, \
+               struct vattr *vap, \
+               char *target, \
+               struct proc *p))) spec_badop)
+#define spec_readdir ((int (*) __P(( \
+               struct vnode *vp, \
+               struct uio *uio, \
+               struct ucred *cred, \
+               int *eofflagp))) spec_badop)
+#define spec_readlink ((int (*) __P(( \
+               struct vnode *vp, \
+               struct uio *uio, \
+               struct ucred *cred))) spec_badop)
+#define spec_abortop ((int (*) __P(( \
+               struct nameidata *ndp))) spec_badop)
+#define spec_inactive ((int (*) __P(( \
+               struct vnode *vp, \
+               struct proc *p))) nullop)
+#define spec_reclaim ((int (*) __P(( \
+               struct vnode *vp))) nullop)
+int    spec_lock __P((
+               struct vnode *vp));
+int    spec_unlock __P((
+               struct vnode *vp));
+int    spec_bmap __P((
+               struct vnode *vp,
+               daddr_t bn,
+               struct vnode **vpp,
+               daddr_t *bnp));
+int    spec_strategy __P((
+               struct buf *bp));
+int    spec_print __P((
+               struct vnode *vp));
+#define spec_islocked ((int (*) __P(( \
+               struct vnode *vp))) nullop)
+int    spec_advlock __P((
+               struct vnode *vp,
+               caddr_t id,
+               int op,
+               struct flock *fl,
+               int flags));