-
-/* darwin background handling code */
-static int
-handle_background(int scope, int action, __unused int policy, __unused int policy_subtype, user_addr_t attrp, proc_t proc, uint64_t target_threadid)
-{
- int intval, error = 0;
-
-
- switch (action) {
- case PROC_POLICY_ACTION_GET:
- if (scope == PROC_POLICY_SCOPE_PROCESS) {
- intval = proc_get_task_bg_policy(proc->task);
- } else {
- /* thread scope */
- intval = proc_get_thread_bg_policy(proc->task, target_threadid);
- }
- error = copyout((int *)&intval, (user_addr_t)attrp, sizeof(int));
- break;
-
- case PROC_POLICY_ACTION_SET:
- error = copyin((user_addr_t)attrp, (int *)&intval, sizeof(int));
- if (error != 0)
- goto out;
- if (intval > PROC_POLICY_BG_ALL) {
- error = EINVAL;
- goto out;
- }
- if (scope == PROC_POLICY_SCOPE_PROCESS) {
- error = proc_set_bgtaskpolicy(proc->task, intval);
- } else {
- /* thread scope */
- error = proc_set_bgthreadpolicy(proc->task, target_threadid, intval);
- }
- break;
-
- case PROC_POLICY_ACTION_ADD:
- error = copyin((user_addr_t)attrp, (int *)&intval, sizeof(int));
- if (error != 0)
- goto out;
- if (intval > PROC_POLICY_BG_ALL) {
- error = EINVAL;
- goto out;
- }
- if (scope == PROC_POLICY_SCOPE_PROCESS) {
- error = proc_add_bgtaskpolicy(proc->task, intval);
- } else {
- /* thread scope */
- error = proc_add_bgthreadpolicy(proc->task, target_threadid, intval);
- }
- break;
-
- case PROC_POLICY_ACTION_REMOVE:
- error = copyin((user_addr_t)attrp, (int *)&intval, sizeof(int));
- if (error != 0)
- goto out;
- if (intval > PROC_POLICY_BG_ALL) {
- error = EINVAL;
- goto out;
- }
- if (scope == PROC_POLICY_SCOPE_PROCESS) {
- error = proc_remove_bgtaskpolicy(proc->task, intval);
- } else {
- /* thread scope */
- error = proc_remove_bgthreadpolicy(proc->task, target_threadid, intval);
- }
- break;
-
- case PROC_POLICY_ACTION_APPLY:
- if (scope == PROC_POLICY_SCOPE_PROCESS) {
- error = proc_apply_bgtaskpolicy(proc->task);
- } else {
- /* thread scope */
- error = proc_apply_bgthreadpolicy(proc->task, target_threadid);
- }
- break;
-
- case PROC_POLICY_ACTION_RESTORE:
- if (scope == PROC_POLICY_SCOPE_PROCESS) {
- error = proc_restore_bgtaskpolicy(proc->task);
- } else {
- /* thread scope */
- error = proc_restore_bgthreadpolicy(proc->task, target_threadid);
- }
- break;
-
- case PROC_POLICY_ACTION_DENYINHERIT:
- error = proc_denyinherit_policy(proc->task);
- break;
-
- case PROC_POLICY_ACTION_DENYSELFSET:
- error = proc_denyselfset_policy(proc->task);
- break;
-
- default:
- return(EINVAL);
- }
-
-out:
- return(error);
-}
-
-static int
-handle_hwaccess(__unused int scope, __unused int action, __unused int policy, int policy_subtype, __unused user_addr_t attrp, __unused proc_t proc, __unused uint64_t target_threadid)
-{
- switch(policy_subtype) {
- case PROC_POLICY_HWACCESS_NONE:
- case PROC_POLICY_HWACCESS_DISK:
- case PROC_POLICY_HWACCESS_GPU:
- case PROC_POLICY_HWACCESS_NETWORK:
- case PROC_POLICY_HWACCESS_CPU:
- break;
- default:
- return(EINVAL);
- }
- return(0);
-}
-
-static int
-handle_lowresrouce(__unused int scope, int action, __unused int policy, int policy_subtype, __unused user_addr_t attrp, proc_t proc, __unused uint64_t target_threadid)