-int cluster_read __P((struct vnode *, struct uio *, off_t, int, int));
-int advisory_read __P((struct vnode *, off_t, off_t, int, int));
-int cluster_write __P((struct vnode *, struct uio*, off_t, off_t,
- off_t, off_t, int, int));
-int cluster_push __P((struct vnode *));
-int cluster_release __P((struct vnode *));
-int cluster_pageout __P((struct vnode *, upl_t, vm_offset_t, off_t, int,
- off_t, int, int));
-int cluster_pagein __P((struct vnode *, upl_t, vm_offset_t, off_t, int,
- off_t, int, int));
-int cluster_bp __P((struct buf *));
-int cluster_copy_upl_data __P((struct uio *, upl_t, int, int));
-int cluster_copy_ubc_data __P((struct vnode *, struct uio *, int *, int));
+int advisory_read(vnode_t, off_t, off_t, int);
+int advisory_read_ext(vnode_t, off_t, off_t, int, int (*)(buf_t, void *), void *, int);
+
+int cluster_read(vnode_t, struct uio *, off_t, int);
+int cluster_read_ext(vnode_t, struct uio *, off_t, int, int (*)(buf_t, void *), void *);
+
+int cluster_write(vnode_t, struct uio *, off_t, off_t, off_t, off_t, int);
+int cluster_write_ext(vnode_t, struct uio *, off_t, off_t, off_t, off_t, int, int (*)(buf_t, void *), void *);
+
+int cluster_pageout(vnode_t, upl_t, upl_offset_t, off_t, int, off_t, int);
+int cluster_pageout_ext(vnode_t, upl_t, upl_offset_t, off_t, int, off_t, int, int (*)(buf_t, void *), void *);
+
+int cluster_pagein(vnode_t, upl_t, upl_offset_t, off_t, int, off_t, int);
+int cluster_pagein_ext(vnode_t, upl_t, upl_offset_t, off_t, int, off_t, int, int (*)(buf_t, void *), void *);
+
+int cluster_push(vnode_t, int);
+int cluster_push_ext(vnode_t, int, int (*)(buf_t, void *), void *);
+int cluster_push_err(vnode_t, int, int (*)(buf_t, void *), void *, int *);
+
+int cluster_bp(buf_t);
+int cluster_bp_ext(buf_t, int (*)(buf_t, void *), void *);
+
+void cluster_zero(upl_t, upl_offset_t, int, buf_t);
+
+int cluster_copy_upl_data(uio_t, upl_t, int, int *);
+int cluster_copy_ubc_data(vnode_t, uio_t, int *, int);
+
+typedef struct cl_direct_read_lock cl_direct_read_lock_t;
+cl_direct_read_lock_t *cluster_lock_direct_read(vnode_t vp, lck_rw_type_t exclusive);
+void cluster_unlock_direct_read(cl_direct_read_lock_t *lck);