+extern boolean_t task_has_assertions(task_t task);
+/* End task_policy */
+
+extern void task_set_gpu_denied(task_t task, boolean_t denied);
+extern boolean_t task_is_gpu_denied(task_t task);
+
+extern queue_head_t * task_io_user_clients(task_t task);
+extern void task_set_message_app_suspended(task_t task, boolean_t enable);
+
+extern void task_copy_fields_for_exec(task_t dst_task, task_t src_task);
+
+extern void task_copy_vmobjects(task_t task, vm_object_query_t query, size_t len, size_t *num);
+
+extern void task_set_filter_msg_flag(task_t task, boolean_t flag);
+extern boolean_t task_get_filter_msg_flag(task_t task);
+
+extern void task_transfer_mach_filter_bits(task_t new_task, task_t old_mask);
+
+#if __has_feature(ptrauth_calls)
+extern bool task_is_pac_exception_fatal(task_t task);
+extern void task_set_pac_exception_fatal_flag(task_t task);
+#endif /*__has_feature(ptrauth_calls)*/
+
+extern void task_set_tecs(task_t task);
+
+#endif /* XNU_KERNEL_PRIVATE */
+
+#ifdef KERNEL_PRIVATE
+
+extern void *get_bsdtask_info(task_t);
+extern void *get_bsdthreadtask_info(thread_t);
+extern void task_bsdtask_kill(task_t);
+extern vm_map_t get_task_map(task_t);
+extern ledger_t get_task_ledger(task_t);
+
+extern boolean_t get_task_pidsuspended(task_t);
+extern boolean_t get_task_suspended(task_t);
+extern boolean_t get_task_frozen(task_t);
+
+/* Convert from a task to a port */
+extern ipc_port_t convert_task_to_port(task_t);
+extern ipc_port_t convert_task_name_to_port(task_name_t);
+extern ipc_port_t convert_task_inspect_to_port(task_inspect_t);
+extern ipc_port_t convert_task_read_to_port(task_read_t);
+extern ipc_port_t convert_task_suspension_token_to_port(task_suspension_token_t task);
+
+/* Convert from a port (in this case, an SO right to a task's resume port) to a task. */
+extern task_suspension_token_t convert_port_to_task_suspension_token(ipc_port_t port);
+
+extern boolean_t task_suspension_notify(mach_msg_header_t *);
+
+#define TASK_WRITE_IMMEDIATE 0x1
+#define TASK_WRITE_DEFERRED 0x2
+#define TASK_WRITE_INVALIDATED 0x4
+#define TASK_WRITE_METADATA 0x8
+extern void task_update_logical_writes(task_t task, uint32_t io_size, int flags, void *vp);
+
+__enum_decl(task_balance_flags_t, uint8_t, {
+ TASK_BALANCE_CREDIT = 0x1,
+ TASK_BALANCE_DEBIT = 0x2,
+});
+
+__enum_decl(task_physical_write_flavor_t, uint8_t, {
+ TASK_PHYSICAL_WRITE_METADATA = 0x1,
+});
+extern void task_update_physical_writes(task_t task, task_physical_write_flavor_t flavor,
+ uint64_t io_size, task_balance_flags_t flags);
+
+#if CONFIG_SECLUDED_MEMORY
+extern void task_set_can_use_secluded_mem(
+ task_t task,
+ boolean_t can_use_secluded_mem);
+extern void task_set_could_use_secluded_mem(
+ task_t task,
+ boolean_t could_use_secluded_mem);
+extern void task_set_could_also_use_secluded_mem(
+ task_t task,
+ boolean_t could_also_use_secluded_mem);
+extern boolean_t task_can_use_secluded_mem(
+ task_t task,
+ boolean_t is_allocate);
+extern boolean_t task_could_use_secluded_mem(task_t task);
+extern boolean_t task_could_also_use_secluded_mem(task_t task);
+#endif /* CONFIG_SECLUDED_MEMORY */
+
+extern void task_set_darkwake_mode(task_t, boolean_t);
+extern boolean_t task_get_darkwake_mode(task_t);
+
+#if __arm64__
+extern void task_set_legacy_footprint(task_t task);
+extern void task_set_extra_footprint_limit(task_t task);
+extern void task_set_ios13extended_footprint_limit(task_t task);
+#endif /* __arm64__ */
+
+#if CONFIG_MACF
+extern struct label *get_task_crash_label(task_t task);
+#endif /* CONFIG_MACF */
+
+extern int get_task_cdhash(task_t task, char cdhash[]);
+
+#endif /* KERNEL_PRIVATE */
+
+extern task_t kernel_task;
+
+extern void task_deallocate(
+ task_t task);
+
+extern void task_name_deallocate(
+ task_name_t task_name);
+
+extern void task_policy_set_deallocate(
+ task_policy_set_t task_policy_set);
+
+extern void task_policy_get_deallocate(
+ task_policy_get_t task_policy_get);
+
+extern void task_inspect_deallocate(
+ task_inspect_t task_inspect);
+
+extern void task_read_deallocate(
+ task_read_t task_read);
+
+extern void task_suspension_token_deallocate(
+ task_suspension_token_t token);
+
+extern boolean_t task_self_region_footprint(void);
+extern void task_self_region_footprint_set(boolean_t newval);
+extern void task_ledgers_footprint(ledger_t ledger,
+ ledger_amount_t *ledger_resident,
+ ledger_amount_t *ledger_compressed);
+extern void task_set_memory_ownership_transfer(
+ task_t task,
+ boolean_t value);