ZXFoundation™ 26h2
Loading...
Searching...
No Matches
zxfoundation.memory.objects.core Module Reference

Data Structures

struct  zxfoundation::memory::objects::memory_object
 single authority representation for any memory-bearing resource in the kernel. More...
struct  zxfoundation::memory::objects::memory_object_policy
 Immutable policy stamped into a memory authority at creation. More...
struct  zxfoundation::memory::objects::memory_object_ref
 Generation-checked identity used across memory-object APIs. More...
union  zxfoundation::memory::objects::view_body
 Tagged body for the typed views over a memory_object. More...

Enumerations

enum class  memory_view_kind : u8 {
  none = 0 , vm_region = 1 , kmem_cache = 2 , policy_server = 3 ,
  service_entry = 4 , device_binding = 5 , dataset_extent = 6
}
 Discriminator for the typed views layered on top of a memory_object.

Functions

auto zxfoundation::memory::objects::memory_extent_acquire_mapping (memory_object_ref extent) noexcept -> std::expected< void, lib::kernel_error >
 Retain/release one live VMA reference to a physical extent.
auto zxfoundation::memory::objects::memory_extent_mapping_count (memory_object_ref extent) noexcept -> std::expected< u32, lib::kernel_error >
auto zxfoundation::memory::objects::memory_extent_release_mapping (memory_object_ref extent) noexcept -> std::expected< void, lib::kernel_error >
auto zxfoundation::memory::objects::memory_extent_retire (memory_object_ref extent) noexcept -> std::expected< void, lib::kernel_error >
 Prevent new VMA references after confirming the extent is idle.
 memory_object (const memory_object &)=delete
auto zxfoundation::memory::objects::memory_object_attach_view (memory_object_ref ref, memory_view_kind kind, void *body) noexcept -> std::expected< void, lib::kernel_error >
 Attach a typed view descriptor to an existing object.
auto zxfoundation::memory::objects::memory_object_create (scoms::kobject::kobject_type type, u32 owner_domain, scoms::kobject::bobject *parent, u64 range_start, u64 range_length, dgp::isolation::isolation_rights authority_rights, memory_object_policy policy) noexcept -> std::expected< memory_object *, lib::kernel_error >
auto zxfoundation::memory::objects::memory_object_delegate (memory_object_ref source, u32 caller_domain, u32 owner_domain, dgp::isolation::isolation_rights authority_rights) noexcept -> std::expected< memory_object_ref, lib::kernel_error >
auto zxfoundation::memory::objects::memory_object_destroy (memory_object_ref ref) noexcept -> std::expected< void, lib::kernel_error >
auto zxfoundation::memory::objects::memory_object_destroy (u32 id) noexcept -> std::expected< void, lib::kernel_error >
auto zxfoundation::memory::objects::memory_object_detach_view (memory_object_ref ref) noexcept -> std::expected< void, lib::kernel_error >
 Detach the typed view descriptor from an object, leaving it as a pure authority.
auto zxfoundation::memory::objects::memory_object_find (u32 id) noexcept -> memory_object *
auto zxfoundation::memory::objects::memory_object_link (memory_object &object, const memory_object &related) noexcept -> std::expected< void, lib::kernel_error >
auto zxfoundation::memory::objects::memory_object_policy_for (memory_object_ref ref) noexcept -> std::expected< memory_object_policy, lib::kernel_error >
 Recover the policy published by one authority object.
auto zxfoundation::memory::objects::memory_object_ref_of (const memory_object &object) noexcept -> memory_object_ref
auto zxfoundation::memory::objects::memory_object_resolve (memory_object_ref ref) noexcept -> std::expected< memory_object *, lib::kernel_error >
auto zxfoundation::memory::objects::memory_object_resolve_id (u32 id, memory_view_kind expected_kind=memory_view_kind::none) noexcept -> memory_object *
 Resolve by raw SCOMS object id (used by frame back-pointer).
auto zxfoundation::memory::objects::memory_object_update_policy (memory_object_ref storage, const memory_object_policy &policy) noexcept -> std::expected< void, lib::kernel_error >
 Replace the complete policy record on mutable memory authority.
auto zxfoundation::memory::objects::memory_object_update_range (memory_object_ref ref, u64 range_start, u64 range_length) noexcept -> std::expected< void, lib::kernel_error >
auto zxfoundation::memory::objects::memory_objects_init () noexcept -> void
 operator bool () const noexcept
auto operator= (const memory_object &)=delete

Variables

u8 _pad0 [3] {}
u8 _pad_related [3] {}
std::atomic< u32 > active_mappings {0}
dgp::isolation::isolation_rights authority_rights { dgp::isolation::isolation_rights::none}
view_body body {}
void * dataset_extent
 dataset_extent — reserved.
void * device_binding
 device_binding — reserved.
dgp::memory_contract::memory_access dgp_access {dgp::memory_contract::memory_access::none}
dgp::memory_contract::memory_access dgp_access {dgp::memory_contract::memory_access::none}
u64 dgp_generation {0}
u64 dgp_generation {0}
dgp::isolation::isolation_rights dgp_rights { dgp::isolation::isolation_rights::none}
dgp::isolation::isolation_rights dgp_rights { dgp::isolation::isolation_rights::none}
dgp::memory_contract::memory_scope dgp_scope {dgp::memory_contract::memory_scope::private_domain}
dgp::memory_contract::memory_scope dgp_scope {dgp::memory_contract::memory_scope::private_domain}
std::atomic_bool extent_retiring {false}
u32 generation {0}
void * generic {nullptr}
 none — unused, or opaque pointer.
u32 id {scoms::kobject::KOBJECT_ID_INVALID}
dgp::memory_contract::invalidation_scope invalidate {dgp::memory_contract::invalidation_scope::none}
dgp::memory_contract::invalidation_scope invalidate {dgp::memory_contract::invalidation_scope::none}
void * kmem_cache
 kmem_cacheslub::kmem_cache*.
scoms::kobject::bobject ko {}
u64 mapping_generation {0}
u64 mapping_generation {0}
constexpr u32 zxfoundation::memory::objects::MAX_MEMORY_OBJECTS = 8192U
u8 numa_node {0}
u8 numa_node {0}
u32 owner_domain {scoms::kobject::KOBJECT_ID_INVALID}
void * policy_server
 policy_serverpolicy::policy_server*.
u64 range_length {0}
u64 range_start {0}
u32 related_generation {0}
u32 related_id {scoms::kobject::KOBJECT_ID_INVALID}
scoms::kobject::kobject_type related_type {scoms::kobject::kobject_type::none}
void * service_entry
 service_entrysys::service::service_entry*.
u8 storage_key {0}
u8 storage_key {0}
u32 storage_key_generation {0}
u32 storage_key_generation {0}
scoms::kobject::kobject_type type {scoms::kobject::kobject_type::none}
memory_view_kind view_kind {memory_view_kind::none}
void * vm_region
 vm_regionvm::vm_region*.

Files

file  zxfoundation/memory/objects.zcomponent/core.cxxm
file  zxfoundation/memory/objects.zcomponent/core.cxx