Zephyr API Documentation
3.0.0
A Scalable Open Source RTOS
|
|
3.0.0 |
#include <toolchain.h>
#include <stddef.h>
#include <zephyr/types.h>
#include <arch/cpu.h>
#include <irq_offload.h>
#include <timing/types.h>
#include <arch/arch_inlines.h>
Go to the source code of this file.
Typedefs | |
typedef struct z_thread_stack_element | k_thread_stack_t |
Typedef of struct z_thread_stack_element. More... | |
typedef void(* | k_thread_entry_t) (void *p1, void *p2, void *p3) |
Thread entry point function type. More... | |
typedef FUNC_NORETURN void(* | arch_cpustart_t) (void *data) |
Functions | |
static uint32_t | arch_k_cycle_get_32 (void) |
static uint64_t | arch_k_cycle_get_64 (void) |
void | arch_cpu_idle (void) |
Power save idle routine. More... | |
void | arch_cpu_atomic_idle (unsigned int key) |
Atomically re-enable interrupts and enter low power mode. More... | |
void | arch_start_cpu (int cpu_num, k_thread_stack_t *stack, int sz, arch_cpustart_t fn, void *arg) |
Start a numbered CPU on a MP-capable system. More... | |
bool | arch_cpu_active (int cpu_num) |
Return CPU power status. More... | |
static unsigned int | arch_irq_lock (void) |
static void | arch_irq_unlock (unsigned int key) |
static bool | arch_irq_unlocked (unsigned int key) |
void | arch_irq_disable (unsigned int irq) |
void | arch_irq_enable (unsigned int irq) |
int | arch_irq_is_enabled (unsigned int irq) |
int | arch_irq_connect_dynamic (unsigned int irq, unsigned int priority, void(*routine)(const void *parameter), const void *parameter, uint32_t flags) |
unsigned int | arch_irq_allocate (void) |
Arch-specific hook for allocating IRQs. More... | |
void | arch_irq_set_used (unsigned int irq) |
Arch-specific hook for declaring an IRQ being used. More... | |
bool | arch_irq_is_used (unsigned int irq) |
Arch-specific hook for checking if an IRQ is being used already. More... | |
static struct _cpu * | arch_curr_cpu (void) |
void | arch_sched_ipi (void) |
static uintptr_t | arch_syscall_invoke0 (uintptr_t call_id) |
static uintptr_t | arch_syscall_invoke1 (uintptr_t arg1, uintptr_t call_id) |
static uintptr_t | arch_syscall_invoke2 (uintptr_t arg1, uintptr_t arg2, uintptr_t call_id) |
static uintptr_t | arch_syscall_invoke3 (uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t call_id) |
static uintptr_t | arch_syscall_invoke4 (uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t call_id) |
static uintptr_t | arch_syscall_invoke5 (uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5, uintptr_t call_id) |
static uintptr_t | arch_syscall_invoke6 (uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t arg5, uintptr_t arg6, uintptr_t call_id) |
static bool | arch_is_user_context (void) |
int | arch_mem_domain_max_partitions_get (void) |
Get the maximum number of partitions for a memory domain. More... | |
int | arch_buffer_validate (void *addr, size_t size, int write) |
Check memory region permissions. More... | |
size_t | arch_virt_region_align (uintptr_t phys, size_t size) |
FUNC_NORETURN void | arch_user_mode_enter (k_thread_entry_t user_entry, void *p1, void *p2, void *p3) |
FUNC_NORETURN void | arch_syscall_oops (void *ssf) |
Induce a kernel oops that appears to come from a specific location. More... | |
size_t | arch_user_string_nlen (const char *s, size_t maxsize, int *err) |
Safely take the length of a potentially bad string. More... | |
static bool | arch_mem_coherent (void *ptr) |
Detect memory coherence type. More... | |
static void | arch_cohere_stacks (struct k_thread *old_thread, void *old_switch_handle, struct k_thread *new_thread) |
Ensure cache coherence prior to context switch. More... | |
void | arch_gdb_init (void) |
Architecture layer debug start. More... | |
void | arch_gdb_continue (void) |
Continue running program. More... | |
void | arch_gdb_step (void) |
Continue with one step. More... | |
size_t | arch_gdb_reg_readall (struct gdb_ctx *ctx, uint8_t *buf, size_t buflen) |
Read all registers, and outputs as hexadecimal string. More... | |
size_t | arch_gdb_reg_writeall (struct gdb_ctx *ctx, uint8_t *hex, size_t hexlen) |
Take a hexadecimal string and update all registers. More... | |
size_t | arch_gdb_reg_readone (struct gdb_ctx *ctx, uint8_t *buf, size_t buflen, uint32_t regno) |
Read one register, and outputs as hexadecimal string. More... | |
size_t | arch_gdb_reg_writeone (struct gdb_ctx *ctx, uint8_t *hex, size_t hexlen, uint32_t regno) |
Take a hexadecimal string and update one register. More... | |
int | arch_gdb_add_breakpoint (struct gdb_ctx *ctx, uint8_t type, uintptr_t addr, uint32_t kind) |
Add breakpoint or watchpoint. More... | |
int | arch_gdb_remove_breakpoint (struct gdb_ctx *ctx, uint8_t type, uintptr_t addr, uint32_t kind) |
Remove breakpoint or watchpoint. More... | |
void | arch_timing_init (void) |
Initialize the timing subsystem. More... | |
void | arch_timing_start (void) |
Signal the start of the timing information gathering. More... | |
void | arch_timing_stop (void) |
Signal the end of the timing information gathering. More... | |
timing_t | arch_timing_counter_get (void) |
Return timing counter. More... | |
uint64_t | arch_timing_cycles_get (volatile timing_t *const start, volatile timing_t *const end) |
Get number of cycles between start and end . More... | |
uint64_t | arch_timing_freq_get (void) |
Get frequency of counter used (in Hz). More... | |
uint64_t | arch_timing_cycles_to_ns (uint64_t cycles) |
Convert number of cycles into nanoseconds. More... | |
uint64_t | arch_timing_cycles_to_ns_avg (uint64_t cycles, uint32_t count) |
Convert number of cycles into nanoseconds with averaging. More... | |
uint32_t | arch_timing_freq_get_mhz (void) |
Get frequency of counter used (in MHz). More... | |
k_thread_entry_t |
Thread entry point function type.
A thread's entry point function is invoked when the thread starts executing. Up to 3 argument values can be passed to the function.
The thread terminates execution permanently if the entry point function returns. The thread is responsible for releasing any shared resources it may own (such as mutexes and dynamically allocated memory), prior to returning.
p1 | First argument. |
p2 | Second argument. |
p3 | Third argument. |
Typedef of struct z_thread_stack_element.