[cm][routing] Separate route step from open step

Defines an API for capability routing. This is essentially
one function, route_capability(), which takes an enum-valued
argument specifying the capability type (directory,
protocol, etc) and the relationship to the target (via
a use, expose, etc). Policy verification now occurs
in the routing step for all capability types.

The routing API also includes a helper function which
routes both a storage capability and its backing
directory.

In a follow-up, this will become the public API of the
routing lib.

Bug: 61861
Change-Id: I1b41c3808fb00c13d7cd448cd1ba71c79db07a2b
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/514300
Reviewed-by: Adam Lesinski <adamlesinski@google.com>
Commit-Queue: Laura Peskin <pesk@google.com>
12 files changed
tree: 0600bb56f34e5e1a71e0053c96850e29d394c60a
  1. boards/
  2. build/
  3. buildtools/
  4. bundles/
  5. docs/
  6. examples/
  7. garnet/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .git-blame-ignore-revs
  18. .gitattributes
  19. .gitignore
  20. .gn
  21. .style.yapf
  22. AUTHORS
  23. BUILD.gn
  24. CODE_OF_CONDUCT.md
  25. CONTRIBUTING.md
  26. LICENSE
  27. OWNERS
  28. PATENTS
  29. README.md
  30. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.