Zephyr Project API 3.7.0
A Scalable Open Source RTOS
|
Internal kernel APIs implemented at the architecture layer. More...
Go to the source code of this file.
Enumerations | |
enum | arch_page_location { ARCH_PAGE_LOCATION_PAGED_OUT , ARCH_PAGE_LOCATION_PAGED_IN , ARCH_PAGE_LOCATION_BAD } |
Status of a particular page location. More... | |
Functions | |
void | arch_busy_wait (uint32_t usec_to_wait) |
Architecture-specific implementation of busy-waiting. | |
void | arch_new_thread (struct k_thread *thread, k_thread_stack_t *stack, char *stack_ptr, k_thread_entry_t entry, void *p1, void *p2, void *p3) |
Handle arch-specific logic for setting up new threads. | |
static void | arch_switch (void *switch_to, void **switched_from) |
Cooperative context switch primitive. | |
void | arch_switch_to_main_thread (struct k_thread *main_thread, char *stack_ptr, k_thread_entry_t _main) |
Custom logic for entering main thread context at early boot. | |
int | arch_float_disable (struct k_thread *thread) |
Disable floating point context preservation. | |
int | arch_float_enable (struct k_thread *thread, unsigned int options) |
Enable floating point context preservation. | |
FUNC_NORETURN void | arch_system_halt (unsigned int reason) |
Halt the system, optionally propagating a reason code. | |
static bool | arch_is_in_isr (void) |
Test if the current context is in interrupt context. | |
void | arch_mem_map (void *virt, uintptr_t phys, size_t size, uint32_t flags) |
Map physical memory into the virtual address space. | |
void | arch_mem_unmap (void *addr, size_t size) |
Remove mappings for a provided virtual address range. | |
int | arch_page_phys_get (void *virt, uintptr_t *phys) |
Get the mapped physical memory address from virtual address. | |
void | arch_reserved_pages_update (void) |
Update page frame database with reserved pages. | |
void | arch_mem_page_out (void *addr, uintptr_t location) |
Update all page tables for a paged-out data page. | |
void | arch_mem_page_in (void *addr, uintptr_t phys) |
Update all page tables for a paged-in data page. | |
void | arch_mem_scratch (uintptr_t phys) |
Update current page tables for a temporary mapping. | |
enum arch_page_location | arch_page_location_get (void *addr, uintptr_t *location) |
Fetch location information about a page at a particular address. | |
uintptr_t | arch_page_info_get (void *addr, uintptr_t *location, bool clear_accessed) |
Retrieve page characteristics from the page table(s) | |
int | arch_printk_char_out (int c) |
Early boot console output hook. | |
static void | arch_kernel_init (void) |
Architecture-specific kernel initialization hook. | |
static void | arch_nop (void) |
Do nothing and return. | |
void | arch_coredump_info_dump (const struct arch_esf *esf) |
Architecture-specific handling during coredump. | |
uint16_t | arch_coredump_tgt_code_get (void) |
Get the target code specified by the architecture. | |
size_t | arch_tls_stack_setup (struct k_thread *new_thread, char *stack_ptr) |
Setup Architecture-specific TLS area in stack. | |
Internal kernel APIs implemented at the architecture layer.
Not all architecture-specific defines are here, APIs that are used by public functions and macros are defined in include/zephyr/arch/arch_interface.h.
For all inline functions prototyped here, the implementation is expected to be provided by arch/ARCH/include/kernel_arch_func.h