[kernel][arch] Clarify CPUID I/O contract(s)

This change clarifies and formalizes what a "CPUID value type" is, which
is also precisely the type expected as template parameters to
arch::BootCpuidIo and arch::FakeCpuidIo. We also introduce a convenience
type for defining parametrized CPUID value types (not possible with
`arch::CpuidValueBase` today).

Bug: 61093
Change-Id: I659d80b6bd52dfdd3f6a07815c159453865f1071
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/464635
Commit-Queue: Auto-Submit <auto-submit@fuchsia-infra.iam.gserviceaccount.com>
Fuchsia-Auto-Submit: Joshua Seaton <joshuaseaton@google.com>
Reviewed-by: Roland McGrath <mcgrathr@google.com>
3 files changed
tree: bed08ab06f54ec639b04d0df7b7eb978cf23f2c3
  1. boards/
  2. build/
  3. bundles/
  4. docs/
  5. examples/
  6. garnet/
  7. products/
  8. scripts/
  9. sdk/
  10. src/
  11. third_party/
  12. tools/
  13. zircon/
  14. .clang-format
  15. .clang-tidy
  16. .git-blame-ignore-revs
  17. .gitattributes
  18. .gitignore
  19. .gn
  20. .style.yapf
  21. AUTHORS
  22. BUILD.gn
  23. CODE_OF_CONDUCT.md
  24. CONTRIBUTING.md
  25. LICENSE
  26. OWNERS
  27. PATENTS
  28. README.md
  29. 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.