-int fo_read(struct fileproc *fp, struct uio *uio,
- struct ucred *cred, int flags, struct proc *p);
-int fo_write(struct fileproc *fp, struct uio *uio,
- struct ucred *cred, int flags, struct proc *p);
-int fo_ioctl(struct fileproc *fp, u_long com, caddr_t data,
- struct proc *p);
-int fo_select(struct fileproc *fp, int which, void *wql,
- struct proc *p);
-int fo_close(struct fileglob *fg, struct proc *p);
-int fo_kqfilter(struct fileproc *fp, struct knote *kn,
- struct proc *p);
+
+/* wrappers for fp->f_ops->fo_... */
+int fo_read(struct fileproc *fp, struct uio *uio, int flags, vfs_context_t ctx);
+int fo_write(struct fileproc *fp, struct uio *uio, int flags,
+ vfs_context_t ctx);
+int fo_ioctl(struct fileproc *fp, u_long com, caddr_t data, vfs_context_t ctx);
+int fo_select(struct fileproc *fp, int which, void *wql, vfs_context_t ctx);
+int fo_close(struct fileglob *fg, vfs_context_t ctx);
+int fo_drain(struct fileproc *fp, vfs_context_t ctx);
+int fo_kqfilter(struct fileproc *fp, struct knote *kn, struct kevent_qos_s *kev);
+
+/* Functions to use for unsupported fileops */
+int fo_no_read(struct fileproc *fp, struct uio *uio, int flags, vfs_context_t ctx);
+int fo_no_write(struct fileproc *fp, struct uio *uio, int flags,
+ vfs_context_t ctx);
+int fo_no_ioctl(struct fileproc *fp, u_long com, caddr_t data, vfs_context_t ctx);
+int fo_no_select(struct fileproc *fp, int which, void *wql, vfs_context_t ctx);
+int fo_no_drain(struct fileproc *fp, vfs_context_t ctx);
+int fo_no_kqfilter(struct fileproc *, struct knote *, struct kevent_qos_s *kev);
+