ZXFoundation™ 26h2
Loading...
Searching...
No Matches
arch.s390x.mmu.types Module Reference

Data Structures

struct  arch::s390x::mmu::dat_table< Level >
 Typed handle to a DAT table at a specific level. More...
struct  arch::s390x::mmu::page_prot
 Page protection descriptor — distinct from raw u64. More...
struct  arch::s390x::mmu::pte
 Page Table Entry — distinct type from rste<>. More...
struct  arch::s390x::mmu::rste< Level >
 Region/Segment Table Entry parameterized by level. More...
struct  arch::s390x::mmu::typed_asce< Level >
 Typed Address Space Control Element. More...

Enumerations

enum class  dat_level : u8 {
  region_1 = 0 , region_2 = 1 , region_3 = 2 , segment = 3 ,
  page = 4
}
 DAT translation levels for z/Architecture.

Functions

constexpr dat_table (u64 phys) noexcept
constexpr auto arch::s390x::mmu::level_at_depth (dat_level root, u32 depth) noexcept -> dat_level
 Runtime level-at-depth helper.
template<dat_level Level>
constexpr auto arch::s390x::mmu::level_size () noexcept -> u64
 Coverage size for a given level.
constexpr auto arch::s390x::mmu::level_size_rt (dat_level lvl) noexcept -> u64
 Runtime coverage size.
constexpr auto arch::s390x::mmu::next_level (dat_level lvl) noexcept -> dat_level
 Runtime next-level helper.
constexpr operator bool () const noexcept
constexpr auto operator& (page_prot o) const noexcept -> page_prot
constexpr auto operator| (page_prot o) const noexcept -> page_prot
constexpr page_prot (u64 b) noexcept
constexpr pte (u64 v) noexcept
constexpr auto raw () const noexcept -> u64
constexpr auto raw () const noexcept -> u64
constexpr auto raw () const noexcept -> u64
constexpr auto raw () const noexcept -> u64
constexpr rste (u64 v) noexcept
constexpr typed_asce (u64 v) noexcept
constexpr auto valid () const noexcept -> bool
template<dat_level Level>
constexpr auto arch::s390x::mmu::virt_index (u64 virt) noexcept -> u32
 Extract the virtual-address index for a given DAT level.
constexpr auto arch::s390x::mmu::virt_index_rt (dat_level lvl, u64 virt) noexcept -> u32
 Runtime index extraction (for internal walk loops).

Variables

u64 bits {0}
template<dat_level Parent>
constexpr dat_level arch::s390x::mmu::child_of
 Metafunction: child level of a given parent level.
constexpr u32 arch::s390x::mmu::CRST_ALLOC_ORDER = 2U
 PMM order for CRST table allocation (16 KiB = 4 pages = order 2).
constexpr u32 arch::s390x::mmu::CRST_ENTRIES = 2048U
 Number of entries in a CRST (region/segment) table.
constexpr u64 arch::s390x::mmu::CRST_INDEX_MASK = 0x7FFULL
 VA index mask (11 bits for CRST levels, 8 bits for page level).
constexpr u64 arch::s390x::mmu::CRST_TABLE_SIZE = CRST_ENTRIES * 8ULL
 Size of a CRST table in bytes (2048 x 8 = 16 KiB).
u64 origin_phys {0}
constexpr u32 arch::s390x::mmu::PAGE_ENTRIES = 256U
 Number of entries in a page table.
constexpr u32 arch::s390x::mmu::PAGE_SHIFT = 12U
 PX: PoP bits 44-51.
constexpr u64 arch::s390x::mmu::PAGE_SIZE_4K = 1ULL << PAGE_SHIFT
 4 KiB per page entry.
constexpr u64 arch::s390x::mmu::PAGE_TABLE_SIZE = PAGE_ENTRIES * 8ULL
 Size of a page table in bytes (256 x 8 = 2 KiB).
constexpr u32 arch::s390x::mmu::PTE_ALLOC_ORDER = 0U
 PMM order for PTE table allocation (4 KiB = 1 page = order 0).
constexpr u64 arch::s390x::mmu::PTE_INDEX_MASK = 0xFFULL
 8-bit mask for PX.
constexpr u32 arch::s390x::mmu::REGION1_SHIFT = 53U
 RFX: PoP bits 0-10.
constexpr u64 arch::s390x::mmu::REGION1_SIZE = 1ULL << REGION1_SHIFT
 8 PiB per R1 entry.
constexpr u32 arch::s390x::mmu::REGION2_SHIFT = 42U
 RSX: PoP bits 11-21.
constexpr u64 arch::s390x::mmu::REGION2_SIZE = 1ULL << REGION2_SHIFT
 4 TiB per R2 entry.
constexpr u32 arch::s390x::mmu::REGION3_SHIFT = 31U
 RTX: PoP bits 22-32.
constexpr u64 arch::s390x::mmu::REGION3_SIZE = 1ULL << REGION3_SHIFT
 2 GiB per R3 entry.
constexpr u32 arch::s390x::mmu::SEGMENT_SHIFT = 20U
 SX: PoP bits 33-43.
constexpr u64 arch::s390x::mmu::SEGMENT_SIZE = 1ULL << SEGMENT_SHIFT
 1 MiB per segment entry.
u64 val {0}
u64 val {0}
u64 val {0}

Files

file  arch/s390x/mmu/types.cxxm