Zephyr API Documentation 4.0.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
demand_paging.h File Reference
#include <zephyr/kernel/mm.h>
#include <zephyr/sys/util.h>
#include <zephyr/toolchain.h>
#include <stdint.h>
#include <stddef.h>
#include <inttypes.h>
#include <zephyr/sys/__assert.h>
#include <zephyr/syscalls/demand_paging.h>

Go to the source code of this file.

Data Structures

struct  k_mem_paging_stats_t
 Paging Statistics. More...
 
struct  k_mem_paging_histogram_t
 Paging Statistics Histograms. More...
 

Functions

int k_mem_page_out (void *addr, size_t size)
 Evict a page-aligned virtual memory region to the backing store.
 
void k_mem_page_in (void *addr, size_t size)
 Load a virtual data region into memory.
 
void k_mem_pin (void *addr, size_t size)
 Pin an aligned virtual data region, paging in as necessary.
 
void k_mem_unpin (void *addr, size_t size)
 Un-pin an aligned virtual data region.
 
void k_mem_paging_stats_get (struct k_mem_paging_stats_t *stats)
 Get the paging statistics since system startup.
 
void k_mem_paging_thread_stats_get (struct k_thread *thread, struct k_mem_paging_stats_t *stats)
 Get the paging statistics since system startup for a thread.
 
void k_mem_paging_histogram_eviction_get (struct k_mem_paging_histogram_t *hist)
 Get the eviction timing histogram.
 
void k_mem_paging_histogram_backing_store_page_in_get (struct k_mem_paging_histogram_t *hist)
 Get the backing store page-in timing histogram.
 
void k_mem_paging_histogram_backing_store_page_out_get (struct k_mem_paging_histogram_t *hist)
 Get the backing store page-out timing histogram.
 
void k_mem_paging_eviction_add (struct k_mem_page_frame *pf)
 Submit a page frame for eviction candidate tracking.
 
void k_mem_paging_eviction_remove (struct k_mem_page_frame *pf)
 Remove a page frame from potential eviction candidates.
 
void k_mem_paging_eviction_accessed (uintptr_t phys)
 Process a page frame as being newly accessed.
 
struct k_mem_page_frame * k_mem_paging_eviction_select (bool *dirty)
 Select a page frame for eviction.
 
void k_mem_paging_eviction_init (void)
 Initialization function.
 
int k_mem_paging_backing_store_location_get (struct k_mem_page_frame *pf, uintptr_t *location, bool page_fault)
 Reserve or fetch a storage location for a data page loaded into a page frame.
 
void k_mem_paging_backing_store_location_free (uintptr_t location)
 Free a backing store location.
 
int k_mem_paging_backing_store_location_query (void *addr, uintptr_t *location)
 Obtain persistent location token for on-demand content.
 
void k_mem_paging_backing_store_page_out (uintptr_t location)
 Copy a data page from K_MEM_SCRATCH_PAGE to the specified location.
 
void k_mem_paging_backing_store_page_in (uintptr_t location)
 Copy a data page from the provided location to K_MEM_SCRATCH_PAGE.
 
void k_mem_paging_backing_store_page_finalize (struct k_mem_page_frame *pf, uintptr_t location)
 Update internal accounting after a page-in.
 
void k_mem_paging_backing_store_init (void)
 Backing store initialization function.