[kernel][iommu] New Map/Unmap IOMMU API

Changes the Map/Unmap design of the Iommu interface to use an opaque
mapping token, instead of operating directly on device address ranges.
This allows for separating the mapping of a range, with querying the
device contiguous portions of it. The existing IOMMU implementations
are able to support this change without actually needing to allocate or
store any additional metadata.

Bug: 399697584
Change-Id: Idd8b2d3fad2b924aa7c21cab6a63573591c8b3a7
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1216904
Reviewed-by: Rasha Eqbal <rashaeqbal@google.com>
Commit-Queue: Adrian Danis <adanis@google.com>
9 files changed
tree: 406122893362bb63f2cb7a86d22d16516c7e4fac
  1. .helix/
  2. boards/
  3. build/
  4. bundles/
  5. docs/
  6. examples/
  7. infra/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .editorconfig
  18. .git-blame-ignore-revs
  19. .gitattributes
  20. .gitignore
  21. .gitmodules
  22. .gn
  23. .ignore
  24. analysis_options.yaml
  25. AUTHORS
  26. BUILD.gn
  27. CODE_OF_CONDUCT.md
  28. CONTRIBUTING.md
  29. fuchsia.code-workspace
  30. LICENSE
  31. OWNERS
  32. PATENTS
  33. pyproject.toml
  34. pyrightconfig.json
  35. README.md
  36. rustfmt.toml
  37. shac.star
  38. shac.textproto
README.md

Fuchsia

What is Fuchsia?

Fuchsia is an open source, general purpose operating system supporting modern 64-bit Intel and ARM processors.

We expect everyone interacting with our project to respect our code of conduct.

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.