Module meta

Source
Expand description

Metadata management of frames.

You can picture a globally shared, static, gigantic array of metadata initialized for each frame. Each entry in this array holds the metadata for a single frame. There would be a dedicated small “heap” space in each slot for dynamic metadata. You can store anything as the metadata of a frame as long as it’s [Sync].

§Implementation

The slots are placed in the metadata pages mapped to a certain virtual address in the kernel space. So finding the metadata of a frame often comes with no costs since the translation is a simple arithmetic operation.

Macros§

impl_frame_meta_for
Makes a structure usable as a frame metadata.

Structs§

KernelMeta
The metadata of physical pages that contains the kernel itself.
MetaPageMeta
The metadata of frames that holds metadata of frames.
ReservedMemoryMeta
Reserved memory metadata. Maybe later used as I/O memory.
UnusableMemoryMeta
Unusable memory metadata. Cannot be used for any purposes.

Enums§

GetFrameError
The error type for getting the frame from a physical address.

Constants§

FRAME_METADATA_MAX_ALIGN
The maximum alignment in bytes of the metadata of a frame.
FRAME_METADATA_MAX_SIZE
The maximum number of bytes of the metadata of a frame.

Traits§

AnyFrameMeta
All frame metadata types must implement this trait.