#include <mach/mach_voucher_types.h> also included by <mach/mach.h>

mach/mach_voucher_types.h

40 macros · 30 typedefs · 1 struct

typedefmach_voucher_t

Mach Voucher - an immutable collection of attribute value handles. The mach voucher is such that it can be passed between processes as a Mach port send right (by convention in the mach_msg_header_t’s msgh_voucher field). You may construct a new mach voucher by passing a construction recipe to host_create_mach_voucher(). The construction recipe supports generic commands for copying, removing, and redeeming attribute value handles from previous vouchers, or running attribute-mananger-specific commands within the recipe. Once the set of attribute value handles is constructed and returned, that set will not change for the life of the voucher (just because the attribute value handle itself doesn't change, the value the handle refers to is free to change at will).
typedef mach_port_t mach_voucher_t

macroMACH_VOUCHER_NULL

#define MACH_VOUCHER_NULL ((mach_voucher_t) 0)

typedefmach_voucher_name_t

typedef mach_port_name_t mach_voucher_name_t

macroMACH_VOUCHER_NAME_NULL

#define MACH_VOUCHER_NAME_NULL ((mach_voucher_name_t) 0)

typedefmach_voucher_name_array_t

typedef mach_voucher_name_t *mach_voucher_name_array_t

macroMACH_VOUCHER_NAME_ARRAY_NULL

#define MACH_VOUCHER_NAME_ARRAY_NULL ((mach_voucher_name_array_t) 0)

typedefipc_voucher_t

This type changes appearance between user-space and kernel. It is a port at user-space and a reference to an ipc_voucher structure in-kernel.
typedef mach_voucher_t ipc_voucher_t

macroIPC_VOUCHER_NULL

#define IPC_VOUCHER_NULL ((ipc_voucher_t) 0)

typedefmach_voucher_selector_t

mach_voucher_selector_t - A means of specifying which thread/task value to extract - the current voucher set at this level, or a voucher representing the full [layered] effective value for the task/thread.
typedef uint32_t mach_voucher_selector_t

macroMACH_VOUCHER_SELECTOR_CURRENT

#define MACH_VOUCHER_SELECTOR_CURRENT ((mach_voucher_selector_t)0)

macroMACH_VOUCHER_SELECTOR_EFFECTIVE

#define MACH_VOUCHER_SELECTOR_EFFECTIVE ((mach_voucher_selector_t)1)

typedefmach_voucher_attr_key_t

mach_voucher_attr_key_t - The key used to identify a particular managed resource or to select the specific resource manager’s data associated with a given voucher.
typedef uint32_t mach_voucher_attr_key_t

typedefmach_voucher_attr_key_array_t

typedef mach_voucher_attr_key_t *mach_voucher_attr_key_array_t

macroMACH_VOUCHER_ATTR_KEY_ALL

#define MACH_VOUCHER_ATTR_KEY_ALL ((mach_voucher_attr_key_t)~0)

macroMACH_VOUCHER_ATTR_KEY_NONE

#define MACH_VOUCHER_ATTR_KEY_NONE ((mach_voucher_attr_key_t)0)

macroMACH_VOUCHER_ATTR_KEY_ATM

other well-known-keys will be added here
#define MACH_VOUCHER_ATTR_KEY_ATM ((mach_voucher_attr_key_t)1)

macroMACH_VOUCHER_ATTR_KEY_IMPORTANCE

#define MACH_VOUCHER_ATTR_KEY_IMPORTANCE ((mach_voucher_attr_key_t)2)

macroMACH_VOUCHER_ATTR_KEY_BANK

#define MACH_VOUCHER_ATTR_KEY_BANK ((mach_voucher_attr_key_t)3)

macroMACH_VOUCHER_ATTR_KEY_PTHPRIORITY

following keys have been removed from embedded platforms
#define MACH_VOUCHER_ATTR_KEY_PTHPRIORITY ((mach_voucher_attr_key_t)4)

macroMACH_VOUCHER_ATTR_KEY_USER_DATA

#define MACH_VOUCHER_ATTR_KEY_USER_DATA ((mach_voucher_attr_key_t)7)

macroMACH_VOUCHER_ATTR_KEY_BITS

#define MACH_VOUCHER_ATTR_KEY_BITS MACH_VOUCHER_ATTR_KEY_USER_DATA

macroMACH_VOUCHER_ATTR_KEY_TEST

#define MACH_VOUCHER_ATTR_KEY_TEST ((mach_voucher_attr_key_t)8)

macroMACH_VOUCHER_ATTR_KEY_NUM_WELL_KNOWN

not used, for compatibility only
#define MACH_VOUCHER_ATTR_KEY_NUM_WELL_KNOWN MACH_VOUCHER_ATTR_KEY_TEST

typedefmach_voucher_attr_content_t

mach_voucher_attr_content_t Data passed to a resource manager for modifying an attribute value or returned from the resource manager in response to a request to externalize the current value for that attribute.
typedef uint8_t *mach_voucher_attr_content_t

typedefmach_voucher_attr_content_size_t

typedef uint32_t mach_voucher_attr_content_size_t

typedefmach_voucher_attr_command_t

mach_voucher_attr_command_t - The private verbs implemented by each voucher attribute manager via mach_voucher_attr_command().
typedef uint32_t mach_voucher_attr_command_t

typedefmach_voucher_attr_recipe_command_t

mach_voucher_attr_recipe_command_t The verbs used to create/morph a voucher attribute value. We define some system-wide commands here - related to creation, and transport of vouchers and attributes. Additional commands can be defined by, and supported by, individual attribute resource managers.
typedef uint32_t mach_voucher_attr_recipe_command_t

typedefmach_voucher_attr_recipe_command_array_t

typedef mach_voucher_attr_recipe_command_t *mach_voucher_attr_recipe_command_array_t

macroMACH_VOUCHER_ATTR_NOOP

#define MACH_VOUCHER_ATTR_NOOP ((mach_voucher_attr_recipe_command_t)0)

macroMACH_VOUCHER_ATTR_COPY

#define MACH_VOUCHER_ATTR_COPY ((mach_voucher_attr_recipe_command_t)1)

macroMACH_VOUCHER_ATTR_REMOVE

#define MACH_VOUCHER_ATTR_REMOVE ((mach_voucher_attr_recipe_command_t)2)

macroMACH_VOUCHER_ATTR_SET_VALUE_HANDLE

#define MACH_VOUCHER_ATTR_SET_VALUE_HANDLE ((mach_voucher_attr_recipe_command_t)3)

macroMACH_VOUCHER_ATTR_AUTO_REDEEM

#define MACH_VOUCHER_ATTR_AUTO_REDEEM ((mach_voucher_attr_recipe_command_t)4)

macroMACH_VOUCHER_ATTR_SEND_PREPROCESS

#define MACH_VOUCHER_ATTR_SEND_PREPROCESS ((mach_voucher_attr_recipe_command_t)5)

macroMACH_VOUCHER_ATTR_REDEEM

redeem is on its way out?
#define MACH_VOUCHER_ATTR_REDEEM ((mach_voucher_attr_recipe_command_t)10)

macroMACH_VOUCHER_ATTR_IMPORTANCE_SELF

recipe command(s) for importance attribute manager
#define MACH_VOUCHER_ATTR_IMPORTANCE_SELF ((mach_voucher_attr_recipe_command_t)200)

macroMACH_VOUCHER_ATTR_USER_DATA_STORE

recipe command(s) for bit-store attribute manager
#define MACH_VOUCHER_ATTR_USER_DATA_STORE ((mach_voucher_attr_recipe_command_t)211)

macroMACH_VOUCHER_ATTR_BITS_STORE

#define MACH_VOUCHER_ATTR_BITS_STORE MACH_VOUCHER_ATTR_USER_DATA_STORE
deprecated

macroMACH_VOUCHER_ATTR_TEST_STORE

recipe command(s) for test attribute manager
#define MACH_VOUCHER_ATTR_TEST_STORE MACH_VOUCHER_ATTR_USER_DATA_STORE

typedefmach_voucher_attr_recipe_data_t

typedef struct mach_voucher_attr_recipe_data mach_voucher_attr_recipe_data_t;

typedefmach_voucher_attr_recipe_t

typedef mach_voucher_attr_recipe_data_t *mach_voucher_attr_recipe_t

typedefmach_voucher_attr_recipe_size_t

typedef mach_msg_type_number_t mach_voucher_attr_recipe_size_t

typedefmach_voucher_attr_raw_recipe_t

Make the above palatable to MIG
typedef uint8_t *mach_voucher_attr_raw_recipe_t

typedefmach_voucher_attr_raw_recipe_array_t

typedef mach_voucher_attr_raw_recipe_t mach_voucher_attr_raw_recipe_array_t

typedefmach_voucher_attr_raw_recipe_size_t

typedef mach_msg_type_number_t mach_voucher_attr_raw_recipe_size_t

typedefmach_voucher_attr_raw_recipe_array_size_t

typedef mach_msg_type_number_t mach_voucher_attr_raw_recipe_array_size_t

macroMACH_VOUCHER_ATTR_MAX_RAW_RECIPE_ARRAY_SIZE

#define MACH_VOUCHER_ATTR_MAX_RAW_RECIPE_ARRAY_SIZE 5120

macroMACH_VOUCHER_TRAP_STACK_LIMIT

#define MACH_VOUCHER_TRAP_STACK_LIMIT 256

typedefmach_voucher_attr_manager_t

mach_voucher_attr_manager_t A handle through which the mach voucher mechanism communicates with the voucher attribute manager for a given attribute key.
typedef mach_port_t mach_voucher_attr_manager_t

macroMACH_VOUCHER_ATTR_MANAGER_NULL

#define MACH_VOUCHER_ATTR_MANAGER_NULL ((mach_voucher_attr_manager_t) 0)

typedefmach_voucher_attr_control_t

mach_voucher_attr_control_t A handle provided to the voucher attribute manager for a given attribute key through which it makes inquiries or control operations of the mach voucher mechanism.
typedef mach_port_t mach_voucher_attr_control_t

macroMACH_VOUCHER_ATTR_CONTROL_NULL

#define MACH_VOUCHER_ATTR_CONTROL_NULL ((mach_voucher_attr_control_t) 0)

typedefipc_voucher_attr_manager_t

These types are different in-kernel vs user-space. They are ports in user-space, pointers to opaque structs in most of the kernel, and pointers to known struct types in the Mach portion of the kernel.
typedef mach_port_t ipc_voucher_attr_manager_t

typedefipc_voucher_attr_control_t

typedef mach_port_t ipc_voucher_attr_control_t

macroIPC_VOUCHER_ATTR_MANAGER_NULL

#define IPC_VOUCHER_ATTR_MANAGER_NULL ((ipc_voucher_attr_manager_t) 0)

macroIPC_VOUCHER_ATTR_CONTROL_NULL

#define IPC_VOUCHER_ATTR_CONTROL_NULL ((ipc_voucher_attr_control_t) 0)

typedefmach_voucher_attr_value_handle_t

mach_voucher_attr_value_handle_t The private handle that the voucher attribute manager provides to the mach voucher mechanism to represent a given attr content/value.
typedef uint64_t mach_voucher_attr_value_handle_t

typedefmach_voucher_attr_value_handle_array_t

typedef mach_voucher_attr_value_handle_t *mach_voucher_attr_value_handle_array_t

typedefmach_voucher_attr_value_handle_array_size_t

typedef mach_msg_type_number_t mach_voucher_attr_value_handle_array_size_t

macroMACH_VOUCHER_ATTR_VALUE_MAX_NESTED

#define MACH_VOUCHER_ATTR_VALUE_MAX_NESTED ((mach_voucher_attr_value_handle_array_size_t)4)

typedefmach_voucher_attr_value_reference_t

typedef uint32_t mach_voucher_attr_value_reference_t

typedefmach_voucher_attr_value_flags_t

typedef uint32_t mach_voucher_attr_value_flags_t

macroMACH_VOUCHER_ATTR_VALUE_FLAGS_NONE

#define MACH_VOUCHER_ATTR_VALUE_FLAGS_NONE ((mach_voucher_attr_value_flags_t)0)

macroMACH_VOUCHER_ATTR_VALUE_FLAGS_PERSIST

#define MACH_VOUCHER_ATTR_VALUE_FLAGS_PERSIST ((mach_voucher_attr_value_flags_t)1)

typedefmach_voucher_attr_control_flags_t

USE - TBD
typedef uint32_t mach_voucher_attr_control_flags_t

macroMACH_VOUCHER_ATTR_CONTROL_FLAGS_NONE

#define MACH_VOUCHER_ATTR_CONTROL_FLAGS_NONE ((mach_voucher_attr_control_flags_t)0)

macroMACH_VOUCHER_IMPORTANCE_ATTR_ADD_EXTERNAL

Commands and types for the IPC Importance Attribute Manager These are the valid mach_voucher_attr_command() options with the MACH_VOUCHER_ATTR_KEY_IMPORTANCE key.
#define MACH_VOUCHER_IMPORTANCE_ATTR_ADD_EXTERNAL 1
Add some number of external refs (not supported)

macroMACH_VOUCHER_IMPORTANCE_ATTR_DROP_EXTERNAL

#define MACH_VOUCHER_IMPORTANCE_ATTR_DROP_EXTERNAL 2
Drop some number of external refs

typedefmach_voucher_attr_importance_refs

typedef uint32_t mach_voucher_attr_importance_refs

macroMACH_ACTIVITY_ID_COUNT_MAX

Activity id Generation defines
#define MACH_ACTIVITY_ID_COUNT_MAX 16