[kernel][vm] Introduce ZX_RIGHT_RESIZE

ZX_RIGHT_RESIZE gets added to the new handle if a VMO is created with
the ZX_VMO_RESIZABLE option, or if a child VMO is created with the
ZX_VMO_CHILD_RESIZABLE option.

vmo_set_size validates the ZX_RIGHT_RESIZE right along with the existing
ZX_RIGHT_WRITE check. We might decouple the two and only check for
ZX_RIGHT_RESIZE in the future, but checking for both does not break
current users who control resize with ZX_RIGHT_WRITE.

Test: core-vmo
Bug: 81316
Run-All-Tests: true
Change-Id: I28188600c7adac9d9513af86c02e74d945b0bde7
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/772403
Size-Review: Gopi Krishna Chitluri <gopichitluri@google.com>
Reviewed-by: Roland McGrath <mcgrathr@google.com>
Reviewed-by: Carlos Pizano Uribe <cpu@google.com>
API-Review: Carlos Pizano Uribe <cpu@google.com>
Commit-Queue: Rasha Eqbal <rashaeqbal@google.com>
Reviewed-by: Adrian Danis <adanis@google.com>
API-Review: Roland McGrath <mcgrathr@google.com>
20 files changed
tree: d4df983253f273ac41770a7d3532881cfe9e128f
  1. boards/
  2. build/
  3. bundles/
  4. docs/
  5. examples/
  6. products/
  7. scripts/
  8. sdk/
  9. src/
  10. third_party/
  11. tools/
  12. zircon/
  13. .clang-format
  14. .clang-tidy
  15. .editorconfig
  16. .git-blame-ignore-revs
  17. .gitattributes
  18. .gitignore
  19. .gitmodules
  20. .gn
  21. .style.yapf
  22. analysis_options.yaml
  23. AUTHORS
  24. BUILD.gn
  25. CODE_OF_CONDUCT.md
  26. CONTRIBUTING.md
  27. fuchsia.code-workspace
  28. LICENSE
  29. OWNERS
  30. PATENTS
  31. pyrightconfig.json
  32. README.md
  33. rustfmt.toml
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.