]> git.saurik.com Git - apple/xnu.git/blobdiff - security/mac_mach_internal.h
xnu-6153.121.1.tar.gz
[apple/xnu.git] / security / mac_mach_internal.h
index cf48cf3be71896438c217b1ae7bdda527a062fc4..df3bae67bc9aa5860e5a5ab94611281a9d957599 100644 (file)
 /* mac_do_machexc() flags */
 #define        MAC_DOEXCF_TRACED       0x01    /* Only do mach exeception if
                                           being ptrace()'ed */
+struct exception_action;
 struct uthread;
+struct task;
+
 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 */
+struct label *mac_exc_create_label(void);
+void mac_exc_free_label(struct label *label);
+
+void mac_exc_associate_action_label(struct exception_action *action, struct label *label);
+void mac_exc_free_action_label(struct exception_action *action);
+
+int mac_exc_update_action_label(struct exception_action *action, struct label *newlabel);
+int mac_exc_inherit_action_label(struct exception_action *parent, struct exception_action *child);
+int mac_exc_update_task_crash_label(struct task *task, struct label *newlabel);
+
+int mac_exc_action_check_exception_send(struct task *victim_task, struct exception_action *action);
+
+void mac_proc_notify_exec_complete(struct proc *proc);
+
+struct label *mac_exc_create_label_for_proc(struct proc *proc);
+struct label *mac_exc_create_label_for_current_proc(void);
+
 #endif /* MAC */
 
 #endif /* !_SECURITY_MAC_MACH_INTERNAL_H_ */