task_swap_exception_ports
Function - Set target task's exception ports, returning the previous exception ports.
SYNOPSIS
kern_return_t task_swap_exception_ports
(task_t task,
exception_mask_t exception_types,
mach_port_t exception_port,
exception_behavior_t behavior,
thread_state_flavor_t flavor,
exception_mask_array_t old_exception_masks,
old_exception_masks old_exception_count,
exception_port_array_t old_exception_ports,
exception_behavior_array_t old_behaviors,
exception_flavor_array_t old_flavors);
PARAMETERS
- task
-
[in task send right]
The task for which to set the ports.
- exception_types
-
[in scalar]
A flag word indicating the types of exceptions for which the
exception port applies:
- EXC_MASK_BAD_ACCESS
-
Could not access memory.
- EXC_MASK_BAD_INSTRUCTION
-
Instruction failed. Illegal or undefined instruction or operand.
- EXC_MASK_ARITHMETIC
-
Arithmetic exception
- EXC_MASK_EMULATION
-
Emulation instruction. Emulation support instruction
encountered.
- EXC_MASK_SOFTWARE
-
Software generated exception.
- EXC_MASK_BREAKPOINT
-
Trace, breakpoint, etc.
- EXC_MASK_SYSCALL
-
System call requested.
- EXC_MASK_MACH_SYSCALL
-
System call with a number in the Mach call range requested.
- EXC_MASK_RPC_ALERT
-
Exceptional condition encountered during execution of RPC.
- exception_port
-
[in exception send right]
The exception port for all selected exception
types.
- behavior
-
[in scalar]
The type of exception message to be sent. Defined types are:
- EXCEPTION_DEFAULT
-
Send a catch_exception_raise message including the thread
identity.
- EXCEPTION_STATE
-
Send a catch_exception_raise_state message including the
thread state.
- EXCEPTION_STATE_PROTECTED
-
Send a catch_exception_raise_state message including the
thread state. Mark the exception port (and associated
exceptions) as protected.
- EXCEPTION_STATE_IDENTITY
-
Send a catch_exception_raise_state_identity message
including the thread identity and state.
- EXCEPTION_STATE_IDENTITY_PROTECTED
-
Send a catch_exception_raise_state_identity message
including the thread identity and state. Mark the exception port
(and associated exceptions) as protected.
- flavor
-
[in scalar]
The type of state to be sent with the exception message.
These types are defined in <mach/thread_states.h>.
- old_exception_masks
-
[out array of exception_mask_t]
An array, each element being a mask
specifying for which exception types the corresponding element of the
other arrays apply.
- old_exception_count
-
[pointer to in/out scalar]
On input, the maximum size of the array
buffers; on output, the number of returned sets returned.
- old_exception_ports
-
[out array of exception send rights]
The returned exception ports.
- old_behaviors
-
[out array of exception_behavior_t]
The type of exception message to
be sent as with behavior.
- old_flavors
-
[out array of thread_state_flavor_t]
The type of state to be sent with
the exception message. These types are defined in <mach/thread_states.h>.
DESCRIPTION
The task_swap_exception_ports function sets a specified
set of exception
ports belonging to task, returning the old set. A task exception
port is used when
a thread specific exception port returns a non-success reply.
NOTES
If the value of the EXC_MACH_SYSCALL exception class exception port is
the host name port, Mach kernel traps are executed by the kernel as expected;
any other value causes the attempted execution of these system call numbers to
be considered an exception.
RETURN VALUES
Only generic errors apply.
RELATED INFORMATION
Functions:
mach_task_self,
task_get_exception_ports,
task_set_exception_ports,
thread_create,
thread_get_exception_ports,
thread_set_exception_ports,
thread_swap_exception_ports,
catch_exception_raise,
thread_abort.