// Copyright 2017 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#pragma once
#include <zircon/types.h>
__BEGIN_CDECLS
// ask clang format not to mess up the indentation:
// clang-format off
// Policy is applied for the conditions that are not
// specified by the parent job policy.
#define ZX_JOB_POL_RELATIVE 0u
// Policy is either applied as-is or the syscall fails.
#define ZX_JOB_POL_ABSOLUTE 1u
// Basic policy topic.
#define ZX_JOB_POL_BASIC 0u
// Input structure to use with ZX_JOB_POL_BASIC.
typedef struct zx_policy_basic {
uint32_t condition;
uint32_t policy;
} zx_policy_basic_t;
// Conditions handled by job policy.
#define ZX_POL_BAD_HANDLE 0u
#define ZX_POL_WRONG_OBJECT 1u
#define ZX_POL_VMAR_WX 2u
#define ZX_POL_NEW_ANY 3u
#define ZX_POL_NEW_VMO 4u
#define ZX_POL_NEW_CHANNEL 5u
#define ZX_POL_NEW_EVENT 6u
#define ZX_POL_NEW_EVENTPAIR 7u
#define ZX_POL_NEW_PORT 8u
#define ZX_POL_NEW_SOCKET 9u
#define ZX_POL_NEW_FIFO 10u
#define ZX_POL_NEW_TIMER 11u
#define ZX_POL_NEW_PROCESS 12u
#ifdef _KERNEL
#define ZX_POL_MAX 13u
#endif
// Policy actions.
// ZX_POL_ACTION_ALLOW and ZX_POL_ACTION_DENY can be ORed with ZX_POL_ACTION_EXCEPTION.
// ZX_POL_ACTION_KILL implies ZX_POL_ACTION_DENY.
#define ZX_POL_ACTION_ALLOW 0u
#define ZX_POL_ACTION_DENY 1u
#define ZX_POL_ACTION_EXCEPTION 2u
#define ZX_POL_ACTION_KILL 5u
__END_CDECLS