|
Zephyr Project API 4.0.0
A Scalable Open Source RTOS
|
#include <zephyr/sys/util.h>#include <zephyr/toolchain.h>#include <zephyr/kernel/internal/mm.h>#include <stdint.h>#include <stddef.h>#include <inttypes.h>Go to the source code of this file.
Macros | |
Caching mode definitions. | |
These are mutually exclusive. | |
| #define | K_MEM_CACHE_NONE 2 |
| No caching. | |
| #define | K_MEM_CACHE_WT 1 |
| Write-through caching. | |
| #define | K_MEM_CACHE_WB 0 |
| Full write-back caching. | |
| #define | K_MEM_CACHE_MASK (BIT(3) - 1) |
| Reserved bits for cache modes in k_map() flags argument. | |
Region permission attributes. | |
Default is read-only, no user, no exec | |
| #define | K_MEM_PERM_RW BIT(3) |
| Region will have read/write access (and not read-only) | |
| #define | K_MEM_PERM_EXEC BIT(4) |
| Region will be executable (normally forbidden) | |
| #define | K_MEM_PERM_USER BIT(5) |
| Region will be accessible to user mode (normally supervisor-only) | |
Region mapping behaviour attributes | |
| #define | K_MEM_DIRECT_MAP BIT(6) |
| Region will be mapped to 1:1 virtual and physical address. | |
k_mem_map() control flags | |
| #define | K_MEM_MAP_UNINIT BIT(16) |
| The mapped region is not guaranteed to be zeroed. | |
| #define | K_MEM_MAP_LOCK BIT(17) |
| Region will be pinned in memory and never paged. | |
| #define | K_MEM_MAP_UNPAGED BIT(18) |
| Region will be unpaged i.e. | |
Functions | |
| size_t | k_mem_free_get (void) |
| Return the amount of free memory available. | |
| static void * | k_mem_map (size_t size, uint32_t flags) |
| Map anonymous memory into Zephyr's address space. | |
| static void | k_mem_unmap (void *addr, size_t size) |
| Un-map mapped memory. | |
| int | k_mem_update_flags (void *addr, size_t size, uint32_t flags) |
| Modify memory mapping attribute flags. | |
| size_t | k_mem_region_align (uintptr_t *aligned_addr, size_t *aligned_size, uintptr_t addr, size_t size, size_t align) |
| Given an arbitrary region, provide a aligned region that covers it. | |