+/* tags a volume as not supporting extended readdir for NFS exports */
+#ifdef BSD_KERNEL_PRIVATE
+void mount_set_noreaddirext (mount_t);
+#endif
+
+/* Private NFS spi */
+#define KERNEL_MOUNT_NOAUTH 0x01 /* Don't check the UID of the directory we are mounting on */
+#define KERNEL_MOUNT_PERMIT_UNMOUNT 0x02 /* Allow (non-forced) unmounts by users other the one who mounted the volume */
+#if NFSCLIENT || DEVFS || ROUTEFS
+/*
+ * NOTE: kernel_mount() does not force MNT_NOSUID, MNT_NOEXEC, or MNT_NODEC for non-privileged
+ * mounting credentials, as the mount(2) system call does.
+ */
+int kernel_mount(char *, vnode_t, vnode_t, const char *, void *, size_t, int, uint32_t, vfs_context_t);
+boolean_t vfs_iskernelmount(mount_t);
+#endif
+
+/* throttled I/O api */
+
+/* returned by throttle_io_will_be_throttled */
+#define THROTTLE_DISENGAGED 0
+#define THROTTLE_ENGAGED 1
+#define THROTTLE_NOW 2
+
+int throttle_get_io_policy(struct uthread **ut);
+int throttle_get_passive_io_policy(struct uthread **ut);
+int throttle_io_will_be_throttled(int lowpri_window_msecs, mount_t mp);
+void *throttle_info_update_by_mount(mount_t mp);
+void rethrottle_thread(uthread_t ut);
+void throttle_info_reset_window(uthread_t ut);
+
+
+/* throttled I/O helper function */
+/* convert the lowest bit to a device index */
+extern int num_trailing_0(uint64_t n);
+
+/* sync lock */
+extern lck_mtx_t * sync_mtx_lck;
+
+extern int sync_timeout;
+