Zephyr Project API 3.7.0
A Scalable Open Source RTOS
|
#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. | |
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. | |