Kick a thread out of restricted mode.
#include <zircon/syscalls-next.h> zx_status_t zx_restricted_kick(zx_handle_t thread, uint32_t options);
Kicks a thread out of restricted mode if it is currently running in restricted
mode or saves a pending kick if it is not. If the target thread is running in
restricted mode, it will exit to normal mode through the entry point provided to
zx_restricted_enter with a reason code set to
Otherwise the next call to
zx_restricted_enter will not enter restricted mode
and will instead dispatch to the provided entry point with reason
Multiple kicks on the same thread object are collapsed together. Thus if
multiple threads call
zx_restricted_kick on the same target while it is
running or entering restricted mode, at least one but possibly multiple
ZX_RESTRICTED_REASON_KICK returns will be observed. The recommended way to use
this syscall is to first record a reason for kicking in a synchronized data
structure and then call
zx_restricted_kick. The thread calling
zx_restricted_enter should consult this data structure whenever it observes
ZX_RESTRICTED_REASON_KICK and process any pending state before reentering
options must be zero.
ZX_RIGHT_MANAGE_THREAD is required on thread.
ZX_ERR_INVALID_ARGS options is any value other than 0. ZX_ERR_WRONG_TYPE thread is not a thread. ZX_ERR_ACCESS_DENIED thread does not have ZX_RIGHT_MANAGE_THREAD. ZX_ERR_BAD_STATE thread is dead.