v_op 66 include/sys/vnode.h struct vnops *v_op; /* vnode operations */ v_op 146 include/sys/vnode.h #define VOP_OPEN(VP, F) ((VP)->v_op->vop_open)(VP, F) v_op 147 include/sys/vnode.h #define VOP_CLOSE(VP, FP) ((VP)->v_op->vop_close)(VP, FP) v_op 148 include/sys/vnode.h #define VOP_READ(VP, FP, B, S, C) ((VP)->v_op->vop_read)(VP, FP, B, S, C) v_op 149 include/sys/vnode.h #define VOP_WRITE(VP, FP, B, S, C) ((VP)->v_op->vop_write)(VP, FP, B, S, C) v_op 150 include/sys/vnode.h #define VOP_SEEK(VP, FP, OLD, NEW) ((VP)->v_op->vop_seek)(VP, FP, OLD, NEW) v_op 151 include/sys/vnode.h #define VOP_IOCTL(VP, FP, C, A) ((VP)->v_op->vop_ioctl)(VP, FP, C, A) v_op 152 include/sys/vnode.h #define VOP_FSYNC(VP, FP) ((VP)->v_op->vop_fsync)(VP, FP) v_op 153 include/sys/vnode.h #define VOP_READDIR(VP, FP, DIR) ((VP)->v_op->vop_readdir)(VP, FP, DIR) v_op 154 include/sys/vnode.h #define VOP_LOOKUP(DVP, N, VP) ((DVP)->v_op->vop_lookup)(DVP, N, VP) v_op 155 include/sys/vnode.h #define VOP_CREATE(DVP, N, M) ((DVP)->v_op->vop_create)(DVP, N, M) v_op 156 include/sys/vnode.h #define VOP_REMOVE(DVP, VP, N) ((DVP)->v_op->vop_remove)(DVP, VP, N) v_op 158 include/sys/vnode.h ((DVP1)->v_op->vop_rename)(DVP1, VP1, N1, DVP2, VP2, N2) v_op 159 include/sys/vnode.h #define VOP_MKDIR(DVP, N, M) ((DVP)->v_op->vop_mkdir)(DVP, N, M) v_op 160 include/sys/vnode.h #define VOP_RMDIR(DVP, VP, N) ((DVP)->v_op->vop_rmdir)(DVP, VP, N) v_op 161 include/sys/vnode.h #define VOP_GETATTR(VP, VAP) ((VP)->v_op->vop_getattr)(VP, VAP) v_op 162 include/sys/vnode.h #define VOP_SETATTR(VP, VAP) ((VP)->v_op->vop_setattr)(VP, VAP) v_op 163 include/sys/vnode.h #define VOP_INACTIVE(VP) ((VP)->v_op->vop_inactive)(VP) v_op 164 include/sys/vnode.h #define VOP_TRUNCATE(VP, N) ((VP)->v_op->vop_truncate)(VP, N) v_op 180 usr/server/fs/vfs/vfs_vnode.c vp->v_op = mp->m_op->vfs_vnops;