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); |