struct uthread;
int mac_do_machexc(int64_t code, int64_t subcode, uint32_t flags __unused);
int mac_schedule_userret(void);
-struct label *mac_thread_get_threadlabel(struct thread *thread);
-struct label *mac_thread_get_uthreadlabel(struct uthread *uthread);
#if CONFIG_MACF
void mac_policy_init(void);
void mac_policy_initmach(void);
+/* tasks */
+int mac_task_check_expose_task(struct task *t);
+
+int mac_task_check_set_host_special_port(struct task *task,
+ int id, struct ipc_port *port);
+int mac_task_check_set_host_exception_port(struct task *task,
+ unsigned int exception);
+int mac_task_check_set_host_exception_ports(struct task *task,
+ unsigned int exception_mask);
+
/* threads */
void act_set_astmacf(struct thread *);
void mac_thread_userret(struct thread *);
+
+/* exception actions */
+void mac_exc_action_label_init(struct exception_action *action);
+void mac_exc_action_label_inherit(struct exception_action *parent, struct exception_action *child);
+void mac_exc_action_label_destroy(struct exception_action *action);
+int mac_exc_action_label_update(struct task *task, struct exception_action *action);
+void mac_exc_action_label_reset(struct exception_action *action);
+
+void mac_exc_action_label_task_update(struct task *task, struct proc *proc);
+void mac_exc_action_label_task_destroy(struct task *task);
+
+int mac_exc_action_check_exception_send(struct task *victim_task, struct exception_action *action);
#endif /* MAC */
#endif /* !_SECURITY_MAC_MACH_INTERNAL_H_ */