[roll] Roll fuchsia [zircon] Add mechanism to "kick" a thread out of restricted mode

This adds a system call to tell Zircon to raise the "restricted kick"
state on a target thread. A thread with the "restricted kick" state
raised will exit restricted mode soon if it is currently in restricted
more or on the next attempt to enter restricted mode if it is not with
the reason code ZX_RESTRICTED_REASON_KICK.

This is implemented by two pieces of state on the Thread object. First,
a bit on Thread::signals_ is used to signal and potentially interrupt a
running thread on another CPU. Thread::ProcessPendingSignals() observes
this bit when the thread is running and either immediately enters normal
mode if the thread was running in restricted mode or lowers the signal
and raises a bit on Thread::flags_ if it was not. The next attempt to
enter restricted mode will observe this flag and immediately exit
through the vector table with the reason ZX_RESTRICTED_REASON_KICK.

Original-Bug: 121511
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/842601
Original-Revision: 6cbe8e757b0542a4b70129077436d1b3e91671aa
GitOrigin-RevId: dd473eecaccca17f352ed181122f6a642e2bc74b
Change-Id: I3246438df326024e7310a5fd9ba269d4014082e8
1 file changed
tree: 733c03a162ace5bbe410784ef72ca7220364ec40
  1. git-hooks/
  2. infra/
  3. third_party/
  4. cts
  5. firmware
  6. flower
  7. jiri.lock
  8. MILESTONE
  9. minimal
  10. prebuilts
  11. README.md
  12. stem
  13. test_durations
  14. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.