Kernelite 0.1.0
Kernelite is a minimalist, educational operating system kernel built from scratch. The project aims to recreate core components of the Linux architecture to explore the fundamentals of operating system design and hardware-software interaction.
Loading...
Searching...
No Matches
Data Fields
page_table_entry_t Union Reference

Flat, architecturally stable AArch64 Stage 1 Descriptor structure. More...

#include <page_table.h>

Collaboration diagram for page_table_entry_t:
Collaboration graph
[legend]

Data Fields

uint64_t value
 Raw 64-bit integer presentation of the full descriptor. Useful for atomic page table writes or direct register assignments.
 
struct { 
 
   uint64_t   valid: 1 
 
   uint64_t   type: 1 
 
   uint64_t   rest: 62 
 
generic 
 Raw hardware bits used for quick validity and node type assessment.
 
table_desc_t table_desc
 full descriptor.
 
page_desc_t page_desc
 Structured layout for block mappings (L1/L2) or page mappings (L3). Maps physical memory output windows directly.
 

Detailed Description

Flat, architecturally stable AArch64 Stage 1 Descriptor structure.

This union maps a standard 64-bit ARMv8/ARMv9 translation table descriptor. By avoiding nested internal anonymous unions and leveraging flattened structural representations, it guarantees exact 8-byte compilation across GCC and Clang toolchains without unintended alignment padding.

Field Documentation

◆ [struct]

struct { ... } page_table_entry_t::generic

Raw hardware bits used for quick validity and node type assessment.

  • Allows low-overhead pre-checking during recursive page table walks before casting to specific descriptor variations.

◆ rest

uint64_t page_table_entry_t::rest

[63:2] Untouched bits representing remaining descriptor space.

◆ table_desc

page_table_entry_t::table_desc

full descriptor.

Used for quick checks without needing to interpret the

Structured layout for translation table descriptors (Levels 0, 1, or 2). Points to the base address of the next-level lookup table frame.

◆ type

uint64_t page_table_entry_t::type

[1] Descriptor Type block bit. 1 = Table/Page, 0 = Block/Reserved.

◆ valid

uint64_t page_table_entry_t::valid

[0] Valid descriptor bit. 1 = Active, 0 = Fault on access.

◆ value

page_table_entry_t::value

Raw 64-bit integer presentation of the full descriptor. Useful for atomic page table writes or direct register assignments.


The documentation for this union was generated from the following file: