vnops megacommit
1. Use the default function to access all the specfs operations. 2. Use the default function to access all the fifofs operations. 3. Use the default function to access all the ufs operations. 4. Fix VCALL usage in vfs_cache.c 5. Use VOCALL to access specfs functions in devfs_vnops.c 6. Staticize most of the spec and fifofs vnops functions. 7. Make UFS panic if it lacks bits of the underlying storage handling.
This commit is contained in:
parent
28185a1971
commit
138ec1f71a
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=30439
@ -36,7 +36,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)cd9660_vnops.c 8.19 (Berkeley) 5/27/95
|
||||
* $Id: cd9660_vnops.c,v 1.41 1997/10/15 09:20:47 phk Exp $
|
||||
* $Id: cd9660_vnops.c,v 1.42 1997/10/15 10:03:58 phk Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
@ -1050,49 +1050,18 @@ VNODEOP_SET(cd9660_vnodeop_opv_desc);
|
||||
*/
|
||||
vop_t **cd9660_specop_p;
|
||||
struct vnodeopv_entry_desc cd9660_specop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) spec_abortop },
|
||||
{ &vop_default_desc, (vop_t *) spec_vnoperate },
|
||||
{ &vop_access_desc, (vop_t *) cd9660_access },
|
||||
{ &vop_advlock_desc, (vop_t *) spec_advlock },
|
||||
{ &vop_blkatoff_desc, (vop_t *) spec_blkatoff },
|
||||
{ &vop_bmap_desc, (vop_t *) spec_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_close_desc, (vop_t *) spec_close },
|
||||
{ &vop_create_desc, (vop_t *) spec_create },
|
||||
{ &vop_fsync_desc, (vop_t *) spec_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) cd9660_getattr },
|
||||
{ &vop_inactive_desc, (vop_t *) cd9660_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) spec_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) cd9660_islocked },
|
||||
{ &vop_lease_desc, (vop_t *) spec_lease_check },
|
||||
{ &vop_link_desc, (vop_t *) spec_link },
|
||||
{ &vop_lock_desc, (vop_t *) cd9660_lock },
|
||||
{ &vop_lookup_desc, (vop_t *) spec_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) spec_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) spec_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) spec_mmap },
|
||||
{ &vop_open_desc, (vop_t *) spec_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) spec_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) spec_poll },
|
||||
{ &vop_print_desc, (vop_t *) cd9660_print },
|
||||
{ &vop_read_desc, (vop_t *) spec_read },
|
||||
{ &vop_readdir_desc, (vop_t *) spec_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) spec_readlink },
|
||||
{ &vop_reclaim_desc, (vop_t *) cd9660_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) spec_remove },
|
||||
{ &vop_rename_desc, (vop_t *) spec_rename },
|
||||
{ &vop_revoke_desc, (vop_t *) spec_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) spec_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) spec_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) cd9660_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) spec_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) spec_symlink },
|
||||
{ &vop_truncate_desc, (vop_t *) spec_truncate },
|
||||
{ &vop_unlock_desc, (vop_t *) cd9660_unlock },
|
||||
{ &vop_update_desc, (vop_t *) cd9660_update },
|
||||
{ &vop_valloc_desc, (vop_t *) spec_valloc },
|
||||
{ &vop_vfree_desc, (vop_t *) spec_vfree },
|
||||
{ &vop_write_desc, (vop_t *) spec_write },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
static struct vnodeopv_desc cd9660_specop_opv_desc =
|
||||
@ -1101,49 +1070,18 @@ VNODEOP_SET(cd9660_specop_opv_desc);
|
||||
|
||||
vop_t **cd9660_fifoop_p;
|
||||
struct vnodeopv_entry_desc cd9660_fifoop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) fifo_abortop },
|
||||
{ &vop_default_desc, (vop_t *) fifo_vnoperate },
|
||||
{ &vop_access_desc, (vop_t *) cd9660_access },
|
||||
{ &vop_advlock_desc, (vop_t *) fifo_advlock },
|
||||
{ &vop_blkatoff_desc, (vop_t *) fifo_blkatoff },
|
||||
{ &vop_bmap_desc, (vop_t *) fifo_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_close_desc, (vop_t *) fifo_close },
|
||||
{ &vop_create_desc, (vop_t *) fifo_create },
|
||||
{ &vop_fsync_desc, (vop_t *) fifo_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) cd9660_getattr },
|
||||
{ &vop_inactive_desc, (vop_t *) cd9660_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) fifo_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) cd9660_islocked },
|
||||
{ &vop_lease_desc, (vop_t *) fifo_lease_check },
|
||||
{ &vop_link_desc, (vop_t *) fifo_link },
|
||||
{ &vop_lock_desc, (vop_t *) cd9660_lock },
|
||||
{ &vop_lookup_desc, (vop_t *) fifo_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) fifo_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) fifo_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) fifo_mmap },
|
||||
{ &vop_open_desc, (vop_t *) fifo_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) fifo_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) fifo_poll },
|
||||
{ &vop_print_desc, (vop_t *) cd9660_print },
|
||||
{ &vop_read_desc, (vop_t *) fifo_read },
|
||||
{ &vop_readdir_desc, (vop_t *) fifo_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) fifo_readlink },
|
||||
{ &vop_reclaim_desc, (vop_t *) cd9660_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) fifo_remove },
|
||||
{ &vop_rename_desc, (vop_t *) fifo_rename },
|
||||
{ &vop_revoke_desc, (vop_t *) fifo_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) fifo_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) fifo_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) cd9660_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) fifo_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) fifo_symlink },
|
||||
{ &vop_truncate_desc, (vop_t *) fifo_truncate },
|
||||
{ &vop_unlock_desc, (vop_t *) cd9660_unlock },
|
||||
{ &vop_update_desc, (vop_t *) cd9660_update },
|
||||
{ &vop_valloc_desc, (vop_t *) fifo_valloc },
|
||||
{ &vop_vfree_desc, (vop_t *) fifo_vfree },
|
||||
{ &vop_write_desc, (vop_t *) fifo_write },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
static struct vnodeopv_desc cd9660_fifoop_opv_desc =
|
||||
|
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)fifo.h 8.6 (Berkeley) 5/21/95
|
||||
* $Id: fifo.h,v 1.13 1997/02/22 09:40:17 peter Exp $
|
||||
* $Id: fifo.h,v 1.14 1997/09/14 02:57:51 peter Exp $
|
||||
*/
|
||||
|
||||
extern vop_t **fifo_vnodeop_p;
|
||||
@ -39,48 +39,6 @@ extern vop_t **fifo_vnodeop_p;
|
||||
/*
|
||||
* Prototypes for fifo operations on vnodes.
|
||||
*/
|
||||
int fifo_badop __P((void));
|
||||
int fifo_vnoperate __P((struct vop_generic_args *));
|
||||
int fifo_printinfo __P((struct vnode *));
|
||||
int fifo_lookup __P((struct vop_lookup_args *));
|
||||
#define fifo_create ((int (*) __P((struct vop_create_args *)))fifo_badop)
|
||||
#define fifo_mknod ((int (*) __P((struct vop_mknod_args *)))fifo_badop)
|
||||
int fifo_open __P((struct vop_open_args *));
|
||||
int fifo_close __P((struct vop_close_args *));
|
||||
#define fifo_access ((int (*) __P((struct vop_access_args *)))fifo_ebadf)
|
||||
#define fifo_getattr ((int (*) __P((struct vop_getattr_args *)))fifo_ebadf)
|
||||
#define fifo_setattr ((int (*) __P((struct vop_setattr_args *)))fifo_ebadf)
|
||||
int fifo_read __P((struct vop_read_args *));
|
||||
int fifo_write __P((struct vop_write_args *));
|
||||
#define fifo_lease_check ((int (*) __P((struct vop_lease_args *)))nullop)
|
||||
int fifo_ioctl __P((struct vop_ioctl_args *));
|
||||
int fifo_poll __P((struct vop_poll_args *));
|
||||
#define fifo_revoke vop_revoke
|
||||
#define fifo_mmap ((int (*) __P((struct vop_mmap_args *)))fifo_badop)
|
||||
#define fifo_fsync ((int (*) __P((struct vop_fsync_args *)))nullop)
|
||||
#define fifo_seek ((int (*) __P((struct vop_seek_args *)))fifo_badop)
|
||||
#define fifo_remove ((int (*) __P((struct vop_remove_args *)))fifo_badop)
|
||||
#define fifo_link ((int (*) __P((struct vop_link_args *)))fifo_badop)
|
||||
#define fifo_rename ((int (*) __P((struct vop_rename_args *)))fifo_badop)
|
||||
#define fifo_mkdir ((int (*) __P((struct vop_mkdir_args *)))fifo_badop)
|
||||
#define fifo_rmdir ((int (*) __P((struct vop_rmdir_args *)))fifo_badop)
|
||||
#define fifo_symlink ((int (*) __P((struct vop_symlink_args *)))fifo_badop)
|
||||
#define fifo_readdir ((int (*) __P((struct vop_readdir_args *)))fifo_badop)
|
||||
#define fifo_readlink ((int (*) __P((struct vop_readlink_args *)))fifo_badop)
|
||||
#define fifo_abortop ((int (*) __P((struct vop_abortop_args *)))fifo_badop)
|
||||
int fifo_inactive __P((struct vop_inactive_args *));
|
||||
#define fifo_reclaim ((int (*) __P((struct vop_reclaim_args *)))nullop)
|
||||
#define fifo_lock ((int (*) __P((struct vop_lock_args *)))vop_nolock)
|
||||
#define fifo_unlock ((int (*) __P((struct vop_unlock_args *)))vop_nounlock)
|
||||
int fifo_bmap __P((struct vop_bmap_args *));
|
||||
#define fifo_strategy ((int (*) __P((struct vop_strategy_args *)))fifo_badop)
|
||||
#define fifo_islocked ((int(*) __P((struct vop_islocked_args *)))vop_noislocked)
|
||||
int fifo_pathconf __P((struct vop_pathconf_args *));
|
||||
int fifo_advlock __P((struct vop_advlock_args *));
|
||||
#define fifo_blkatoff ((int (*) __P((struct vop_blkatoff_args *)))fifo_badop)
|
||||
#define fifo_valloc ((int (*) __P((struct vop_valloc_args *)))fifo_badop)
|
||||
#define fifo_reallocblks \
|
||||
((int (*) __P((struct vop_reallocblks_args *)))fifo_badop)
|
||||
#define fifo_vfree ((int (*) __P((struct vop_vfree_args *)))fifo_badop)
|
||||
#define fifo_truncate ((int (*) __P((struct vop_truncate_args *)))nullop)
|
||||
#define fifo_update ((int (*) __P((struct vop_update_args *)))nullop)
|
||||
#define fifo_bwrite ((int (*) __P((struct vop_bwrite_args *)))nullop)
|
||||
|
||||
|
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)fifo_vnops.c 8.10 (Berkeley) 5/27/95
|
||||
* $Id: fifo_vnops.c,v 1.29 1997/10/15 09:21:00 phk Exp $
|
||||
* $Id: fifo_vnops.c,v 1.30 1997/10/15 10:04:18 phk Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
@ -61,52 +61,66 @@ struct fifoinfo {
|
||||
};
|
||||
|
||||
static int fifo_ebadf __P((void));
|
||||
static int fifo_badop __P((void));
|
||||
static int fifo_print __P((struct vop_print_args *));
|
||||
static int fifo_lookup __P((struct vop_lookup_args *));
|
||||
static int fifo_open __P((struct vop_open_args *));
|
||||
static int fifo_close __P((struct vop_close_args *));
|
||||
static int fifo_read __P((struct vop_read_args *));
|
||||
static int fifo_write __P((struct vop_write_args *));
|
||||
static int fifo_ioctl __P((struct vop_ioctl_args *));
|
||||
static int fifo_poll __P((struct vop_poll_args *));
|
||||
static int fifo_inactive __P((struct vop_inactive_args *));
|
||||
static int fifo_bmap __P((struct vop_bmap_args *));
|
||||
static int fifo_pathconf __P((struct vop_pathconf_args *));
|
||||
static int fifo_advlock __P((struct vop_advlock_args *));
|
||||
|
||||
|
||||
vop_t **fifo_vnodeop_p;
|
||||
static struct vnodeopv_entry_desc fifo_vnodeop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) fifo_abortop },
|
||||
{ &vop_access_desc, (vop_t *) fifo_access },
|
||||
{ &vop_abortop_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_access_desc, (vop_t *) fifo_ebadf },
|
||||
{ &vop_advlock_desc, (vop_t *) fifo_advlock },
|
||||
{ &vop_blkatoff_desc, (vop_t *) fifo_blkatoff },
|
||||
{ &vop_blkatoff_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_bmap_desc, (vop_t *) fifo_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) fifo_bwrite },
|
||||
{ &vop_bwrite_desc, (vop_t *) nullop },
|
||||
{ &vop_close_desc, (vop_t *) fifo_close },
|
||||
{ &vop_create_desc, (vop_t *) fifo_create },
|
||||
{ &vop_fsync_desc, (vop_t *) fifo_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) fifo_getattr },
|
||||
{ &vop_create_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_fsync_desc, (vop_t *) nullop },
|
||||
{ &vop_getattr_desc, (vop_t *) fifo_ebadf },
|
||||
{ &vop_inactive_desc, (vop_t *) fifo_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) fifo_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) fifo_islocked },
|
||||
{ &vop_lease_desc, (vop_t *) fifo_lease_check },
|
||||
{ &vop_link_desc, (vop_t *) fifo_link },
|
||||
{ &vop_lock_desc, (vop_t *) fifo_lock },
|
||||
{ &vop_islocked_desc, (vop_t *) vop_noislocked },
|
||||
{ &vop_lease_desc, (vop_t *) nullop },
|
||||
{ &vop_link_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_lock_desc, (vop_t *) vop_nolock },
|
||||
{ &vop_lookup_desc, (vop_t *) fifo_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) fifo_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) fifo_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) fifo_mmap },
|
||||
{ &vop_mkdir_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_mknod_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_mmap_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_open_desc, (vop_t *) fifo_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) fifo_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) fifo_poll },
|
||||
{ &vop_print_desc, (vop_t *) fifo_print },
|
||||
{ &vop_read_desc, (vop_t *) fifo_read },
|
||||
{ &vop_readdir_desc, (vop_t *) fifo_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) fifo_readlink },
|
||||
{ &vop_reclaim_desc, (vop_t *) fifo_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) fifo_remove },
|
||||
{ &vop_rename_desc, (vop_t *) fifo_rename },
|
||||
{ &vop_revoke_desc, (vop_t *) fifo_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) fifo_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) fifo_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) fifo_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) fifo_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) fifo_symlink },
|
||||
{ &vop_truncate_desc, (vop_t *) fifo_truncate },
|
||||
{ &vop_unlock_desc, (vop_t *) fifo_unlock },
|
||||
{ &vop_update_desc, (vop_t *) fifo_update },
|
||||
{ &vop_valloc_desc, (vop_t *) fifo_valloc },
|
||||
{ &vop_vfree_desc, (vop_t *) fifo_vfree },
|
||||
{ &vop_readdir_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_readlink_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_reallocblks_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_reclaim_desc, (vop_t *) nullop },
|
||||
{ &vop_remove_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_rename_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_revoke_desc, (vop_t *) vop_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_seek_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_setattr_desc, (vop_t *) fifo_ebadf },
|
||||
{ &vop_strategy_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_symlink_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_truncate_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_unlock_desc, (vop_t *) vop_nounlock },
|
||||
{ &vop_update_desc, (vop_t *) nullop },
|
||||
{ &vop_valloc_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_vfree_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_write_desc, (vop_t *) fifo_write },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
@ -115,11 +129,21 @@ static struct vnodeopv_desc fifo_vnodeop_opv_desc =
|
||||
|
||||
VNODEOP_SET(fifo_vnodeop_opv_desc);
|
||||
|
||||
int
|
||||
fifo_vnoperate(ap)
|
||||
struct vop_generic_args /* {
|
||||
struct vnodeop_desc *a_desc;
|
||||
<other random data follows, presumably>
|
||||
} */ *ap;
|
||||
{
|
||||
return (VOCALL(fifo_vnodeop_p, ap->a_desc->vdesc_offset, ap));
|
||||
}
|
||||
|
||||
/*
|
||||
* Trivial lookup routine that always fails.
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
fifo_lookup(ap)
|
||||
struct vop_lookup_args /* {
|
||||
struct vnode * a_dvp;
|
||||
@ -137,7 +161,7 @@ fifo_lookup(ap)
|
||||
* to find an active instance of a fifo.
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
fifo_open(ap)
|
||||
struct vop_open_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -236,7 +260,7 @@ fifo_open(ap)
|
||||
* Vnode op for read
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
fifo_read(ap)
|
||||
struct vop_read_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -277,7 +301,7 @@ fifo_read(ap)
|
||||
* Vnode op for write
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
fifo_write(ap)
|
||||
struct vop_write_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -309,7 +333,7 @@ fifo_write(ap)
|
||||
* Device ioctl operation.
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
fifo_ioctl(ap)
|
||||
struct vop_ioctl_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -341,7 +365,7 @@ fifo_ioctl(ap)
|
||||
}
|
||||
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
fifo_poll(ap)
|
||||
struct vop_poll_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -368,7 +392,7 @@ fifo_poll(ap)
|
||||
return (revents);
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
fifo_inactive(ap)
|
||||
struct vop_inactive_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -383,7 +407,7 @@ fifo_inactive(ap)
|
||||
/*
|
||||
* This is a noop, simply returning what one has been given.
|
||||
*/
|
||||
int
|
||||
static int
|
||||
fifo_bmap(ap)
|
||||
struct vop_bmap_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -410,7 +434,7 @@ fifo_bmap(ap)
|
||||
* Device close routine
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
fifo_close(ap)
|
||||
struct vop_close_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -478,7 +502,7 @@ fifo_print(ap)
|
||||
/*
|
||||
* Return POSIX pathconf information applicable to fifo's.
|
||||
*/
|
||||
int
|
||||
static int
|
||||
fifo_pathconf(ap)
|
||||
struct vop_pathconf_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -517,7 +541,7 @@ fifo_ebadf()
|
||||
* Fifo advisory byte-level locks.
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
fifo_advlock(ap)
|
||||
struct vop_advlock_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -534,7 +558,7 @@ fifo_advlock(ap)
|
||||
/*
|
||||
* Fifo bad operation
|
||||
*/
|
||||
int
|
||||
static int
|
||||
fifo_badop()
|
||||
{
|
||||
|
||||
|
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)spec_vnops.c 8.14 (Berkeley) 5/21/95
|
||||
* $Id: spec_vnops.c,v 1.44 1997/10/15 09:21:22 phk Exp $
|
||||
* $Id: spec_vnops.c,v 1.45 1997/10/15 10:04:43 phk Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
@ -60,53 +60,70 @@
|
||||
|
||||
static int spec_ebadf __P((void));
|
||||
static int spec_getattr __P((struct vop_getattr_args *));
|
||||
static int spec_badop __P((void));
|
||||
static int spec_strategy __P((struct vop_strategy_args *));
|
||||
static int spec_print __P((struct vop_print_args *));
|
||||
static int spec_lookup __P((struct vop_lookup_args *));
|
||||
static int spec_open __P((struct vop_open_args *));
|
||||
static int spec_close __P((struct vop_close_args *));
|
||||
static int spec_read __P((struct vop_read_args *));
|
||||
static int spec_write __P((struct vop_write_args *));
|
||||
static int spec_ioctl __P((struct vop_ioctl_args *));
|
||||
static int spec_poll __P((struct vop_poll_args *));
|
||||
static int spec_inactive __P((struct vop_inactive_args *));
|
||||
static int spec_fsync __P((struct vop_fsync_args *));
|
||||
static int spec_bmap __P((struct vop_bmap_args *));
|
||||
static int spec_pathconf __P((struct vop_pathconf_args *));
|
||||
static int spec_advlock __P((struct vop_advlock_args *));
|
||||
static int spec_getpages __P((struct vop_getpages_args *));
|
||||
|
||||
struct vnode *speclisth[SPECHSZ];
|
||||
vop_t **spec_vnodeop_p;
|
||||
static struct vnodeopv_entry_desc spec_vnodeop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) spec_abortop },
|
||||
{ &vop_access_desc, (vop_t *) spec_access },
|
||||
{ &vop_abortop_desc, (vop_t *) spec_badop },
|
||||
{ &vop_access_desc, (vop_t *) spec_ebadf },
|
||||
{ &vop_advlock_desc, (vop_t *) spec_advlock },
|
||||
{ &vop_blkatoff_desc, (vop_t *) spec_blkatoff },
|
||||
{ &vop_blkatoff_desc, (vop_t *) spec_badop },
|
||||
{ &vop_bmap_desc, (vop_t *) spec_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_bwrite_desc, (vop_t *) nullop },
|
||||
{ &vop_close_desc, (vop_t *) spec_close },
|
||||
{ &vop_create_desc, (vop_t *) spec_create },
|
||||
{ &vop_create_desc, (vop_t *) spec_badop },
|
||||
{ &vop_fsync_desc, (vop_t *) spec_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) spec_getattr },
|
||||
{ &vop_getpages_desc, (vop_t *) spec_getpages },
|
||||
{ &vop_inactive_desc, (vop_t *) spec_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) spec_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) spec_islocked },
|
||||
{ &vop_lease_desc, (vop_t *) spec_lease_check },
|
||||
{ &vop_link_desc, (vop_t *) spec_link },
|
||||
{ &vop_lock_desc, (vop_t *) spec_lock },
|
||||
{ &vop_islocked_desc, (vop_t *) vop_noislocked },
|
||||
{ &vop_lease_desc, (vop_t *) nullop },
|
||||
{ &vop_link_desc, (vop_t *) spec_badop },
|
||||
{ &vop_lock_desc, (vop_t *) vop_nolock },
|
||||
{ &vop_lookup_desc, (vop_t *) spec_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) spec_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) spec_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) spec_mmap },
|
||||
{ &vop_mkdir_desc, (vop_t *) spec_badop },
|
||||
{ &vop_mknod_desc, (vop_t *) spec_badop },
|
||||
{ &vop_mmap_desc, (vop_t *) spec_badop },
|
||||
{ &vop_open_desc, (vop_t *) spec_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) spec_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) spec_poll },
|
||||
{ &vop_print_desc, (vop_t *) spec_print },
|
||||
{ &vop_read_desc, (vop_t *) spec_read },
|
||||
{ &vop_readdir_desc, (vop_t *) spec_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) spec_readlink },
|
||||
{ &vop_reclaim_desc, (vop_t *) spec_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) spec_remove },
|
||||
{ &vop_rename_desc, (vop_t *) spec_rename },
|
||||
{ &vop_revoke_desc, (vop_t *) spec_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) spec_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) spec_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) spec_setattr },
|
||||
{ &vop_readdir_desc, (vop_t *) spec_badop },
|
||||
{ &vop_readlink_desc, (vop_t *) spec_badop },
|
||||
{ &vop_reallocblks_desc, (vop_t *) spec_badop },
|
||||
{ &vop_reclaim_desc, (vop_t *) nullop },
|
||||
{ &vop_remove_desc, (vop_t *) spec_badop },
|
||||
{ &vop_rename_desc, (vop_t *) spec_badop },
|
||||
{ &vop_revoke_desc, (vop_t *) vop_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) spec_badop },
|
||||
{ &vop_seek_desc, (vop_t *) spec_badop },
|
||||
{ &vop_setattr_desc, (vop_t *) spec_ebadf },
|
||||
{ &vop_strategy_desc, (vop_t *) spec_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) spec_symlink },
|
||||
{ &vop_truncate_desc, (vop_t *) spec_truncate },
|
||||
{ &vop_unlock_desc, (vop_t *) spec_unlock },
|
||||
{ &vop_update_desc, (vop_t *) spec_update },
|
||||
{ &vop_valloc_desc, (vop_t *) spec_valloc },
|
||||
{ &vop_vfree_desc, (vop_t *) spec_vfree },
|
||||
{ &vop_symlink_desc, (vop_t *) spec_badop },
|
||||
{ &vop_truncate_desc, (vop_t *) nullop },
|
||||
{ &vop_unlock_desc, (vop_t *) vop_nounlock },
|
||||
{ &vop_update_desc, (vop_t *) nullop },
|
||||
{ &vop_valloc_desc, (vop_t *) spec_badop },
|
||||
{ &vop_vfree_desc, (vop_t *) spec_badop },
|
||||
{ &vop_write_desc, (vop_t *) spec_write },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
@ -115,12 +132,23 @@ static struct vnodeopv_desc spec_vnodeop_opv_desc =
|
||||
|
||||
VNODEOP_SET(spec_vnodeop_opv_desc);
|
||||
|
||||
|
||||
int
|
||||
spec_vnoperate(ap)
|
||||
struct vop_generic_args /* {
|
||||
struct vnodeop_desc *a_desc;
|
||||
<other random data follows, presumably>
|
||||
} */ *ap;
|
||||
{
|
||||
return (VOCALL(spec_vnodeop_p, ap->a_desc->vdesc_offset, ap));
|
||||
}
|
||||
|
||||
static void spec_getpages_iodone __P((struct buf *bp));
|
||||
|
||||
/*
|
||||
* Trivial lookup routine that always fails.
|
||||
*/
|
||||
int
|
||||
static int
|
||||
spec_lookup(ap)
|
||||
struct vop_lookup_args /* {
|
||||
struct vnode *a_dvp;
|
||||
@ -137,7 +165,7 @@ spec_lookup(ap)
|
||||
* Open a special file.
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
spec_open(ap)
|
||||
struct vop_open_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -236,7 +264,7 @@ spec_open(ap)
|
||||
* Vnode op for read
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
spec_read(ap)
|
||||
struct vop_read_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -318,7 +346,7 @@ spec_read(ap)
|
||||
* Vnode op for write
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
spec_write(ap)
|
||||
struct vop_write_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -399,7 +427,7 @@ spec_write(ap)
|
||||
* Device ioctl operation.
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
spec_ioctl(ap)
|
||||
struct vop_ioctl_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -435,7 +463,7 @@ spec_ioctl(ap)
|
||||
}
|
||||
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
spec_poll(ap)
|
||||
struct vop_poll_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -460,7 +488,7 @@ spec_poll(ap)
|
||||
* Synch buffers associated with a block device
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
spec_fsync(ap)
|
||||
struct vop_fsync_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -510,7 +538,7 @@ spec_fsync(ap)
|
||||
return (0);
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
spec_inactive(ap)
|
||||
struct vop_inactive_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -525,7 +553,7 @@ spec_inactive(ap)
|
||||
/*
|
||||
* Just call the device strategy routine
|
||||
*/
|
||||
int
|
||||
static int
|
||||
spec_strategy(ap)
|
||||
struct vop_strategy_args /* {
|
||||
struct buf *a_bp;
|
||||
@ -539,7 +567,7 @@ spec_strategy(ap)
|
||||
/*
|
||||
* This is a noop, simply returning what one has been given.
|
||||
*/
|
||||
int
|
||||
static int
|
||||
spec_bmap(ap)
|
||||
struct vop_bmap_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -566,7 +594,7 @@ spec_bmap(ap)
|
||||
* Device close routine
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
spec_close(ap)
|
||||
struct vop_close_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -652,7 +680,7 @@ spec_close(ap)
|
||||
/*
|
||||
* Print out the contents of a special device vnode.
|
||||
*/
|
||||
int
|
||||
static int
|
||||
spec_print(ap)
|
||||
struct vop_print_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -667,7 +695,7 @@ spec_print(ap)
|
||||
/*
|
||||
* Return POSIX pathconf information applicable to special devices.
|
||||
*/
|
||||
int
|
||||
static int
|
||||
spec_pathconf(ap)
|
||||
struct vop_pathconf_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -705,7 +733,7 @@ spec_pathconf(ap)
|
||||
* Special device advisory byte-level locks.
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
spec_advlock(ap)
|
||||
struct vop_advlock_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -732,7 +760,7 @@ spec_ebadf()
|
||||
/*
|
||||
* Special device bad operation
|
||||
*/
|
||||
int
|
||||
static int
|
||||
spec_badop()
|
||||
{
|
||||
|
||||
@ -749,7 +777,7 @@ spec_getpages_iodone(bp)
|
||||
wakeup(bp);
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
spec_getpages(ap)
|
||||
struct vop_getpages_args *ap;
|
||||
{
|
||||
|
@ -83,45 +83,15 @@ static int ext2_write __P((struct vop_write_args *));
|
||||
/* Global vfs data structures for ufs. */
|
||||
vop_t **ext2_vnodeop_p;
|
||||
static struct vnodeopv_entry_desc ext2_vnodeop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) ufs_abortop },
|
||||
{ &vop_access_desc, (vop_t *) ufs_access },
|
||||
{ &vop_advlock_desc, (vop_t *) ufs_advlock },
|
||||
{ &vop_default_desc, (vop_t *) ufs_vnoperate },
|
||||
{ &vop_blkatoff_desc, (vop_t *) ext2_blkatoff },
|
||||
{ &vop_bmap_desc, (vop_t *) ufs_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_cachedlookup_desc, (vop_t *) ext2_lookup },
|
||||
{ &vop_close_desc, (vop_t *) ufs_close },
|
||||
{ &vop_create_desc, (vop_t *) ufs_create },
|
||||
{ &vop_fsync_desc, (vop_t *) ext2_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) ufs_getattr },
|
||||
{ &vop_inactive_desc, (vop_t *) ext2_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) ufs_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) ufs_islocked },
|
||||
{ &vop_link_desc, (vop_t *) ufs_link },
|
||||
{ &vop_lock_desc, (vop_t *) ufs_lock },
|
||||
{ &vop_lookup_desc, (vop_t *) vfs_cache_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) ufs_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) ufs_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) ufs_mmap },
|
||||
{ &vop_open_desc, (vop_t *) ufs_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) ufs_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) ufs_poll },
|
||||
{ &vop_print_desc, (vop_t *) ufs_print },
|
||||
{ &vop_read_desc, (vop_t *) ext2_read },
|
||||
{ &vop_readdir_desc, (vop_t *) ext2_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) ufs_readlink },
|
||||
{ &vop_reallocblks_desc, (vop_t *) ext2_reallocblks },
|
||||
{ &vop_reclaim_desc, (vop_t *) ufs_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) ufs_remove },
|
||||
{ &vop_rename_desc, (vop_t *) ufs_rename },
|
||||
{ &vop_rmdir_desc, (vop_t *) ufs_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) ufs_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) ufs_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) ufs_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) ufs_symlink },
|
||||
{ &vop_truncate_desc, (vop_t *) ext2_truncate },
|
||||
{ &vop_unlock_desc, (vop_t *) ufs_unlock },
|
||||
{ &vop_update_desc, (vop_t *) ext2_update },
|
||||
{ &vop_valloc_desc, (vop_t *) ext2_valloc },
|
||||
{ &vop_vfree_desc, (vop_t *) ext2_vfree },
|
||||
@ -133,48 +103,11 @@ static struct vnodeopv_desc ext2fs_vnodeop_opv_desc =
|
||||
|
||||
vop_t **ext2_specop_p;
|
||||
static struct vnodeopv_entry_desc ext2_specop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) spec_abortop },
|
||||
{ &vop_access_desc, (vop_t *) ufs_access },
|
||||
{ &vop_advlock_desc, (vop_t *) spec_advlock },
|
||||
{ &vop_blkatoff_desc, (vop_t *) spec_blkatoff },
|
||||
{ &vop_bmap_desc, (vop_t *) spec_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_close_desc, (vop_t *) ufsspec_close },
|
||||
{ &vop_create_desc, (vop_t *) spec_create },
|
||||
{ &vop_default_desc, (vop_t *) ufs_vnoperatespec },
|
||||
{ &vop_fsync_desc, (vop_t *) ext2_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) ufs_getattr },
|
||||
{ &vop_inactive_desc, (vop_t *) ext2_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) spec_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) ufs_islocked },
|
||||
{ &vop_link_desc, (vop_t *) spec_link },
|
||||
{ &vop_lock_desc, (vop_t *) ufs_lock },
|
||||
{ &vop_lookup_desc, (vop_t *) spec_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) spec_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) spec_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) spec_mmap },
|
||||
{ &vop_open_desc, (vop_t *) spec_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) spec_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) spec_poll },
|
||||
{ &vop_print_desc, (vop_t *) ufs_print },
|
||||
{ &vop_read_desc, (vop_t *) ufsspec_read },
|
||||
{ &vop_readdir_desc, (vop_t *) spec_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) spec_readlink },
|
||||
{ &vop_reallocblks_desc, (vop_t *) spec_reallocblks },
|
||||
{ &vop_reclaim_desc, (vop_t *) ufs_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) spec_remove },
|
||||
{ &vop_rename_desc, (vop_t *) spec_rename },
|
||||
{ &vop_rmdir_desc, (vop_t *) spec_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) spec_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) ufs_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) spec_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) spec_symlink },
|
||||
{ &vop_truncate_desc, (vop_t *) spec_truncate },
|
||||
{ &vop_unlock_desc, (vop_t *) ufs_unlock },
|
||||
{ &vop_update_desc, (vop_t *) ext2_update },
|
||||
{ &vop_valloc_desc, (vop_t *) spec_valloc },
|
||||
{ &vop_vfree_desc, (vop_t *) ext2_vfree },
|
||||
{ &vop_write_desc, (vop_t *) ufsspec_write },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
static struct vnodeopv_desc ext2fs_specop_opv_desc =
|
||||
@ -182,48 +115,11 @@ static struct vnodeopv_desc ext2fs_specop_opv_desc =
|
||||
|
||||
vop_t **ext2_fifoop_p;
|
||||
static struct vnodeopv_entry_desc ext2_fifoop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) fifo_abortop },
|
||||
{ &vop_access_desc, (vop_t *) ufs_access },
|
||||
{ &vop_advlock_desc, (vop_t *) fifo_advlock },
|
||||
{ &vop_blkatoff_desc, (vop_t *) fifo_blkatoff },
|
||||
{ &vop_bmap_desc, (vop_t *) fifo_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_close_desc, (vop_t *) ufsfifo_close },
|
||||
{ &vop_create_desc, (vop_t *) fifo_create },
|
||||
{ &vop_default_desc, (vop_t *) ufs_vnoperatefifo },
|
||||
{ &vop_fsync_desc, (vop_t *) ext2_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) ufs_getattr },
|
||||
{ &vop_inactive_desc, (vop_t *) ext2_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) fifo_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) ufs_islocked },
|
||||
{ &vop_link_desc, (vop_t *) fifo_link },
|
||||
{ &vop_lock_desc, (vop_t *) ufs_lock },
|
||||
{ &vop_lookup_desc, (vop_t *) fifo_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) fifo_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) fifo_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) fifo_mmap },
|
||||
{ &vop_open_desc, (vop_t *) fifo_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) fifo_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) fifo_poll },
|
||||
{ &vop_print_desc, (vop_t *) ufs_print },
|
||||
{ &vop_read_desc, (vop_t *) ufsfifo_read },
|
||||
{ &vop_readdir_desc, (vop_t *) fifo_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) fifo_readlink },
|
||||
{ &vop_reallocblks_desc, (vop_t *) fifo_reallocblks },
|
||||
{ &vop_reclaim_desc, (vop_t *) ufs_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) fifo_remove },
|
||||
{ &vop_rename_desc, (vop_t *) fifo_rename },
|
||||
{ &vop_rmdir_desc, (vop_t *) fifo_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) fifo_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) ufs_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) fifo_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) fifo_symlink },
|
||||
{ &vop_truncate_desc, (vop_t *) fifo_truncate },
|
||||
{ &vop_unlock_desc, (vop_t *) ufs_unlock },
|
||||
{ &vop_update_desc, (vop_t *) ext2_update },
|
||||
{ &vop_valloc_desc, (vop_t *) fifo_valloc },
|
||||
{ &vop_vfree_desc, (vop_t *) ext2_vfree },
|
||||
{ &vop_write_desc, (vop_t *) ufsfifo_write },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
static struct vnodeopv_desc ext2fs_fifoop_opv_desc =
|
||||
|
@ -83,45 +83,15 @@ static int ext2_write __P((struct vop_write_args *));
|
||||
/* Global vfs data structures for ufs. */
|
||||
vop_t **ext2_vnodeop_p;
|
||||
static struct vnodeopv_entry_desc ext2_vnodeop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) ufs_abortop },
|
||||
{ &vop_access_desc, (vop_t *) ufs_access },
|
||||
{ &vop_advlock_desc, (vop_t *) ufs_advlock },
|
||||
{ &vop_default_desc, (vop_t *) ufs_vnoperate },
|
||||
{ &vop_blkatoff_desc, (vop_t *) ext2_blkatoff },
|
||||
{ &vop_bmap_desc, (vop_t *) ufs_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_cachedlookup_desc, (vop_t *) ext2_lookup },
|
||||
{ &vop_close_desc, (vop_t *) ufs_close },
|
||||
{ &vop_create_desc, (vop_t *) ufs_create },
|
||||
{ &vop_fsync_desc, (vop_t *) ext2_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) ufs_getattr },
|
||||
{ &vop_inactive_desc, (vop_t *) ext2_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) ufs_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) ufs_islocked },
|
||||
{ &vop_link_desc, (vop_t *) ufs_link },
|
||||
{ &vop_lock_desc, (vop_t *) ufs_lock },
|
||||
{ &vop_lookup_desc, (vop_t *) vfs_cache_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) ufs_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) ufs_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) ufs_mmap },
|
||||
{ &vop_open_desc, (vop_t *) ufs_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) ufs_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) ufs_poll },
|
||||
{ &vop_print_desc, (vop_t *) ufs_print },
|
||||
{ &vop_read_desc, (vop_t *) ext2_read },
|
||||
{ &vop_readdir_desc, (vop_t *) ext2_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) ufs_readlink },
|
||||
{ &vop_reallocblks_desc, (vop_t *) ext2_reallocblks },
|
||||
{ &vop_reclaim_desc, (vop_t *) ufs_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) ufs_remove },
|
||||
{ &vop_rename_desc, (vop_t *) ufs_rename },
|
||||
{ &vop_rmdir_desc, (vop_t *) ufs_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) ufs_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) ufs_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) ufs_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) ufs_symlink },
|
||||
{ &vop_truncate_desc, (vop_t *) ext2_truncate },
|
||||
{ &vop_unlock_desc, (vop_t *) ufs_unlock },
|
||||
{ &vop_update_desc, (vop_t *) ext2_update },
|
||||
{ &vop_valloc_desc, (vop_t *) ext2_valloc },
|
||||
{ &vop_vfree_desc, (vop_t *) ext2_vfree },
|
||||
@ -133,48 +103,11 @@ static struct vnodeopv_desc ext2fs_vnodeop_opv_desc =
|
||||
|
||||
vop_t **ext2_specop_p;
|
||||
static struct vnodeopv_entry_desc ext2_specop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) spec_abortop },
|
||||
{ &vop_access_desc, (vop_t *) ufs_access },
|
||||
{ &vop_advlock_desc, (vop_t *) spec_advlock },
|
||||
{ &vop_blkatoff_desc, (vop_t *) spec_blkatoff },
|
||||
{ &vop_bmap_desc, (vop_t *) spec_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_close_desc, (vop_t *) ufsspec_close },
|
||||
{ &vop_create_desc, (vop_t *) spec_create },
|
||||
{ &vop_default_desc, (vop_t *) ufs_vnoperatespec },
|
||||
{ &vop_fsync_desc, (vop_t *) ext2_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) ufs_getattr },
|
||||
{ &vop_inactive_desc, (vop_t *) ext2_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) spec_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) ufs_islocked },
|
||||
{ &vop_link_desc, (vop_t *) spec_link },
|
||||
{ &vop_lock_desc, (vop_t *) ufs_lock },
|
||||
{ &vop_lookup_desc, (vop_t *) spec_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) spec_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) spec_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) spec_mmap },
|
||||
{ &vop_open_desc, (vop_t *) spec_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) spec_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) spec_poll },
|
||||
{ &vop_print_desc, (vop_t *) ufs_print },
|
||||
{ &vop_read_desc, (vop_t *) ufsspec_read },
|
||||
{ &vop_readdir_desc, (vop_t *) spec_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) spec_readlink },
|
||||
{ &vop_reallocblks_desc, (vop_t *) spec_reallocblks },
|
||||
{ &vop_reclaim_desc, (vop_t *) ufs_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) spec_remove },
|
||||
{ &vop_rename_desc, (vop_t *) spec_rename },
|
||||
{ &vop_rmdir_desc, (vop_t *) spec_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) spec_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) ufs_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) spec_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) spec_symlink },
|
||||
{ &vop_truncate_desc, (vop_t *) spec_truncate },
|
||||
{ &vop_unlock_desc, (vop_t *) ufs_unlock },
|
||||
{ &vop_update_desc, (vop_t *) ext2_update },
|
||||
{ &vop_valloc_desc, (vop_t *) spec_valloc },
|
||||
{ &vop_vfree_desc, (vop_t *) ext2_vfree },
|
||||
{ &vop_write_desc, (vop_t *) ufsspec_write },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
static struct vnodeopv_desc ext2fs_specop_opv_desc =
|
||||
@ -182,48 +115,11 @@ static struct vnodeopv_desc ext2fs_specop_opv_desc =
|
||||
|
||||
vop_t **ext2_fifoop_p;
|
||||
static struct vnodeopv_entry_desc ext2_fifoop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) fifo_abortop },
|
||||
{ &vop_access_desc, (vop_t *) ufs_access },
|
||||
{ &vop_advlock_desc, (vop_t *) fifo_advlock },
|
||||
{ &vop_blkatoff_desc, (vop_t *) fifo_blkatoff },
|
||||
{ &vop_bmap_desc, (vop_t *) fifo_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_close_desc, (vop_t *) ufsfifo_close },
|
||||
{ &vop_create_desc, (vop_t *) fifo_create },
|
||||
{ &vop_default_desc, (vop_t *) ufs_vnoperatefifo },
|
||||
{ &vop_fsync_desc, (vop_t *) ext2_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) ufs_getattr },
|
||||
{ &vop_inactive_desc, (vop_t *) ext2_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) fifo_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) ufs_islocked },
|
||||
{ &vop_link_desc, (vop_t *) fifo_link },
|
||||
{ &vop_lock_desc, (vop_t *) ufs_lock },
|
||||
{ &vop_lookup_desc, (vop_t *) fifo_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) fifo_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) fifo_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) fifo_mmap },
|
||||
{ &vop_open_desc, (vop_t *) fifo_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) fifo_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) fifo_poll },
|
||||
{ &vop_print_desc, (vop_t *) ufs_print },
|
||||
{ &vop_read_desc, (vop_t *) ufsfifo_read },
|
||||
{ &vop_readdir_desc, (vop_t *) fifo_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) fifo_readlink },
|
||||
{ &vop_reallocblks_desc, (vop_t *) fifo_reallocblks },
|
||||
{ &vop_reclaim_desc, (vop_t *) ufs_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) fifo_remove },
|
||||
{ &vop_rename_desc, (vop_t *) fifo_rename },
|
||||
{ &vop_rmdir_desc, (vop_t *) fifo_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) fifo_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) ufs_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) fifo_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) fifo_symlink },
|
||||
{ &vop_truncate_desc, (vop_t *) fifo_truncate },
|
||||
{ &vop_unlock_desc, (vop_t *) ufs_unlock },
|
||||
{ &vop_update_desc, (vop_t *) ext2_update },
|
||||
{ &vop_valloc_desc, (vop_t *) fifo_valloc },
|
||||
{ &vop_vfree_desc, (vop_t *) ext2_vfree },
|
||||
{ &vop_write_desc, (vop_t *) ufsfifo_write },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
static struct vnodeopv_desc ext2fs_fifoop_opv_desc =
|
||||
|
@ -36,7 +36,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)cd9660_vnops.c 8.19 (Berkeley) 5/27/95
|
||||
* $Id: cd9660_vnops.c,v 1.41 1997/10/15 09:20:47 phk Exp $
|
||||
* $Id: cd9660_vnops.c,v 1.42 1997/10/15 10:03:58 phk Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
@ -1050,49 +1050,18 @@ VNODEOP_SET(cd9660_vnodeop_opv_desc);
|
||||
*/
|
||||
vop_t **cd9660_specop_p;
|
||||
struct vnodeopv_entry_desc cd9660_specop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) spec_abortop },
|
||||
{ &vop_default_desc, (vop_t *) spec_vnoperate },
|
||||
{ &vop_access_desc, (vop_t *) cd9660_access },
|
||||
{ &vop_advlock_desc, (vop_t *) spec_advlock },
|
||||
{ &vop_blkatoff_desc, (vop_t *) spec_blkatoff },
|
||||
{ &vop_bmap_desc, (vop_t *) spec_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_close_desc, (vop_t *) spec_close },
|
||||
{ &vop_create_desc, (vop_t *) spec_create },
|
||||
{ &vop_fsync_desc, (vop_t *) spec_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) cd9660_getattr },
|
||||
{ &vop_inactive_desc, (vop_t *) cd9660_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) spec_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) cd9660_islocked },
|
||||
{ &vop_lease_desc, (vop_t *) spec_lease_check },
|
||||
{ &vop_link_desc, (vop_t *) spec_link },
|
||||
{ &vop_lock_desc, (vop_t *) cd9660_lock },
|
||||
{ &vop_lookup_desc, (vop_t *) spec_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) spec_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) spec_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) spec_mmap },
|
||||
{ &vop_open_desc, (vop_t *) spec_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) spec_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) spec_poll },
|
||||
{ &vop_print_desc, (vop_t *) cd9660_print },
|
||||
{ &vop_read_desc, (vop_t *) spec_read },
|
||||
{ &vop_readdir_desc, (vop_t *) spec_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) spec_readlink },
|
||||
{ &vop_reclaim_desc, (vop_t *) cd9660_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) spec_remove },
|
||||
{ &vop_rename_desc, (vop_t *) spec_rename },
|
||||
{ &vop_revoke_desc, (vop_t *) spec_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) spec_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) spec_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) cd9660_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) spec_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) spec_symlink },
|
||||
{ &vop_truncate_desc, (vop_t *) spec_truncate },
|
||||
{ &vop_unlock_desc, (vop_t *) cd9660_unlock },
|
||||
{ &vop_update_desc, (vop_t *) cd9660_update },
|
||||
{ &vop_valloc_desc, (vop_t *) spec_valloc },
|
||||
{ &vop_vfree_desc, (vop_t *) spec_vfree },
|
||||
{ &vop_write_desc, (vop_t *) spec_write },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
static struct vnodeopv_desc cd9660_specop_opv_desc =
|
||||
@ -1101,49 +1070,18 @@ VNODEOP_SET(cd9660_specop_opv_desc);
|
||||
|
||||
vop_t **cd9660_fifoop_p;
|
||||
struct vnodeopv_entry_desc cd9660_fifoop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) fifo_abortop },
|
||||
{ &vop_default_desc, (vop_t *) fifo_vnoperate },
|
||||
{ &vop_access_desc, (vop_t *) cd9660_access },
|
||||
{ &vop_advlock_desc, (vop_t *) fifo_advlock },
|
||||
{ &vop_blkatoff_desc, (vop_t *) fifo_blkatoff },
|
||||
{ &vop_bmap_desc, (vop_t *) fifo_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_close_desc, (vop_t *) fifo_close },
|
||||
{ &vop_create_desc, (vop_t *) fifo_create },
|
||||
{ &vop_fsync_desc, (vop_t *) fifo_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) cd9660_getattr },
|
||||
{ &vop_inactive_desc, (vop_t *) cd9660_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) fifo_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) cd9660_islocked },
|
||||
{ &vop_lease_desc, (vop_t *) fifo_lease_check },
|
||||
{ &vop_link_desc, (vop_t *) fifo_link },
|
||||
{ &vop_lock_desc, (vop_t *) cd9660_lock },
|
||||
{ &vop_lookup_desc, (vop_t *) fifo_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) fifo_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) fifo_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) fifo_mmap },
|
||||
{ &vop_open_desc, (vop_t *) fifo_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) fifo_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) fifo_poll },
|
||||
{ &vop_print_desc, (vop_t *) cd9660_print },
|
||||
{ &vop_read_desc, (vop_t *) fifo_read },
|
||||
{ &vop_readdir_desc, (vop_t *) fifo_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) fifo_readlink },
|
||||
{ &vop_reclaim_desc, (vop_t *) cd9660_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) fifo_remove },
|
||||
{ &vop_rename_desc, (vop_t *) fifo_rename },
|
||||
{ &vop_revoke_desc, (vop_t *) fifo_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) fifo_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) fifo_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) cd9660_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) fifo_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) fifo_symlink },
|
||||
{ &vop_truncate_desc, (vop_t *) fifo_truncate },
|
||||
{ &vop_unlock_desc, (vop_t *) cd9660_unlock },
|
||||
{ &vop_update_desc, (vop_t *) cd9660_update },
|
||||
{ &vop_valloc_desc, (vop_t *) fifo_valloc },
|
||||
{ &vop_vfree_desc, (vop_t *) fifo_vfree },
|
||||
{ &vop_write_desc, (vop_t *) fifo_write },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
static struct vnodeopv_desc cd9660_fifoop_opv_desc =
|
||||
|
@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)vfs_cache.c 8.5 (Berkeley) 3/22/95
|
||||
* $Id: vfs_cache.c,v 1.32 1997/09/24 07:46:52 phk Exp $
|
||||
* $Id: vfs_cache.c,v 1.33 1997/09/24 15:54:10 phk Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
@ -415,8 +415,7 @@ vfs_cache_lookup(ap)
|
||||
error = cache_lookup(vdp, vpp, cnp);
|
||||
|
||||
if (!error)
|
||||
return (VCALL(vdp, VOFFSET(vop_cachedlookup),
|
||||
(struct vop_cachedlookup_args *)ap));
|
||||
return (VOP_CACHEDLOOKUP(ap->a_dvp, ap->a_vpp, ap->a_cnp));
|
||||
|
||||
if (error == ENOENT)
|
||||
return (error);
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Written by Julian Elischer (julian@DIALix.oz.au)
|
||||
*
|
||||
* $Header: /home/ncvs/src/sys/miscfs/devfs/devfs_vnops.c,v 1.41 1997/10/15 09:20:53 phk Exp $
|
||||
* $Header: /home/ncvs/src/sys/miscfs/devfs/devfs_vnops.c,v 1.42 1997/10/15 10:04:08 phk Exp $
|
||||
*
|
||||
* symlinks can wait 'til later.
|
||||
*/
|
||||
@ -682,7 +682,7 @@ DBPRINT(("read\n"));
|
||||
NULL,NULL,NULL);
|
||||
case VCHR:
|
||||
case VBLK:
|
||||
error = spec_read(ap);
|
||||
error = VOCALL(spec_vnodeop_p, VOFFSET(vop_read), ap);
|
||||
TIMEVAL_TO_TIMESPEC(&time,&(file_node->atime))
|
||||
return(error);
|
||||
|
||||
@ -722,7 +722,7 @@ DBPRINT(("write\n"));
|
||||
return(EISDIR);
|
||||
case VCHR:
|
||||
case VBLK:
|
||||
error = spec_write(ap);
|
||||
error = VOCALL(spec_vnodeop_p, VOFFSET(vop_write), ap);
|
||||
TIMEVAL_TO_TIMESPEC(&time,&(file_node->mtime))
|
||||
return(error);
|
||||
|
||||
@ -1779,47 +1779,14 @@ VNODEOP_SET(devfs_vnodeop_opv_desc);
|
||||
|
||||
vop_t **dev_spec_vnodeop_p;
|
||||
static struct vnodeopv_entry_desc dev_spec_vnodeop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) spec_abortop },
|
||||
{ &vop_default_desc, (vop_t *) spec_vnoperate },
|
||||
{ &vop_access_desc, (vop_t *) devfs_access },
|
||||
{ &vop_advlock_desc, (vop_t *) spec_advlock },
|
||||
{ &vop_blkatoff_desc, (vop_t *) spec_blkatoff },
|
||||
{ &vop_bmap_desc, (vop_t *) spec_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_close_desc, (vop_t *) spec_close },
|
||||
{ &vop_create_desc, (vop_t *) spec_create },
|
||||
{ &vop_fsync_desc, (vop_t *) spec_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) devfs_getattr },
|
||||
{ &vop_getpages_desc, (vop_t *) spec_getpages },
|
||||
{ &vop_inactive_desc, (vop_t *) spec_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) spec_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) spec_islocked },
|
||||
{ &vop_link_desc, (vop_t *) spec_link },
|
||||
{ &vop_lock_desc, (vop_t *) spec_lock },
|
||||
{ &vop_lookup_desc, (vop_t *) spec_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) spec_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) spec_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) spec_mmap },
|
||||
{ &vop_open_desc, (vop_t *) spec_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) spec_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) spec_poll },
|
||||
{ &vop_print_desc, (vop_t *) spec_print },
|
||||
{ &vop_read_desc, (vop_t *) devfs_read },
|
||||
{ &vop_readdir_desc, (vop_t *) spec_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) spec_readlink },
|
||||
{ &vop_reclaim_desc, (vop_t *) devfs_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) spec_remove },
|
||||
{ &vop_rename_desc, (vop_t *) spec_rename },
|
||||
{ &vop_rmdir_desc, (vop_t *) spec_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) spec_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) devfs_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) spec_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) devfs_symlink },
|
||||
{ &vop_truncate_desc, (vop_t *) spec_truncate },
|
||||
{ &vop_unlock_desc, (vop_t *) spec_unlock },
|
||||
{ &vop_update_desc, (vop_t *) spec_update },
|
||||
{ &vop_valloc_desc, (vop_t *) spec_valloc },
|
||||
{ &vop_vfree_desc, (vop_t *) spec_vfree },
|
||||
{ &vop_write_desc, (vop_t *) devfs_write },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)fifo.h 8.6 (Berkeley) 5/21/95
|
||||
* $Id: fifo.h,v 1.13 1997/02/22 09:40:17 peter Exp $
|
||||
* $Id: fifo.h,v 1.14 1997/09/14 02:57:51 peter Exp $
|
||||
*/
|
||||
|
||||
extern vop_t **fifo_vnodeop_p;
|
||||
@ -39,48 +39,6 @@ extern vop_t **fifo_vnodeop_p;
|
||||
/*
|
||||
* Prototypes for fifo operations on vnodes.
|
||||
*/
|
||||
int fifo_badop __P((void));
|
||||
int fifo_vnoperate __P((struct vop_generic_args *));
|
||||
int fifo_printinfo __P((struct vnode *));
|
||||
int fifo_lookup __P((struct vop_lookup_args *));
|
||||
#define fifo_create ((int (*) __P((struct vop_create_args *)))fifo_badop)
|
||||
#define fifo_mknod ((int (*) __P((struct vop_mknod_args *)))fifo_badop)
|
||||
int fifo_open __P((struct vop_open_args *));
|
||||
int fifo_close __P((struct vop_close_args *));
|
||||
#define fifo_access ((int (*) __P((struct vop_access_args *)))fifo_ebadf)
|
||||
#define fifo_getattr ((int (*) __P((struct vop_getattr_args *)))fifo_ebadf)
|
||||
#define fifo_setattr ((int (*) __P((struct vop_setattr_args *)))fifo_ebadf)
|
||||
int fifo_read __P((struct vop_read_args *));
|
||||
int fifo_write __P((struct vop_write_args *));
|
||||
#define fifo_lease_check ((int (*) __P((struct vop_lease_args *)))nullop)
|
||||
int fifo_ioctl __P((struct vop_ioctl_args *));
|
||||
int fifo_poll __P((struct vop_poll_args *));
|
||||
#define fifo_revoke vop_revoke
|
||||
#define fifo_mmap ((int (*) __P((struct vop_mmap_args *)))fifo_badop)
|
||||
#define fifo_fsync ((int (*) __P((struct vop_fsync_args *)))nullop)
|
||||
#define fifo_seek ((int (*) __P((struct vop_seek_args *)))fifo_badop)
|
||||
#define fifo_remove ((int (*) __P((struct vop_remove_args *)))fifo_badop)
|
||||
#define fifo_link ((int (*) __P((struct vop_link_args *)))fifo_badop)
|
||||
#define fifo_rename ((int (*) __P((struct vop_rename_args *)))fifo_badop)
|
||||
#define fifo_mkdir ((int (*) __P((struct vop_mkdir_args *)))fifo_badop)
|
||||
#define fifo_rmdir ((int (*) __P((struct vop_rmdir_args *)))fifo_badop)
|
||||
#define fifo_symlink ((int (*) __P((struct vop_symlink_args *)))fifo_badop)
|
||||
#define fifo_readdir ((int (*) __P((struct vop_readdir_args *)))fifo_badop)
|
||||
#define fifo_readlink ((int (*) __P((struct vop_readlink_args *)))fifo_badop)
|
||||
#define fifo_abortop ((int (*) __P((struct vop_abortop_args *)))fifo_badop)
|
||||
int fifo_inactive __P((struct vop_inactive_args *));
|
||||
#define fifo_reclaim ((int (*) __P((struct vop_reclaim_args *)))nullop)
|
||||
#define fifo_lock ((int (*) __P((struct vop_lock_args *)))vop_nolock)
|
||||
#define fifo_unlock ((int (*) __P((struct vop_unlock_args *)))vop_nounlock)
|
||||
int fifo_bmap __P((struct vop_bmap_args *));
|
||||
#define fifo_strategy ((int (*) __P((struct vop_strategy_args *)))fifo_badop)
|
||||
#define fifo_islocked ((int(*) __P((struct vop_islocked_args *)))vop_noislocked)
|
||||
int fifo_pathconf __P((struct vop_pathconf_args *));
|
||||
int fifo_advlock __P((struct vop_advlock_args *));
|
||||
#define fifo_blkatoff ((int (*) __P((struct vop_blkatoff_args *)))fifo_badop)
|
||||
#define fifo_valloc ((int (*) __P((struct vop_valloc_args *)))fifo_badop)
|
||||
#define fifo_reallocblks \
|
||||
((int (*) __P((struct vop_reallocblks_args *)))fifo_badop)
|
||||
#define fifo_vfree ((int (*) __P((struct vop_vfree_args *)))fifo_badop)
|
||||
#define fifo_truncate ((int (*) __P((struct vop_truncate_args *)))nullop)
|
||||
#define fifo_update ((int (*) __P((struct vop_update_args *)))nullop)
|
||||
#define fifo_bwrite ((int (*) __P((struct vop_bwrite_args *)))nullop)
|
||||
|
||||
|
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)fifo_vnops.c 8.10 (Berkeley) 5/27/95
|
||||
* $Id: fifo_vnops.c,v 1.29 1997/10/15 09:21:00 phk Exp $
|
||||
* $Id: fifo_vnops.c,v 1.30 1997/10/15 10:04:18 phk Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
@ -61,52 +61,66 @@ struct fifoinfo {
|
||||
};
|
||||
|
||||
static int fifo_ebadf __P((void));
|
||||
static int fifo_badop __P((void));
|
||||
static int fifo_print __P((struct vop_print_args *));
|
||||
static int fifo_lookup __P((struct vop_lookup_args *));
|
||||
static int fifo_open __P((struct vop_open_args *));
|
||||
static int fifo_close __P((struct vop_close_args *));
|
||||
static int fifo_read __P((struct vop_read_args *));
|
||||
static int fifo_write __P((struct vop_write_args *));
|
||||
static int fifo_ioctl __P((struct vop_ioctl_args *));
|
||||
static int fifo_poll __P((struct vop_poll_args *));
|
||||
static int fifo_inactive __P((struct vop_inactive_args *));
|
||||
static int fifo_bmap __P((struct vop_bmap_args *));
|
||||
static int fifo_pathconf __P((struct vop_pathconf_args *));
|
||||
static int fifo_advlock __P((struct vop_advlock_args *));
|
||||
|
||||
|
||||
vop_t **fifo_vnodeop_p;
|
||||
static struct vnodeopv_entry_desc fifo_vnodeop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) fifo_abortop },
|
||||
{ &vop_access_desc, (vop_t *) fifo_access },
|
||||
{ &vop_abortop_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_access_desc, (vop_t *) fifo_ebadf },
|
||||
{ &vop_advlock_desc, (vop_t *) fifo_advlock },
|
||||
{ &vop_blkatoff_desc, (vop_t *) fifo_blkatoff },
|
||||
{ &vop_blkatoff_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_bmap_desc, (vop_t *) fifo_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) fifo_bwrite },
|
||||
{ &vop_bwrite_desc, (vop_t *) nullop },
|
||||
{ &vop_close_desc, (vop_t *) fifo_close },
|
||||
{ &vop_create_desc, (vop_t *) fifo_create },
|
||||
{ &vop_fsync_desc, (vop_t *) fifo_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) fifo_getattr },
|
||||
{ &vop_create_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_fsync_desc, (vop_t *) nullop },
|
||||
{ &vop_getattr_desc, (vop_t *) fifo_ebadf },
|
||||
{ &vop_inactive_desc, (vop_t *) fifo_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) fifo_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) fifo_islocked },
|
||||
{ &vop_lease_desc, (vop_t *) fifo_lease_check },
|
||||
{ &vop_link_desc, (vop_t *) fifo_link },
|
||||
{ &vop_lock_desc, (vop_t *) fifo_lock },
|
||||
{ &vop_islocked_desc, (vop_t *) vop_noislocked },
|
||||
{ &vop_lease_desc, (vop_t *) nullop },
|
||||
{ &vop_link_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_lock_desc, (vop_t *) vop_nolock },
|
||||
{ &vop_lookup_desc, (vop_t *) fifo_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) fifo_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) fifo_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) fifo_mmap },
|
||||
{ &vop_mkdir_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_mknod_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_mmap_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_open_desc, (vop_t *) fifo_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) fifo_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) fifo_poll },
|
||||
{ &vop_print_desc, (vop_t *) fifo_print },
|
||||
{ &vop_read_desc, (vop_t *) fifo_read },
|
||||
{ &vop_readdir_desc, (vop_t *) fifo_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) fifo_readlink },
|
||||
{ &vop_reclaim_desc, (vop_t *) fifo_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) fifo_remove },
|
||||
{ &vop_rename_desc, (vop_t *) fifo_rename },
|
||||
{ &vop_revoke_desc, (vop_t *) fifo_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) fifo_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) fifo_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) fifo_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) fifo_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) fifo_symlink },
|
||||
{ &vop_truncate_desc, (vop_t *) fifo_truncate },
|
||||
{ &vop_unlock_desc, (vop_t *) fifo_unlock },
|
||||
{ &vop_update_desc, (vop_t *) fifo_update },
|
||||
{ &vop_valloc_desc, (vop_t *) fifo_valloc },
|
||||
{ &vop_vfree_desc, (vop_t *) fifo_vfree },
|
||||
{ &vop_readdir_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_readlink_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_reallocblks_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_reclaim_desc, (vop_t *) nullop },
|
||||
{ &vop_remove_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_rename_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_revoke_desc, (vop_t *) vop_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_seek_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_setattr_desc, (vop_t *) fifo_ebadf },
|
||||
{ &vop_strategy_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_symlink_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_truncate_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_unlock_desc, (vop_t *) vop_nounlock },
|
||||
{ &vop_update_desc, (vop_t *) nullop },
|
||||
{ &vop_valloc_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_vfree_desc, (vop_t *) fifo_badop },
|
||||
{ &vop_write_desc, (vop_t *) fifo_write },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
@ -115,11 +129,21 @@ static struct vnodeopv_desc fifo_vnodeop_opv_desc =
|
||||
|
||||
VNODEOP_SET(fifo_vnodeop_opv_desc);
|
||||
|
||||
int
|
||||
fifo_vnoperate(ap)
|
||||
struct vop_generic_args /* {
|
||||
struct vnodeop_desc *a_desc;
|
||||
<other random data follows, presumably>
|
||||
} */ *ap;
|
||||
{
|
||||
return (VOCALL(fifo_vnodeop_p, ap->a_desc->vdesc_offset, ap));
|
||||
}
|
||||
|
||||
/*
|
||||
* Trivial lookup routine that always fails.
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
fifo_lookup(ap)
|
||||
struct vop_lookup_args /* {
|
||||
struct vnode * a_dvp;
|
||||
@ -137,7 +161,7 @@ fifo_lookup(ap)
|
||||
* to find an active instance of a fifo.
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
fifo_open(ap)
|
||||
struct vop_open_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -236,7 +260,7 @@ fifo_open(ap)
|
||||
* Vnode op for read
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
fifo_read(ap)
|
||||
struct vop_read_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -277,7 +301,7 @@ fifo_read(ap)
|
||||
* Vnode op for write
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
fifo_write(ap)
|
||||
struct vop_write_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -309,7 +333,7 @@ fifo_write(ap)
|
||||
* Device ioctl operation.
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
fifo_ioctl(ap)
|
||||
struct vop_ioctl_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -341,7 +365,7 @@ fifo_ioctl(ap)
|
||||
}
|
||||
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
fifo_poll(ap)
|
||||
struct vop_poll_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -368,7 +392,7 @@ fifo_poll(ap)
|
||||
return (revents);
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
fifo_inactive(ap)
|
||||
struct vop_inactive_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -383,7 +407,7 @@ fifo_inactive(ap)
|
||||
/*
|
||||
* This is a noop, simply returning what one has been given.
|
||||
*/
|
||||
int
|
||||
static int
|
||||
fifo_bmap(ap)
|
||||
struct vop_bmap_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -410,7 +434,7 @@ fifo_bmap(ap)
|
||||
* Device close routine
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
fifo_close(ap)
|
||||
struct vop_close_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -478,7 +502,7 @@ fifo_print(ap)
|
||||
/*
|
||||
* Return POSIX pathconf information applicable to fifo's.
|
||||
*/
|
||||
int
|
||||
static int
|
||||
fifo_pathconf(ap)
|
||||
struct vop_pathconf_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -517,7 +541,7 @@ fifo_ebadf()
|
||||
* Fifo advisory byte-level locks.
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
fifo_advlock(ap)
|
||||
struct vop_advlock_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -534,7 +558,7 @@ fifo_advlock(ap)
|
||||
/*
|
||||
* Fifo bad operation
|
||||
*/
|
||||
int
|
||||
static int
|
||||
fifo_badop()
|
||||
{
|
||||
|
||||
|
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)spec_vnops.c 8.14 (Berkeley) 5/21/95
|
||||
* $Id: spec_vnops.c,v 1.44 1997/10/15 09:21:22 phk Exp $
|
||||
* $Id: spec_vnops.c,v 1.45 1997/10/15 10:04:43 phk Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
@ -60,53 +60,70 @@
|
||||
|
||||
static int spec_ebadf __P((void));
|
||||
static int spec_getattr __P((struct vop_getattr_args *));
|
||||
static int spec_badop __P((void));
|
||||
static int spec_strategy __P((struct vop_strategy_args *));
|
||||
static int spec_print __P((struct vop_print_args *));
|
||||
static int spec_lookup __P((struct vop_lookup_args *));
|
||||
static int spec_open __P((struct vop_open_args *));
|
||||
static int spec_close __P((struct vop_close_args *));
|
||||
static int spec_read __P((struct vop_read_args *));
|
||||
static int spec_write __P((struct vop_write_args *));
|
||||
static int spec_ioctl __P((struct vop_ioctl_args *));
|
||||
static int spec_poll __P((struct vop_poll_args *));
|
||||
static int spec_inactive __P((struct vop_inactive_args *));
|
||||
static int spec_fsync __P((struct vop_fsync_args *));
|
||||
static int spec_bmap __P((struct vop_bmap_args *));
|
||||
static int spec_pathconf __P((struct vop_pathconf_args *));
|
||||
static int spec_advlock __P((struct vop_advlock_args *));
|
||||
static int spec_getpages __P((struct vop_getpages_args *));
|
||||
|
||||
struct vnode *speclisth[SPECHSZ];
|
||||
vop_t **spec_vnodeop_p;
|
||||
static struct vnodeopv_entry_desc spec_vnodeop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) spec_abortop },
|
||||
{ &vop_access_desc, (vop_t *) spec_access },
|
||||
{ &vop_abortop_desc, (vop_t *) spec_badop },
|
||||
{ &vop_access_desc, (vop_t *) spec_ebadf },
|
||||
{ &vop_advlock_desc, (vop_t *) spec_advlock },
|
||||
{ &vop_blkatoff_desc, (vop_t *) spec_blkatoff },
|
||||
{ &vop_blkatoff_desc, (vop_t *) spec_badop },
|
||||
{ &vop_bmap_desc, (vop_t *) spec_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_bwrite_desc, (vop_t *) nullop },
|
||||
{ &vop_close_desc, (vop_t *) spec_close },
|
||||
{ &vop_create_desc, (vop_t *) spec_create },
|
||||
{ &vop_create_desc, (vop_t *) spec_badop },
|
||||
{ &vop_fsync_desc, (vop_t *) spec_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) spec_getattr },
|
||||
{ &vop_getpages_desc, (vop_t *) spec_getpages },
|
||||
{ &vop_inactive_desc, (vop_t *) spec_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) spec_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) spec_islocked },
|
||||
{ &vop_lease_desc, (vop_t *) spec_lease_check },
|
||||
{ &vop_link_desc, (vop_t *) spec_link },
|
||||
{ &vop_lock_desc, (vop_t *) spec_lock },
|
||||
{ &vop_islocked_desc, (vop_t *) vop_noislocked },
|
||||
{ &vop_lease_desc, (vop_t *) nullop },
|
||||
{ &vop_link_desc, (vop_t *) spec_badop },
|
||||
{ &vop_lock_desc, (vop_t *) vop_nolock },
|
||||
{ &vop_lookup_desc, (vop_t *) spec_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) spec_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) spec_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) spec_mmap },
|
||||
{ &vop_mkdir_desc, (vop_t *) spec_badop },
|
||||
{ &vop_mknod_desc, (vop_t *) spec_badop },
|
||||
{ &vop_mmap_desc, (vop_t *) spec_badop },
|
||||
{ &vop_open_desc, (vop_t *) spec_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) spec_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) spec_poll },
|
||||
{ &vop_print_desc, (vop_t *) spec_print },
|
||||
{ &vop_read_desc, (vop_t *) spec_read },
|
||||
{ &vop_readdir_desc, (vop_t *) spec_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) spec_readlink },
|
||||
{ &vop_reclaim_desc, (vop_t *) spec_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) spec_remove },
|
||||
{ &vop_rename_desc, (vop_t *) spec_rename },
|
||||
{ &vop_revoke_desc, (vop_t *) spec_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) spec_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) spec_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) spec_setattr },
|
||||
{ &vop_readdir_desc, (vop_t *) spec_badop },
|
||||
{ &vop_readlink_desc, (vop_t *) spec_badop },
|
||||
{ &vop_reallocblks_desc, (vop_t *) spec_badop },
|
||||
{ &vop_reclaim_desc, (vop_t *) nullop },
|
||||
{ &vop_remove_desc, (vop_t *) spec_badop },
|
||||
{ &vop_rename_desc, (vop_t *) spec_badop },
|
||||
{ &vop_revoke_desc, (vop_t *) vop_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) spec_badop },
|
||||
{ &vop_seek_desc, (vop_t *) spec_badop },
|
||||
{ &vop_setattr_desc, (vop_t *) spec_ebadf },
|
||||
{ &vop_strategy_desc, (vop_t *) spec_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) spec_symlink },
|
||||
{ &vop_truncate_desc, (vop_t *) spec_truncate },
|
||||
{ &vop_unlock_desc, (vop_t *) spec_unlock },
|
||||
{ &vop_update_desc, (vop_t *) spec_update },
|
||||
{ &vop_valloc_desc, (vop_t *) spec_valloc },
|
||||
{ &vop_vfree_desc, (vop_t *) spec_vfree },
|
||||
{ &vop_symlink_desc, (vop_t *) spec_badop },
|
||||
{ &vop_truncate_desc, (vop_t *) nullop },
|
||||
{ &vop_unlock_desc, (vop_t *) vop_nounlock },
|
||||
{ &vop_update_desc, (vop_t *) nullop },
|
||||
{ &vop_valloc_desc, (vop_t *) spec_badop },
|
||||
{ &vop_vfree_desc, (vop_t *) spec_badop },
|
||||
{ &vop_write_desc, (vop_t *) spec_write },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
@ -115,12 +132,23 @@ static struct vnodeopv_desc spec_vnodeop_opv_desc =
|
||||
|
||||
VNODEOP_SET(spec_vnodeop_opv_desc);
|
||||
|
||||
|
||||
int
|
||||
spec_vnoperate(ap)
|
||||
struct vop_generic_args /* {
|
||||
struct vnodeop_desc *a_desc;
|
||||
<other random data follows, presumably>
|
||||
} */ *ap;
|
||||
{
|
||||
return (VOCALL(spec_vnodeop_p, ap->a_desc->vdesc_offset, ap));
|
||||
}
|
||||
|
||||
static void spec_getpages_iodone __P((struct buf *bp));
|
||||
|
||||
/*
|
||||
* Trivial lookup routine that always fails.
|
||||
*/
|
||||
int
|
||||
static int
|
||||
spec_lookup(ap)
|
||||
struct vop_lookup_args /* {
|
||||
struct vnode *a_dvp;
|
||||
@ -137,7 +165,7 @@ spec_lookup(ap)
|
||||
* Open a special file.
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
spec_open(ap)
|
||||
struct vop_open_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -236,7 +264,7 @@ spec_open(ap)
|
||||
* Vnode op for read
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
spec_read(ap)
|
||||
struct vop_read_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -318,7 +346,7 @@ spec_read(ap)
|
||||
* Vnode op for write
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
spec_write(ap)
|
||||
struct vop_write_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -399,7 +427,7 @@ spec_write(ap)
|
||||
* Device ioctl operation.
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
spec_ioctl(ap)
|
||||
struct vop_ioctl_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -435,7 +463,7 @@ spec_ioctl(ap)
|
||||
}
|
||||
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
spec_poll(ap)
|
||||
struct vop_poll_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -460,7 +488,7 @@ spec_poll(ap)
|
||||
* Synch buffers associated with a block device
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
spec_fsync(ap)
|
||||
struct vop_fsync_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -510,7 +538,7 @@ spec_fsync(ap)
|
||||
return (0);
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
spec_inactive(ap)
|
||||
struct vop_inactive_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -525,7 +553,7 @@ spec_inactive(ap)
|
||||
/*
|
||||
* Just call the device strategy routine
|
||||
*/
|
||||
int
|
||||
static int
|
||||
spec_strategy(ap)
|
||||
struct vop_strategy_args /* {
|
||||
struct buf *a_bp;
|
||||
@ -539,7 +567,7 @@ spec_strategy(ap)
|
||||
/*
|
||||
* This is a noop, simply returning what one has been given.
|
||||
*/
|
||||
int
|
||||
static int
|
||||
spec_bmap(ap)
|
||||
struct vop_bmap_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -566,7 +594,7 @@ spec_bmap(ap)
|
||||
* Device close routine
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
spec_close(ap)
|
||||
struct vop_close_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -652,7 +680,7 @@ spec_close(ap)
|
||||
/*
|
||||
* Print out the contents of a special device vnode.
|
||||
*/
|
||||
int
|
||||
static int
|
||||
spec_print(ap)
|
||||
struct vop_print_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -667,7 +695,7 @@ spec_print(ap)
|
||||
/*
|
||||
* Return POSIX pathconf information applicable to special devices.
|
||||
*/
|
||||
int
|
||||
static int
|
||||
spec_pathconf(ap)
|
||||
struct vop_pathconf_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -705,7 +733,7 @@ spec_pathconf(ap)
|
||||
* Special device advisory byte-level locks.
|
||||
*/
|
||||
/* ARGSUSED */
|
||||
int
|
||||
static int
|
||||
spec_advlock(ap)
|
||||
struct vop_advlock_args /* {
|
||||
struct vnode *a_vp;
|
||||
@ -732,7 +760,7 @@ spec_ebadf()
|
||||
/*
|
||||
* Special device bad operation
|
||||
*/
|
||||
int
|
||||
static int
|
||||
spec_badop()
|
||||
{
|
||||
|
||||
@ -749,7 +777,7 @@ spec_getpages_iodone(bp)
|
||||
wakeup(bp);
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
spec_getpages(ap)
|
||||
struct vop_getpages_args *ap;
|
||||
{
|
||||
|
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)specdev.h 8.6 (Berkeley) 5/21/95
|
||||
* $Id: specdev.h,v 1.11 1997/02/22 09:40:35 peter Exp $
|
||||
* $Id: specdev.h,v 1.12 1997/09/14 02:58:03 peter Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -81,48 +81,4 @@ struct flock;
|
||||
struct buf;
|
||||
struct uio;
|
||||
|
||||
int spec_badop __P((void));
|
||||
int spec_lookup __P((struct vop_lookup_args *));
|
||||
#define spec_create ((int (*) __P((struct vop_create_args *)))spec_badop)
|
||||
#define spec_mknod ((int (*) __P((struct vop_mknod_args *)))spec_badop)
|
||||
int spec_open __P((struct vop_open_args *));
|
||||
int spec_close __P((struct vop_close_args *));
|
||||
#define spec_access ((int (*) __P((struct vop_access_args *)))spec_ebadf)
|
||||
#define spec_setattr ((int (*) __P((struct vop_setattr_args *)))spec_ebadf)
|
||||
int spec_read __P((struct vop_read_args *));
|
||||
int spec_write __P((struct vop_write_args *));
|
||||
#define spec_lease_check ((int (*) __P((struct vop_lease_args *)))nullop)
|
||||
int spec_ioctl __P((struct vop_ioctl_args *));
|
||||
int spec_poll __P((struct vop_poll_args *));
|
||||
#define spec_revoke vop_revoke
|
||||
#define spec_mmap ((int (*) __P((struct vop_mmap_args *)))spec_badop)
|
||||
int spec_fsync __P((struct vop_fsync_args *));
|
||||
#define spec_seek ((int (*) __P((struct vop_seek_args *)))spec_badop)
|
||||
#define spec_remove ((int (*) __P((struct vop_remove_args *)))spec_badop)
|
||||
#define spec_link ((int (*) __P((struct vop_link_args *)))spec_badop)
|
||||
#define spec_rename ((int (*) __P((struct vop_rename_args *)))spec_badop)
|
||||
#define spec_mkdir ((int (*) __P((struct vop_mkdir_args *)))spec_badop)
|
||||
#define spec_rmdir ((int (*) __P((struct vop_rmdir_args *)))spec_badop)
|
||||
#define spec_symlink ((int (*) __P((struct vop_symlink_args *)))spec_badop)
|
||||
#define spec_readdir ((int (*) __P((struct vop_readdir_args *)))spec_badop)
|
||||
#define spec_readlink ((int (*) __P((struct vop_readlink_args *)))spec_badop)
|
||||
#define spec_abortop ((int (*) __P((struct vop_abortop_args *)))spec_badop)
|
||||
int spec_inactive __P((struct vop_inactive_args *));
|
||||
#define spec_reclaim ((int (*) __P((struct vop_reclaim_args *)))nullop)
|
||||
#define spec_lock ((int (*) __P((struct vop_lock_args *)))vop_nolock)
|
||||
#define spec_unlock ((int (*) __P((struct vop_unlock_args *)))vop_nounlock)
|
||||
int spec_bmap __P((struct vop_bmap_args *));
|
||||
int spec_strategy __P((struct vop_strategy_args *));
|
||||
int spec_print __P((struct vop_print_args *));
|
||||
#define spec_islocked ((int(*) __P((struct vop_islocked_args *)))vop_noislocked)
|
||||
int spec_pathconf __P((struct vop_pathconf_args *));
|
||||
int spec_advlock __P((struct vop_advlock_args *));
|
||||
int spec_getpages __P((struct vop_getpages_args *));
|
||||
#define spec_blkatoff ((int (*) __P((struct vop_blkatoff_args *)))spec_badop)
|
||||
#define spec_valloc ((int (*) __P((struct vop_valloc_args *)))spec_badop)
|
||||
#define spec_reallocblks \
|
||||
((int (*) __P((struct vop_reallocblks_args *)))spec_badop)
|
||||
#define spec_vfree ((int (*) __P((struct vop_vfree_args *)))spec_badop)
|
||||
#define spec_truncate ((int (*) __P((struct vop_truncate_args *)))nullop)
|
||||
#define spec_update ((int (*) __P((struct vop_update_args *)))nullop)
|
||||
#define spec_bwrite ((int (*) __P((struct vop_bwrite_args *)))nullop)
|
||||
int spec_vnoperate __P((struct vop_generic_args *));
|
||||
|
@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)nfs_vnops.c 8.16 (Berkeley) 5/27/95
|
||||
* $Id: nfs_vnops.c,v 1.64 1997/10/15 09:21:45 phk Exp $
|
||||
* $Id: nfs_vnops.c,v 1.65 1997/10/15 10:05:10 phk Exp $
|
||||
*/
|
||||
|
||||
|
||||
@ -185,42 +185,19 @@ VNODEOP_SET(nfsv2_vnodeop_opv_desc);
|
||||
*/
|
||||
vop_t **spec_nfsv2nodeop_p;
|
||||
static struct vnodeopv_entry_desc spec_nfsv2nodeop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) spec_abortop },
|
||||
{ &vop_default_desc, (vop_t *) spec_vnoperate },
|
||||
{ &vop_access_desc, (vop_t *) nfsspec_access },
|
||||
{ &vop_advlock_desc, (vop_t *) spec_advlock },
|
||||
{ &vop_bmap_desc, (vop_t *) spec_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_close_desc, (vop_t *) nfsspec_close },
|
||||
{ &vop_create_desc, (vop_t *) spec_create },
|
||||
{ &vop_fsync_desc, (vop_t *) nfs_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) nfs_getattr },
|
||||
{ &vop_inactive_desc, (vop_t *) nfs_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) spec_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) nfs_islocked },
|
||||
{ &vop_lease_desc, (vop_t *) spec_lease_check },
|
||||
{ &vop_link_desc, (vop_t *) spec_link },
|
||||
{ &vop_lock_desc, (vop_t *) nfs_lock },
|
||||
{ &vop_lookup_desc, (vop_t *) spec_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) spec_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) spec_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) spec_mmap },
|
||||
{ &vop_open_desc, (vop_t *) spec_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) spec_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) spec_poll },
|
||||
{ &vop_print_desc, (vop_t *) nfs_print },
|
||||
{ &vop_read_desc, (vop_t *) nfsspec_read },
|
||||
{ &vop_readdir_desc, (vop_t *) spec_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) spec_readlink },
|
||||
{ &vop_reclaim_desc, (vop_t *) nfs_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) spec_remove },
|
||||
{ &vop_rename_desc, (vop_t *) spec_rename },
|
||||
{ &vop_revoke_desc, (vop_t *) spec_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) spec_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) spec_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) nfs_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) spec_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) spec_symlink },
|
||||
{ &vop_unlock_desc, (vop_t *) nfs_unlock },
|
||||
{ &vop_write_desc, (vop_t *) nfsspec_write },
|
||||
{ NULL, NULL }
|
||||
@ -231,42 +208,19 @@ VNODEOP_SET(spec_nfsv2nodeop_opv_desc);
|
||||
|
||||
vop_t **fifo_nfsv2nodeop_p;
|
||||
static struct vnodeopv_entry_desc fifo_nfsv2nodeop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) fifo_abortop },
|
||||
{ &vop_default_desc, (vop_t *) fifo_vnoperate },
|
||||
{ &vop_access_desc, (vop_t *) nfsspec_access },
|
||||
{ &vop_advlock_desc, (vop_t *) fifo_advlock },
|
||||
{ &vop_bmap_desc, (vop_t *) fifo_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_close_desc, (vop_t *) nfsfifo_close },
|
||||
{ &vop_create_desc, (vop_t *) fifo_create },
|
||||
{ &vop_fsync_desc, (vop_t *) nfs_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) nfs_getattr },
|
||||
{ &vop_inactive_desc, (vop_t *) nfs_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) fifo_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) nfs_islocked },
|
||||
{ &vop_lease_desc, (vop_t *) fifo_lease_check },
|
||||
{ &vop_link_desc, (vop_t *) fifo_link },
|
||||
{ &vop_lock_desc, (vop_t *) nfs_lock },
|
||||
{ &vop_lookup_desc, (vop_t *) fifo_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) fifo_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) fifo_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) fifo_mmap },
|
||||
{ &vop_open_desc, (vop_t *) fifo_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) fifo_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) fifo_poll },
|
||||
{ &vop_print_desc, (vop_t *) nfs_print },
|
||||
{ &vop_read_desc, (vop_t *) nfsfifo_read },
|
||||
{ &vop_readdir_desc, (vop_t *) fifo_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) fifo_readlink },
|
||||
{ &vop_reclaim_desc, (vop_t *) nfs_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) fifo_remove },
|
||||
{ &vop_rename_desc, (vop_t *) fifo_rename },
|
||||
{ &vop_revoke_desc, (vop_t *) fifo_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) fifo_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) fifo_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) nfs_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) fifo_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) fifo_symlink },
|
||||
{ &vop_unlock_desc, (vop_t *) nfs_unlock },
|
||||
{ &vop_write_desc, (vop_t *) nfsfifo_write },
|
||||
{ NULL, NULL }
|
||||
|
@ -34,7 +34,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)nfs_vnops.c 8.16 (Berkeley) 5/27/95
|
||||
* $Id: nfs_vnops.c,v 1.64 1997/10/15 09:21:45 phk Exp $
|
||||
* $Id: nfs_vnops.c,v 1.65 1997/10/15 10:05:10 phk Exp $
|
||||
*/
|
||||
|
||||
|
||||
@ -185,42 +185,19 @@ VNODEOP_SET(nfsv2_vnodeop_opv_desc);
|
||||
*/
|
||||
vop_t **spec_nfsv2nodeop_p;
|
||||
static struct vnodeopv_entry_desc spec_nfsv2nodeop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) spec_abortop },
|
||||
{ &vop_default_desc, (vop_t *) spec_vnoperate },
|
||||
{ &vop_access_desc, (vop_t *) nfsspec_access },
|
||||
{ &vop_advlock_desc, (vop_t *) spec_advlock },
|
||||
{ &vop_bmap_desc, (vop_t *) spec_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_close_desc, (vop_t *) nfsspec_close },
|
||||
{ &vop_create_desc, (vop_t *) spec_create },
|
||||
{ &vop_fsync_desc, (vop_t *) nfs_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) nfs_getattr },
|
||||
{ &vop_inactive_desc, (vop_t *) nfs_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) spec_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) nfs_islocked },
|
||||
{ &vop_lease_desc, (vop_t *) spec_lease_check },
|
||||
{ &vop_link_desc, (vop_t *) spec_link },
|
||||
{ &vop_lock_desc, (vop_t *) nfs_lock },
|
||||
{ &vop_lookup_desc, (vop_t *) spec_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) spec_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) spec_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) spec_mmap },
|
||||
{ &vop_open_desc, (vop_t *) spec_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) spec_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) spec_poll },
|
||||
{ &vop_print_desc, (vop_t *) nfs_print },
|
||||
{ &vop_read_desc, (vop_t *) nfsspec_read },
|
||||
{ &vop_readdir_desc, (vop_t *) spec_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) spec_readlink },
|
||||
{ &vop_reclaim_desc, (vop_t *) nfs_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) spec_remove },
|
||||
{ &vop_rename_desc, (vop_t *) spec_rename },
|
||||
{ &vop_revoke_desc, (vop_t *) spec_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) spec_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) spec_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) nfs_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) spec_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) spec_symlink },
|
||||
{ &vop_unlock_desc, (vop_t *) nfs_unlock },
|
||||
{ &vop_write_desc, (vop_t *) nfsspec_write },
|
||||
{ NULL, NULL }
|
||||
@ -231,42 +208,19 @@ VNODEOP_SET(spec_nfsv2nodeop_opv_desc);
|
||||
|
||||
vop_t **fifo_nfsv2nodeop_p;
|
||||
static struct vnodeopv_entry_desc fifo_nfsv2nodeop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) fifo_abortop },
|
||||
{ &vop_default_desc, (vop_t *) fifo_vnoperate },
|
||||
{ &vop_access_desc, (vop_t *) nfsspec_access },
|
||||
{ &vop_advlock_desc, (vop_t *) fifo_advlock },
|
||||
{ &vop_bmap_desc, (vop_t *) fifo_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_close_desc, (vop_t *) nfsfifo_close },
|
||||
{ &vop_create_desc, (vop_t *) fifo_create },
|
||||
{ &vop_fsync_desc, (vop_t *) nfs_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) nfs_getattr },
|
||||
{ &vop_inactive_desc, (vop_t *) nfs_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) fifo_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) nfs_islocked },
|
||||
{ &vop_lease_desc, (vop_t *) fifo_lease_check },
|
||||
{ &vop_link_desc, (vop_t *) fifo_link },
|
||||
{ &vop_lock_desc, (vop_t *) nfs_lock },
|
||||
{ &vop_lookup_desc, (vop_t *) fifo_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) fifo_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) fifo_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) fifo_mmap },
|
||||
{ &vop_open_desc, (vop_t *) fifo_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) fifo_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) fifo_poll },
|
||||
{ &vop_print_desc, (vop_t *) nfs_print },
|
||||
{ &vop_read_desc, (vop_t *) nfsfifo_read },
|
||||
{ &vop_readdir_desc, (vop_t *) fifo_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) fifo_readlink },
|
||||
{ &vop_reclaim_desc, (vop_t *) nfs_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) fifo_remove },
|
||||
{ &vop_rename_desc, (vop_t *) fifo_rename },
|
||||
{ &vop_revoke_desc, (vop_t *) fifo_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) fifo_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) fifo_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) nfs_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) fifo_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) fifo_symlink },
|
||||
{ &vop_unlock_desc, (vop_t *) nfs_unlock },
|
||||
{ &vop_write_desc, (vop_t *) nfsfifo_write },
|
||||
{ NULL, NULL }
|
||||
|
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)ffs_vnops.c 8.15 (Berkeley) 5/14/95
|
||||
* $Id: ffs_vnops.c,v 1.32 1997/10/15 09:21:56 phk Exp $
|
||||
* $Id: ffs_vnops.c,v 1.33 1997/10/15 10:05:17 phk Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
@ -72,52 +72,16 @@ static int ffs_write __P((struct vop_write_args *));
|
||||
/* Global vfs data structures for ufs. */
|
||||
vop_t **ffs_vnodeop_p;
|
||||
static struct vnodeopv_entry_desc ffs_vnodeop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) ufs_abortop },
|
||||
{ &vop_access_desc, (vop_t *) ufs_access },
|
||||
{ &vop_advlock_desc, (vop_t *) ufs_advlock },
|
||||
{ &vop_default_desc, (vop_t *) ufs_vnoperate },
|
||||
{ &vop_blkatoff_desc, (vop_t *) ffs_blkatoff },
|
||||
{ &vop_bmap_desc, (vop_t *) ufs_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_cachedlookup_desc, (vop_t *) ufs_lookup },
|
||||
{ &vop_close_desc, (vop_t *) ufs_close },
|
||||
{ &vop_create_desc, (vop_t *) ufs_create },
|
||||
{ &vop_fsync_desc, (vop_t *) ffs_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) ufs_getattr },
|
||||
{ &vop_getpages_desc, (vop_t *) ffs_getpages },
|
||||
{ &vop_inactive_desc, (vop_t *) ufs_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) ufs_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) ufs_islocked },
|
||||
{ &vop_lease_desc, (vop_t *) ufs_lease_check },
|
||||
{ &vop_link_desc, (vop_t *) ufs_link },
|
||||
{ &vop_lock_desc, (vop_t *) ufs_lock },
|
||||
{ &vop_lookup_desc, (vop_t *) vfs_cache_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) ufs_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) ufs_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) ufs_mmap },
|
||||
{ &vop_open_desc, (vop_t *) ufs_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) ufs_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) ufs_poll },
|
||||
{ &vop_print_desc, (vop_t *) ufs_print },
|
||||
{ &vop_read_desc, (vop_t *) ffs_read },
|
||||
{ &vop_readdir_desc, (vop_t *) ufs_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) ufs_readlink },
|
||||
{ &vop_reallocblks_desc, (vop_t *) ffs_reallocblks },
|
||||
{ &vop_reclaim_desc, (vop_t *) ufs_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) ufs_remove },
|
||||
{ &vop_rename_desc, (vop_t *) ufs_rename },
|
||||
{ &vop_revoke_desc, (vop_t *) ufs_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) ufs_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) ufs_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) ufs_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) ufs_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) ufs_symlink },
|
||||
{ &vop_truncate_desc, (vop_t *) ffs_truncate },
|
||||
{ &vop_unlock_desc, (vop_t *) ufs_unlock },
|
||||
{ &vop_update_desc, (vop_t *) ffs_update },
|
||||
{ &vop_valloc_desc, (vop_t *) ffs_valloc },
|
||||
{ &vop_vfree_desc, (vop_t *) ffs_vfree },
|
||||
{ &vop_whiteout_desc, (vop_t *) ufs_whiteout },
|
||||
{ &vop_write_desc, (vop_t *) ffs_write },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
@ -126,51 +90,10 @@ static struct vnodeopv_desc ffs_vnodeop_opv_desc =
|
||||
|
||||
vop_t **ffs_specop_p;
|
||||
static struct vnodeopv_entry_desc ffs_specop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) spec_abortop },
|
||||
{ &vop_access_desc, (vop_t *) ufs_access },
|
||||
{ &vop_advlock_desc, (vop_t *) spec_advlock },
|
||||
{ &vop_blkatoff_desc, (vop_t *) spec_blkatoff },
|
||||
{ &vop_bmap_desc, (vop_t *) spec_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_close_desc, (vop_t *) ufsspec_close },
|
||||
{ &vop_create_desc, (vop_t *) spec_create },
|
||||
{ &vop_default_desc, (vop_t *) ufs_vnoperatespec },
|
||||
{ &vop_fsync_desc, (vop_t *) ffs_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) ufs_getattr },
|
||||
{ &vop_getpages_desc, (vop_t *) spec_getpages },
|
||||
{ &vop_inactive_desc, (vop_t *) ufs_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) spec_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) ufs_islocked },
|
||||
{ &vop_lease_desc, (vop_t *) spec_lease_check },
|
||||
{ &vop_link_desc, (vop_t *) spec_link },
|
||||
{ &vop_lock_desc, (vop_t *) ufs_lock },
|
||||
{ &vop_lookup_desc, (vop_t *) spec_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) spec_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) spec_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) spec_mmap },
|
||||
{ &vop_open_desc, (vop_t *) spec_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) spec_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) spec_poll },
|
||||
{ &vop_print_desc, (vop_t *) ufs_print },
|
||||
{ &vop_read_desc, (vop_t *) ufsspec_read },
|
||||
{ &vop_readdir_desc, (vop_t *) spec_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) spec_readlink },
|
||||
{ &vop_reallocblks_desc, (vop_t *) spec_reallocblks },
|
||||
{ &vop_reclaim_desc, (vop_t *) ufs_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) spec_remove },
|
||||
{ &vop_rename_desc, (vop_t *) spec_rename },
|
||||
{ &vop_revoke_desc, (vop_t *) spec_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) spec_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) spec_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) ufs_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) spec_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) spec_symlink },
|
||||
{ &vop_truncate_desc, (vop_t *) spec_truncate },
|
||||
{ &vop_unlock_desc, (vop_t *) ufs_unlock },
|
||||
{ &vop_update_desc, (vop_t *) ffs_update },
|
||||
{ &vop_valloc_desc, (vop_t *) spec_valloc },
|
||||
{ &vop_vfree_desc, (vop_t *) ffs_vfree },
|
||||
{ &vop_write_desc, (vop_t *) ufsspec_write },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
static struct vnodeopv_desc ffs_specop_opv_desc =
|
||||
@ -178,50 +101,10 @@ static struct vnodeopv_desc ffs_specop_opv_desc =
|
||||
|
||||
vop_t **ffs_fifoop_p;
|
||||
static struct vnodeopv_entry_desc ffs_fifoop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) fifo_abortop },
|
||||
{ &vop_access_desc, (vop_t *) ufs_access },
|
||||
{ &vop_advlock_desc, (vop_t *) fifo_advlock },
|
||||
{ &vop_blkatoff_desc, (vop_t *) fifo_blkatoff },
|
||||
{ &vop_bmap_desc, (vop_t *) fifo_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_close_desc, (vop_t *) ufsfifo_close },
|
||||
{ &vop_create_desc, (vop_t *) fifo_create },
|
||||
{ &vop_default_desc, (vop_t *) ufs_vnoperatefifo },
|
||||
{ &vop_fsync_desc, (vop_t *) ffs_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) ufs_getattr },
|
||||
{ &vop_inactive_desc, (vop_t *) ufs_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) fifo_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) ufs_islocked },
|
||||
{ &vop_lease_desc, (vop_t *) fifo_lease_check },
|
||||
{ &vop_link_desc, (vop_t *) fifo_link },
|
||||
{ &vop_lock_desc, (vop_t *) ufs_lock },
|
||||
{ &vop_lookup_desc, (vop_t *) fifo_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) fifo_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) fifo_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) fifo_mmap },
|
||||
{ &vop_open_desc, (vop_t *) fifo_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) fifo_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) fifo_poll },
|
||||
{ &vop_print_desc, (vop_t *) ufs_print },
|
||||
{ &vop_read_desc, (vop_t *) ufsfifo_read },
|
||||
{ &vop_readdir_desc, (vop_t *) fifo_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) fifo_readlink },
|
||||
{ &vop_reallocblks_desc, (vop_t *) fifo_reallocblks },
|
||||
{ &vop_reclaim_desc, (vop_t *) ufs_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) fifo_remove },
|
||||
{ &vop_rename_desc, (vop_t *) fifo_rename },
|
||||
{ &vop_revoke_desc, (vop_t *) fifo_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) fifo_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) fifo_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) ufs_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) fifo_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) fifo_symlink },
|
||||
{ &vop_truncate_desc, (vop_t *) fifo_truncate },
|
||||
{ &vop_unlock_desc, (vop_t *) ufs_unlock },
|
||||
{ &vop_update_desc, (vop_t *) ffs_update },
|
||||
{ &vop_valloc_desc, (vop_t *) fifo_valloc },
|
||||
{ &vop_vfree_desc, (vop_t *) ffs_vfree },
|
||||
{ &vop_write_desc, (vop_t *) ufsfifo_write },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
static struct vnodeopv_desc ffs_fifoop_opv_desc =
|
||||
|
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)lfs_vnops.c 8.13 (Berkeley) 6/10/95
|
||||
* $Id: lfs_vnops.c,v 1.25 1997/10/15 09:21:59 phk Exp $
|
||||
* $Id: lfs_vnops.c,v 1.26 1997/10/15 10:05:23 phk Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
@ -72,50 +72,20 @@ static int lfs_write __P((struct vop_write_args *));
|
||||
/* Global vfs data structures for lfs. */
|
||||
vop_t **lfs_vnodeop_p;
|
||||
static struct vnodeopv_entry_desc lfs_vnodeop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) ufs_abortop },
|
||||
{ &vop_access_desc, (vop_t *) ufs_access },
|
||||
{ &vop_advlock_desc, (vop_t *) ufs_advlock },
|
||||
{ &vop_default_desc, (vop_t *) ufs_vnoperate },
|
||||
|
||||
{ &vop_blkatoff_desc, (vop_t *) lfs_blkatoff },
|
||||
{ &vop_bmap_desc, (vop_t *) ufs_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) lfs_bwrite },
|
||||
{ &vop_close_desc, (vop_t *) lfs_close },
|
||||
{ &vop_create_desc, (vop_t *) ufs_create },
|
||||
{ &vop_fsync_desc, (vop_t *) lfs_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) lfs_getattr },
|
||||
{ &vop_inactive_desc, (vop_t *) ufs_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) ufs_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) ufs_islocked },
|
||||
{ &vop_lease_desc, (vop_t *) ufs_lease_check },
|
||||
{ &vop_link_desc, (vop_t *) ufs_link },
|
||||
{ &vop_lock_desc, (vop_t *) ufs_lock },
|
||||
{ &vop_lookup_desc, (vop_t *) ufs_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) ufs_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) ufs_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) ufs_mmap },
|
||||
{ &vop_open_desc, (vop_t *) ufs_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) ufs_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) ufs_poll },
|
||||
{ &vop_print_desc, (vop_t *) ufs_print },
|
||||
{ &vop_read_desc, (vop_t *) lfs_read },
|
||||
{ &vop_readdir_desc, (vop_t *) ufs_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) ufs_readlink },
|
||||
{ &vop_reclaim_desc, (vop_t *) ufs_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) ufs_remove },
|
||||
{ &vop_rename_desc, (vop_t *) ufs_rename },
|
||||
{ &vop_revoke_desc, (vop_t *) ufs_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) ufs_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) ufs_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) ufs_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) ufs_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) ufs_symlink },
|
||||
{ &vop_truncate_desc, (vop_t *) lfs_truncate },
|
||||
{ &vop_unlock_desc, (vop_t *) ufs_unlock },
|
||||
{ &vop_update_desc, (vop_t *) lfs_update },
|
||||
{ &vop_valloc_desc, (vop_t *) lfs_valloc },
|
||||
{ &vop_vfree_desc, (vop_t *) lfs_vfree },
|
||||
{ &vop_whiteout_desc, (vop_t *) ufs_whiteout },
|
||||
{ &vop_write_desc, (vop_t *) lfs_write },
|
||||
{ &vop_lookup_desc, (vop_t *) ufs_lookup },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
static struct vnodeopv_desc lfs_vnodeop_opv_desc =
|
||||
@ -123,49 +93,11 @@ static struct vnodeopv_desc lfs_vnodeop_opv_desc =
|
||||
|
||||
vop_t **lfs_specop_p;
|
||||
static struct vnodeopv_entry_desc lfs_specop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) spec_abortop },
|
||||
{ &vop_access_desc, (vop_t *) ufs_access },
|
||||
{ &vop_advlock_desc, (vop_t *) spec_advlock },
|
||||
{ &vop_blkatoff_desc, (vop_t *) spec_blkatoff },
|
||||
{ &vop_bmap_desc, (vop_t *) spec_bmap },
|
||||
{ &vop_default_desc, (vop_t *) ufs_vnoperatespec },
|
||||
{ &vop_bwrite_desc, (vop_t *) lfs_bwrite },
|
||||
{ &vop_close_desc, (vop_t *) ufsspec_close },
|
||||
{ &vop_create_desc, (vop_t *) spec_create },
|
||||
{ &vop_fsync_desc, (vop_t *) spec_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) lfs_getattr },
|
||||
{ &vop_inactive_desc, (vop_t *) ufs_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) spec_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) ufs_islocked },
|
||||
{ &vop_lease_desc, (vop_t *) spec_lease_check },
|
||||
{ &vop_link_desc, (vop_t *) spec_link },
|
||||
{ &vop_lock_desc, (vop_t *) ufs_lock },
|
||||
{ &vop_lookup_desc, (vop_t *) spec_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) spec_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) spec_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) spec_mmap },
|
||||
{ &vop_open_desc, (vop_t *) spec_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) spec_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) spec_poll },
|
||||
{ &vop_print_desc, (vop_t *) ufs_print },
|
||||
{ &vop_read_desc, (vop_t *) ufsspec_read },
|
||||
{ &vop_readdir_desc, (vop_t *) spec_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) spec_readlink },
|
||||
{ &vop_reclaim_desc, (vop_t *) ufs_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) spec_remove },
|
||||
{ &vop_rename_desc, (vop_t *) spec_rename },
|
||||
{ &vop_revoke_desc, (vop_t *) spec_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) spec_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) spec_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) ufs_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) spec_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) spec_symlink },
|
||||
{ &vop_truncate_desc, (vop_t *) spec_truncate },
|
||||
{ &vop_unlock_desc, (vop_t *) ufs_unlock },
|
||||
{ &vop_update_desc, (vop_t *) lfs_update },
|
||||
{ &vop_valloc_desc, (vop_t *) spec_valloc },
|
||||
{ &vop_vfree_desc, (vop_t *) lfs_vfree },
|
||||
{ &vop_write_desc, (vop_t *) ufsspec_write },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
static struct vnodeopv_desc lfs_specop_opv_desc =
|
||||
@ -173,49 +105,11 @@ static struct vnodeopv_desc lfs_specop_opv_desc =
|
||||
|
||||
vop_t **lfs_fifoop_p;
|
||||
static struct vnodeopv_entry_desc lfs_fifoop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
{ &vop_abortop_desc, (vop_t *) fifo_abortop },
|
||||
{ &vop_access_desc, (vop_t *) ufs_access },
|
||||
{ &vop_advlock_desc, (vop_t *) fifo_advlock },
|
||||
{ &vop_blkatoff_desc, (vop_t *) fifo_blkatoff },
|
||||
{ &vop_bmap_desc, (vop_t *) fifo_bmap },
|
||||
{ &vop_default_desc, (vop_t *) ufs_vnoperatefifo },
|
||||
{ &vop_bwrite_desc, (vop_t *) lfs_bwrite },
|
||||
{ &vop_close_desc, (vop_t *) ufsfifo_close },
|
||||
{ &vop_create_desc, (vop_t *) fifo_create },
|
||||
{ &vop_fsync_desc, (vop_t *) fifo_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) lfs_getattr },
|
||||
{ &vop_inactive_desc, (vop_t *) ufs_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) fifo_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) ufs_islocked },
|
||||
{ &vop_lease_desc, (vop_t *) fifo_lease_check },
|
||||
{ &vop_link_desc, (vop_t *) fifo_link },
|
||||
{ &vop_lock_desc, (vop_t *) ufs_lock },
|
||||
{ &vop_lookup_desc, (vop_t *) fifo_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) fifo_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) fifo_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) fifo_mmap },
|
||||
{ &vop_open_desc, (vop_t *) fifo_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) fifo_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) fifo_poll },
|
||||
{ &vop_print_desc, (vop_t *) ufs_print },
|
||||
{ &vop_read_desc, (vop_t *) ufsfifo_read },
|
||||
{ &vop_readdir_desc, (vop_t *) fifo_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) fifo_readlink },
|
||||
{ &vop_reclaim_desc, (vop_t *) ufs_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) fifo_remove },
|
||||
{ &vop_rename_desc, (vop_t *) fifo_rename },
|
||||
{ &vop_revoke_desc, (vop_t *) fifo_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) fifo_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) fifo_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) ufs_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) fifo_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) fifo_symlink },
|
||||
{ &vop_truncate_desc, (vop_t *) fifo_truncate },
|
||||
{ &vop_unlock_desc, (vop_t *) ufs_unlock },
|
||||
{ &vop_update_desc, (vop_t *) lfs_update },
|
||||
{ &vop_valloc_desc, (vop_t *) fifo_valloc },
|
||||
{ &vop_vfree_desc, (vop_t *) lfs_vfree },
|
||||
{ &vop_write_desc, (vop_t *) ufsfifo_write },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
static struct vnodeopv_desc lfs_fifoop_opv_desc =
|
||||
|
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)mfs_vnops.c 8.11 (Berkeley) 5/22/95
|
||||
* $Id: mfs_vnops.c,v 1.22 1997/10/15 09:22:02 phk Exp $
|
||||
* $Id: mfs_vnops.c,v 1.23 1997/10/15 10:05:29 phk Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
@ -55,6 +55,7 @@
|
||||
static int mfs_badop __P((void));
|
||||
static int mfs_bmap __P((struct vop_bmap_args *));
|
||||
static int mfs_close __P((struct vop_close_args *));
|
||||
static int mfs_fsync __P((struct vop_fsync_args *));
|
||||
static int mfs_ioctl __P((struct vop_ioctl_args *));
|
||||
static int mfs_inactive __P((struct vop_inactive_args *)); /* XXX */
|
||||
static int mfs_open __P((struct vop_open_args *));
|
||||
@ -74,7 +75,7 @@ static struct vnodeopv_entry_desc mfs_vnodeop_entries[] = {
|
||||
{ &vop_bwrite_desc, (vop_t *) mfs_bwrite },
|
||||
{ &vop_close_desc, (vop_t *) mfs_close },
|
||||
{ &vop_create_desc, (vop_t *) mfs_create },
|
||||
{ &vop_fsync_desc, (vop_t *) spec_fsync },
|
||||
{ &vop_fsync_desc, (vop_t *) mfs_fsync },
|
||||
{ &vop_getattr_desc, (vop_t *) mfs_getattr },
|
||||
{ &vop_inactive_desc, (vop_t *) mfs_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) mfs_ioctl },
|
||||
@ -139,6 +140,14 @@ mfs_open(ap)
|
||||
return (0);
|
||||
}
|
||||
|
||||
static int
|
||||
mfs_fsync(ap)
|
||||
struct vop_fsync_args *ap;
|
||||
{
|
||||
|
||||
return (VOCALL(spec_vnodeop_p, VOFFSET(vop_fsync), ap));
|
||||
}
|
||||
|
||||
/*
|
||||
* Ioctl operation.
|
||||
*/
|
||||
|
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)ufs_extern.h 8.10 (Berkeley) 5/14/95
|
||||
* $Id: ufs_extern.h,v 1.17 1997/09/14 02:58:10 peter Exp $
|
||||
* $Id: ufs_extern.h,v 1.18 1997/10/10 18:18:12 phk Exp $
|
||||
*/
|
||||
|
||||
#ifndef _UFS_UFS_EXTERN_H_
|
||||
@ -52,6 +52,10 @@ struct vattr;
|
||||
struct vfsconf;
|
||||
struct vnode;
|
||||
|
||||
int ufs_vnoperate __P((struct vop_generic_args *));
|
||||
int ufs_vnoperatefifo __P((struct vop_generic_args *));
|
||||
int ufs_vnoperatespec __P((struct vop_generic_args *));
|
||||
|
||||
int ufs_abortop __P((struct vop_abortop_args *));
|
||||
int ufs_access __P((struct vop_access_args *));
|
||||
int ufs_advlock __P((struct vop_advlock_args *));
|
||||
|
@ -36,7 +36,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)ufs_vnops.c 8.27 (Berkeley) 5/27/95
|
||||
* $Id: ufs_vnops.c,v 1.57 1997/09/14 02:58:12 peter Exp $
|
||||
* $Id: ufs_vnops.c,v 1.58 1997/09/21 04:24:14 dyson Exp $
|
||||
*/
|
||||
|
||||
#include "opt_quota.h"
|
||||
@ -68,6 +68,7 @@
|
||||
static int ufs_chmod __P((struct vnode *, int, struct ucred *, struct proc *));
|
||||
static int ufs_chown
|
||||
__P((struct vnode *, uid_t, gid_t, struct ucred *, struct proc *));
|
||||
static int ufs_missingop __P((struct vop_generic_args *ap));
|
||||
|
||||
#ifdef EXT2FS
|
||||
#include <gnu/ext2fs/ext2_extern.h>
|
||||
@ -2158,3 +2159,155 @@ ufs_makeinode(mode, dvp, vpp, cnp)
|
||||
vput(tvp);
|
||||
return (error);
|
||||
}
|
||||
|
||||
static int
|
||||
ufs_missingop(ap)
|
||||
struct vop_generic_args *ap;
|
||||
{
|
||||
printf("Missing VOP function (%s) in UFS child",
|
||||
ap->a_desc->vdesc_name);
|
||||
panic("Missing VOP function in UFS");
|
||||
return(EOPNOTSUPP);
|
||||
}
|
||||
|
||||
/* Global vfs data structures for ufs. */
|
||||
vop_t **ufs_vnodeop_p;
|
||||
static struct vnodeopv_entry_desc ufs_vnodeop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) vn_default_error },
|
||||
|
||||
{ &vop_blkatoff_desc, (vop_t *) ufs_missingop },
|
||||
{ &vop_fsync_desc, (vop_t *) ufs_missingop },
|
||||
{ &vop_getpages_desc, (vop_t *) ufs_missingop },
|
||||
{ &vop_read_desc, (vop_t *) ufs_missingop },
|
||||
{ &vop_reallocblks_desc, (vop_t *) ufs_missingop },
|
||||
{ &vop_truncate_desc, (vop_t *) ufs_missingop },
|
||||
{ &vop_update_desc, (vop_t *) ufs_missingop },
|
||||
{ &vop_valloc_desc, (vop_t *) ufs_missingop },
|
||||
{ &vop_vfree_desc, (vop_t *) ufs_missingop },
|
||||
{ &vop_write_desc, (vop_t *) ufs_missingop },
|
||||
|
||||
{ &vop_abortop_desc, (vop_t *) ufs_abortop },
|
||||
{ &vop_access_desc, (vop_t *) ufs_access },
|
||||
{ &vop_advlock_desc, (vop_t *) ufs_advlock },
|
||||
{ &vop_bmap_desc, (vop_t *) ufs_bmap },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_cachedlookup_desc, (vop_t *) ufs_lookup },
|
||||
{ &vop_close_desc, (vop_t *) ufs_close },
|
||||
{ &vop_create_desc, (vop_t *) ufs_create },
|
||||
{ &vop_getattr_desc, (vop_t *) ufs_getattr },
|
||||
{ &vop_inactive_desc, (vop_t *) ufs_inactive },
|
||||
{ &vop_ioctl_desc, (vop_t *) ufs_ioctl },
|
||||
{ &vop_islocked_desc, (vop_t *) ufs_islocked },
|
||||
{ &vop_lease_desc, (vop_t *) ufs_lease_check },
|
||||
{ &vop_link_desc, (vop_t *) ufs_link },
|
||||
{ &vop_lock_desc, (vop_t *) ufs_lock },
|
||||
{ &vop_lookup_desc, (vop_t *) vfs_cache_lookup },
|
||||
{ &vop_mkdir_desc, (vop_t *) ufs_mkdir },
|
||||
{ &vop_mknod_desc, (vop_t *) ufs_mknod },
|
||||
{ &vop_mmap_desc, (vop_t *) ufs_mmap },
|
||||
{ &vop_open_desc, (vop_t *) ufs_open },
|
||||
{ &vop_pathconf_desc, (vop_t *) ufs_pathconf },
|
||||
{ &vop_poll_desc, (vop_t *) ufs_poll },
|
||||
{ &vop_print_desc, (vop_t *) ufs_print },
|
||||
{ &vop_readdir_desc, (vop_t *) ufs_readdir },
|
||||
{ &vop_readlink_desc, (vop_t *) ufs_readlink },
|
||||
{ &vop_reclaim_desc, (vop_t *) ufs_reclaim },
|
||||
{ &vop_remove_desc, (vop_t *) ufs_remove },
|
||||
{ &vop_rename_desc, (vop_t *) ufs_rename },
|
||||
{ &vop_revoke_desc, (vop_t *) ufs_revoke },
|
||||
{ &vop_rmdir_desc, (vop_t *) ufs_rmdir },
|
||||
{ &vop_seek_desc, (vop_t *) ufs_seek },
|
||||
{ &vop_setattr_desc, (vop_t *) ufs_setattr },
|
||||
{ &vop_strategy_desc, (vop_t *) ufs_strategy },
|
||||
{ &vop_symlink_desc, (vop_t *) ufs_symlink },
|
||||
{ &vop_unlock_desc, (vop_t *) ufs_unlock },
|
||||
{ &vop_whiteout_desc, (vop_t *) ufs_whiteout },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
static struct vnodeopv_desc ufs_vnodeop_opv_desc =
|
||||
{ &ufs_vnodeop_p, ufs_vnodeop_entries };
|
||||
|
||||
vop_t **ufs_specop_p;
|
||||
static struct vnodeopv_entry_desc ufs_specop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) spec_vnoperate },
|
||||
|
||||
{ &vop_fsync_desc, (vop_t *) ufs_missingop },
|
||||
{ &vop_update_desc, (vop_t *) ufs_missingop },
|
||||
{ &vop_vfree_desc, (vop_t *) ufs_missingop },
|
||||
|
||||
{ &vop_access_desc, (vop_t *) ufs_access },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_close_desc, (vop_t *) ufsspec_close },
|
||||
{ &vop_getattr_desc, (vop_t *) ufs_getattr },
|
||||
{ &vop_inactive_desc, (vop_t *) ufs_inactive },
|
||||
{ &vop_islocked_desc, (vop_t *) ufs_islocked },
|
||||
{ &vop_lock_desc, (vop_t *) ufs_lock },
|
||||
{ &vop_print_desc, (vop_t *) ufs_print },
|
||||
{ &vop_read_desc, (vop_t *) ufsspec_read },
|
||||
{ &vop_reclaim_desc, (vop_t *) ufs_reclaim },
|
||||
{ &vop_setattr_desc, (vop_t *) ufs_setattr },
|
||||
{ &vop_unlock_desc, (vop_t *) ufs_unlock },
|
||||
{ &vop_write_desc, (vop_t *) ufsspec_write },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
static struct vnodeopv_desc ufs_specop_opv_desc =
|
||||
{ &ufs_specop_p, ufs_specop_entries };
|
||||
|
||||
vop_t **ufs_fifoop_p;
|
||||
static struct vnodeopv_entry_desc ufs_fifoop_entries[] = {
|
||||
{ &vop_default_desc, (vop_t *) fifo_vnoperate },
|
||||
|
||||
{ &vop_fsync_desc, (vop_t *) ufs_missingop },
|
||||
{ &vop_update_desc, (vop_t *) ufs_missingop },
|
||||
{ &vop_vfree_desc, (vop_t *) ufs_missingop },
|
||||
|
||||
{ &vop_access_desc, (vop_t *) ufs_access },
|
||||
{ &vop_bwrite_desc, (vop_t *) vn_bwrite },
|
||||
{ &vop_close_desc, (vop_t *) ufsfifo_close },
|
||||
{ &vop_getattr_desc, (vop_t *) ufs_getattr },
|
||||
{ &vop_inactive_desc, (vop_t *) ufs_inactive },
|
||||
{ &vop_islocked_desc, (vop_t *) ufs_islocked },
|
||||
{ &vop_lock_desc, (vop_t *) ufs_lock },
|
||||
{ &vop_print_desc, (vop_t *) ufs_print },
|
||||
{ &vop_read_desc, (vop_t *) ufsfifo_read },
|
||||
{ &vop_reclaim_desc, (vop_t *) ufs_reclaim },
|
||||
{ &vop_setattr_desc, (vop_t *) ufs_setattr },
|
||||
{ &vop_unlock_desc, (vop_t *) ufs_unlock },
|
||||
{ &vop_write_desc, (vop_t *) ufsfifo_write },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
static struct vnodeopv_desc ufs_fifoop_opv_desc =
|
||||
{ &ufs_fifoop_p, ufs_fifoop_entries };
|
||||
|
||||
VNODEOP_SET(ufs_vnodeop_opv_desc);
|
||||
VNODEOP_SET(ufs_specop_opv_desc);
|
||||
VNODEOP_SET(ufs_fifoop_opv_desc);
|
||||
|
||||
int
|
||||
ufs_vnoperate(ap)
|
||||
struct vop_generic_args /* {
|
||||
struct vnodeop_desc *a_desc;
|
||||
} */ *ap;
|
||||
{
|
||||
return (VOCALL(ufs_vnodeop_p, ap->a_desc->vdesc_offset, ap));
|
||||
}
|
||||
|
||||
int
|
||||
ufs_vnoperatefifo(ap)
|
||||
struct vop_generic_args /* {
|
||||
struct vnodeop_desc *a_desc;
|
||||
} */ *ap;
|
||||
{
|
||||
return (VOCALL(ufs_fifoop_p, ap->a_desc->vdesc_offset, ap));
|
||||
}
|
||||
|
||||
int
|
||||
ufs_vnoperatespec(ap)
|
||||
struct vop_generic_args /* {
|
||||
struct vnodeop_desc *a_desc;
|
||||
} */ *ap;
|
||||
{
|
||||
return (VOCALL(ufs_specop_p, ap->a_desc->vdesc_offset, ap));
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user