Deleted Added
sdiff udiff text old ( 29888 ) new ( 30431 )
full compact
1/*-
2 * Copyright (c) 1994
3 * The Regents of the University of California. All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley
6 * by Pace Willisson (pace@blitz.com). The Rock Ridge Extension
7 * Support code is derived from software contributed to Berkeley
8 * by Atsushi Murai (amurai@spec.co.jp).

--- 22 unchanged lines hidden (view full) ---

31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36 * SUCH DAMAGE.
37 *
38 * @(#)cd9660_vnops.c 8.19 (Berkeley) 5/27/95
39 * $Id: cd9660_vnops.c,v 1.40 1997/09/27 13:38:51 kato Exp $
40 */
41
42#include <sys/param.h>
43#include <sys/systm.h>
44#include <sys/namei.h>
45#include <sys/kernel.h>
46#include <sys/stat.h>
47#include <sys/sysctl.h>

--- 942 unchanged lines hidden (view full) ---

990#define cd9660_bwrite \
991 ((int (*) __P((struct vop_bwrite_args *)))eopnotsupp)
992
993/*
994 * Global vfs data structures for cd9660
995 */
996vop_t **cd9660_vnodeop_p;
997struct vnodeopv_entry_desc cd9660_vnodeop_entries[] = {
998 { &vop_default_desc, (vop_t *) vn_default_error },
999 { &vop_abortop_desc, (vop_t *) cd9660_abortop },
1000 { &vop_access_desc, (vop_t *) cd9660_access },
1001 { &vop_advlock_desc, (vop_t *) cd9660_advlock },
1002 { &vop_blkatoff_desc, (vop_t *) cd9660_blkatoff },
1003 { &vop_bmap_desc, (vop_t *) cd9660_bmap },
1004 { &vop_bwrite_desc, (vop_t *) vn_bwrite },
1005 { &vop_cachedlookup_desc, (vop_t *) cd9660_lookup },
1006 { &vop_close_desc, (vop_t *) cd9660_close },
1007 { &vop_create_desc, (vop_t *) cd9660_create },
1008 { &vop_fsync_desc, (vop_t *) cd9660_fsync },
1009 { &vop_getattr_desc, (vop_t *) cd9660_getattr },
1010 { &vop_inactive_desc, (vop_t *) cd9660_inactive },
1011 { &vop_ioctl_desc, (vop_t *) cd9660_ioctl },
1012 { &vop_islocked_desc, (vop_t *) cd9660_islocked },
1013 { &vop_lease_desc, (vop_t *) cd9660_lease_check },
1014 { &vop_link_desc, (vop_t *) cd9660_link },
1015 { &vop_lock_desc, (vop_t *) cd9660_lock },
1016 { &vop_lookup_desc, (vop_t *) vfs_cache_lookup },
1017 { &vop_mkdir_desc, (vop_t *) cd9660_mkdir },
1018 { &vop_mknod_desc, (vop_t *) cd9660_mknod },
1019 { &vop_mmap_desc, (vop_t *) cd9660_mmap },
1020 { &vop_open_desc, (vop_t *) cd9660_open },
1021 { &vop_pathconf_desc, (vop_t *) cd9660_pathconf },
1022 { &vop_poll_desc, (vop_t *) cd9660_poll },
1023 { &vop_print_desc, (vop_t *) cd9660_print },
1024 { &vop_read_desc, (vop_t *) cd9660_read },
1025 { &vop_readdir_desc, (vop_t *) cd9660_readdir },
1026 { &vop_readlink_desc, (vop_t *) cd9660_readlink },
1027 { &vop_reclaim_desc, (vop_t *) cd9660_reclaim },
1028 { &vop_remove_desc, (vop_t *) cd9660_remove },
1029 { &vop_rename_desc, (vop_t *) cd9660_rename },
1030 { &vop_revoke_desc, (vop_t *) cd9660_revoke },
1031 { &vop_rmdir_desc, (vop_t *) cd9660_rmdir },
1032 { &vop_seek_desc, (vop_t *) cd9660_seek },
1033 { &vop_setattr_desc, (vop_t *) cd9660_setattr },
1034 { &vop_strategy_desc, (vop_t *) cd9660_strategy },
1035 { &vop_symlink_desc, (vop_t *) cd9660_symlink },
1036 { &vop_truncate_desc, (vop_t *) cd9660_truncate },
1037 { &vop_unlock_desc, (vop_t *) cd9660_unlock },
1038 { &vop_update_desc, (vop_t *) cd9660_update },
1039 { &vop_valloc_desc, (vop_t *) cd9660_valloc },
1040 { &vop_vfree_desc, (vop_t *) cd9660_vfree },
1041 { &vop_write_desc, (vop_t *) cd9660_write },
1042 { NULL, NULL }
1043};
1044static struct vnodeopv_desc cd9660_vnodeop_opv_desc =
1045 { &cd9660_vnodeop_p, cd9660_vnodeop_entries };
1046VNODEOP_SET(cd9660_vnodeop_opv_desc);
1047
1048/*
1049 * Special device vnode ops
1050 */
1051vop_t **cd9660_specop_p;
1052struct vnodeopv_entry_desc cd9660_specop_entries[] = {
1053 { &vop_default_desc, (vop_t *) vn_default_error },
1054 { &vop_abortop_desc, (vop_t *) spec_abortop },
1055 { &vop_access_desc, (vop_t *) cd9660_access },
1056 { &vop_advlock_desc, (vop_t *) spec_advlock },
1057 { &vop_blkatoff_desc, (vop_t *) spec_blkatoff },
1058 { &vop_bmap_desc, (vop_t *) spec_bmap },
1059 { &vop_bwrite_desc, (vop_t *) vn_bwrite },
1060 { &vop_close_desc, (vop_t *) spec_close },
1061 { &vop_create_desc, (vop_t *) spec_create },
1062 { &vop_fsync_desc, (vop_t *) spec_fsync },
1063 { &vop_getattr_desc, (vop_t *) cd9660_getattr },
1064 { &vop_inactive_desc, (vop_t *) cd9660_inactive },
1065 { &vop_ioctl_desc, (vop_t *) spec_ioctl },
1066 { &vop_islocked_desc, (vop_t *) cd9660_islocked },
1067 { &vop_lease_desc, (vop_t *) spec_lease_check },
1068 { &vop_link_desc, (vop_t *) spec_link },
1069 { &vop_lock_desc, (vop_t *) cd9660_lock },
1070 { &vop_lookup_desc, (vop_t *) spec_lookup },
1071 { &vop_mkdir_desc, (vop_t *) spec_mkdir },
1072 { &vop_mknod_desc, (vop_t *) spec_mknod },
1073 { &vop_mmap_desc, (vop_t *) spec_mmap },
1074 { &vop_open_desc, (vop_t *) spec_open },
1075 { &vop_pathconf_desc, (vop_t *) spec_pathconf },
1076 { &vop_poll_desc, (vop_t *) spec_poll },
1077 { &vop_print_desc, (vop_t *) cd9660_print },
1078 { &vop_read_desc, (vop_t *) spec_read },
1079 { &vop_readdir_desc, (vop_t *) spec_readdir },
1080 { &vop_readlink_desc, (vop_t *) spec_readlink },
1081 { &vop_reclaim_desc, (vop_t *) cd9660_reclaim },
1082 { &vop_remove_desc, (vop_t *) spec_remove },
1083 { &vop_rename_desc, (vop_t *) spec_rename },
1084 { &vop_revoke_desc, (vop_t *) spec_revoke },
1085 { &vop_rmdir_desc, (vop_t *) spec_rmdir },
1086 { &vop_seek_desc, (vop_t *) spec_seek },
1087 { &vop_setattr_desc, (vop_t *) cd9660_setattr },
1088 { &vop_strategy_desc, (vop_t *) spec_strategy },
1089 { &vop_symlink_desc, (vop_t *) spec_symlink },
1090 { &vop_truncate_desc, (vop_t *) spec_truncate },
1091 { &vop_unlock_desc, (vop_t *) cd9660_unlock },
1092 { &vop_update_desc, (vop_t *) cd9660_update },
1093 { &vop_valloc_desc, (vop_t *) spec_valloc },
1094 { &vop_vfree_desc, (vop_t *) spec_vfree },
1095 { &vop_write_desc, (vop_t *) spec_write },
1096 { NULL, NULL }
1097};
1098static struct vnodeopv_desc cd9660_specop_opv_desc =
1099 { &cd9660_specop_p, cd9660_specop_entries };
1100VNODEOP_SET(cd9660_specop_opv_desc);
1101
1102vop_t **cd9660_fifoop_p;
1103struct vnodeopv_entry_desc cd9660_fifoop_entries[] = {
1104 { &vop_default_desc, (vop_t *) vn_default_error },
1105 { &vop_abortop_desc, (vop_t *) fifo_abortop },
1106 { &vop_access_desc, (vop_t *) cd9660_access },
1107 { &vop_advlock_desc, (vop_t *) fifo_advlock },
1108 { &vop_blkatoff_desc, (vop_t *) fifo_blkatoff },
1109 { &vop_bmap_desc, (vop_t *) fifo_bmap },
1110 { &vop_bwrite_desc, (vop_t *) vn_bwrite },
1111 { &vop_close_desc, (vop_t *) fifo_close },
1112 { &vop_create_desc, (vop_t *) fifo_create },
1113 { &vop_fsync_desc, (vop_t *) fifo_fsync },
1114 { &vop_getattr_desc, (vop_t *) cd9660_getattr },
1115 { &vop_inactive_desc, (vop_t *) cd9660_inactive },
1116 { &vop_ioctl_desc, (vop_t *) fifo_ioctl },
1117 { &vop_islocked_desc, (vop_t *) cd9660_islocked },
1118 { &vop_lease_desc, (vop_t *) fifo_lease_check },
1119 { &vop_link_desc, (vop_t *) fifo_link },
1120 { &vop_lock_desc, (vop_t *) cd9660_lock },
1121 { &vop_lookup_desc, (vop_t *) fifo_lookup },
1122 { &vop_mkdir_desc, (vop_t *) fifo_mkdir },
1123 { &vop_mknod_desc, (vop_t *) fifo_mknod },
1124 { &vop_mmap_desc, (vop_t *) fifo_mmap },
1125 { &vop_open_desc, (vop_t *) fifo_open },
1126 { &vop_pathconf_desc, (vop_t *) fifo_pathconf },
1127 { &vop_poll_desc, (vop_t *) fifo_poll },
1128 { &vop_print_desc, (vop_t *) cd9660_print },
1129 { &vop_read_desc, (vop_t *) fifo_read },
1130 { &vop_readdir_desc, (vop_t *) fifo_readdir },
1131 { &vop_readlink_desc, (vop_t *) fifo_readlink },
1132 { &vop_reclaim_desc, (vop_t *) cd9660_reclaim },
1133 { &vop_remove_desc, (vop_t *) fifo_remove },
1134 { &vop_rename_desc, (vop_t *) fifo_rename },
1135 { &vop_revoke_desc, (vop_t *) fifo_revoke },
1136 { &vop_rmdir_desc, (vop_t *) fifo_rmdir },
1137 { &vop_seek_desc, (vop_t *) fifo_seek },
1138 { &vop_setattr_desc, (vop_t *) cd9660_setattr },
1139 { &vop_strategy_desc, (vop_t *) fifo_strategy },
1140 { &vop_symlink_desc, (vop_t *) fifo_symlink },
1141 { &vop_truncate_desc, (vop_t *) fifo_truncate },
1142 { &vop_unlock_desc, (vop_t *) cd9660_unlock },
1143 { &vop_update_desc, (vop_t *) cd9660_update },
1144 { &vop_valloc_desc, (vop_t *) fifo_valloc },
1145 { &vop_vfree_desc, (vop_t *) fifo_vfree },
1146 { &vop_write_desc, (vop_t *) fifo_write },
1147 { NULL, NULL }
1148};
1149static struct vnodeopv_desc cd9660_fifoop_opv_desc =
1150 { &cd9660_fifoop_p, cd9660_fifoop_entries };
1151
1152VNODEOP_SET(cd9660_fifoop_opv_desc);