+#ifdef KERNEL_PRIVATE
+/* If buf argument is NULL, the necessary length to allocate will be set in buflen */
+extern int proc_selfexecutableargs(uint8_t *buf, size_t *buflen);
+extern off_t proc_getexecutableoffset(proc_t p);
+extern vnode_t proc_getexecutablevnode(proc_t); /* Returned with iocount, use vnode_put() to drop */
+extern int networking_memstatus_callout(proc_t p, uint32_t);
+
+/* System call filtering for BSD syscalls, mach traps and kobject routines. */
+#define SYSCALL_MASK_UNIX 0
+#define SYSCALL_MASK_MACH 1
+#define SYSCALL_MASK_KOBJ 2
+
+#define SYSCALL_FILTER_CALLBACK_VERSION 1
+typedef int (*syscall_filter_cbfunc_t)(proc_t p, int num);
+typedef int (*kobject_filter_cbfunc_t)(proc_t p, int msgid, int idx);
+struct syscall_filter_callbacks {
+ int version;
+ const syscall_filter_cbfunc_t unix_filter_cbfunc;
+ const syscall_filter_cbfunc_t mach_filter_cbfunc;
+ const kobject_filter_cbfunc_t kobj_filter_cbfunc;
+};
+typedef struct syscall_filter_callbacks * syscall_filter_cbs_t;
+
+extern int proc_set_syscall_filter_callbacks(syscall_filter_cbs_t callback);
+extern int proc_set_syscall_filter_index(int which, int num, int index);
+extern size_t proc_get_syscall_filter_mask_size(int which);
+extern int proc_set_syscall_filter_mask(proc_t p, int which, unsigned char *maskptr, size_t masklen);
+
+extern int proc_set_filter_message_flag(proc_t p, boolean_t flag);
+extern int proc_get_filter_message_flag(proc_t p, boolean_t *flag);
+
+#endif /* KERNEL_PRIVATE */
+