[roll] Roll fuchsia Reland "[kernel][arch] Introduce memory types to paging traits"

This is a reland of commit 247c60cab19a9efedbd2af7c6f11d8679136c232

What changed: PagingSettings was made to be a definition of the traits
themselves, allowing control over the default memory value. The previous
approach of using a std::optional<MemoryType> to allow for a safe
default-constructed value ironically wasn't used safely by the author
and led to unintentional dereferencing of the null state (as well as UX
complications).

Also, the paging trait definitions are moved to the top of each
<lib/arch/$arch/page-table.h>, prioritizing the definition of the main
attraction in that file and reducing the expedient definitions made in
the library scope.

Original change's description:
> [kernel][arch] Introduce memory types to paging traits
>
> This change introduces memory type support to the paging traits. This
> provides the functionality to configure pages as normal memory or MMIO.
>
> Original-Bug: 129344
> Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/878980

Original-Bug: 129344
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/923652
Original-Revision: 0bdab47fcd5fbe674d8a13d23a4f206d3d9d5591
GitOrigin-RevId: b2d48a33a3343f7b5c14280eb6101b6e282b5bbf
Change-Id: I19b3faba6897698a15dc526c6484bb15a906f004
1 file changed
tree: ee58684841a35554be6b4b2e102000ff733f2c5d
  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.