26#ifndef ZEPHYR_INCLUDE_SYS_ARCH_INTERFACE_H_ 
   27#define ZEPHYR_INCLUDE_SYS_ARCH_INTERFACE_H_ 
   33#include <zephyr/arch/cpu.h> 
  323                             void (*routine)(
const void *parameter),
 
  370#ifndef CONFIG_PCIE_CONTROLLER 
  418#ifdef CONFIG_IRQ_OFFLOAD 
  500#ifdef CONFIG_USERSPACE 
  637#ifdef CONFIG_ARCH_MEM_DOMAIN_DATA 
  662#ifdef CONFIG_ARCH_MEM_DOMAIN_SYNCHRONOUS_API 
  715int arch_mem_domain_partition_remove(
struct k_mem_domain *domain,
 
  730int arch_mem_domain_partition_add(
struct k_mem_domain *domain,
 
  798                                        void *p1, 
void *p2, 
void *p3);
 
  845#ifndef CONFIG_ARCH_HAS_COHERENCE 
  893#ifndef CONFIG_KERNEL_COHERENCE 
  895                                      void *old_switch_handle,
 
  898        ARG_UNUSED(old_thread);
 
  899        ARG_UNUSED(old_switch_handle);
 
  900        ARG_UNUSED(new_thread);
 
 1033#ifdef CONFIG_TIMING_FUNCTIONS 
 1158#ifdef CONFIG_PCIE_MSI_MULTI_VECTOR 
 1172uint8_t arch_pcie_msi_vectors_allocate(
unsigned int priority,
 
 1187                                  void (*routine)(
const void *parameter),
 
 1188                                  const void *parameter,
 
struct z_thread_stack_element k_thread_stack_t
Typedef of struct z_thread_stack_element.
Definition: arch_interface.h:44
 
void arch_spin_relax(void)
Perform architecture specific processing within spin loops.
 
void(* k_thread_entry_t)(void *p1, void *p2, void *p3)
Thread entry point function type.
Definition: arch_interface.h:46
 
irp nz macro MOVR cc s mov cc s endm endr irp aw macro LDR aa s
Definition: asm-macro-32-bit-gnu.h:17
 
static struct k_thread thread[2]
Definition: atomic.c:26
 
ZTEST_BMEM int count
Definition: main.c:33
 
size_t arch_gdb_reg_writeall(struct gdb_ctx *ctx, uint8_t *hex, size_t hexlen)
Take a hexadecimal string and update all registers.
 
void arch_gdb_init(void)
Architecture layer debug start.
 
void arch_gdb_step(void)
Continue with one step.
 
size_t arch_gdb_reg_readall(struct gdb_ctx *ctx, uint8_t *buf, size_t buflen)
Read all registers, and outputs as hexadecimal string.
 
int arch_gdb_remove_breakpoint(struct gdb_ctx *ctx, uint8_t type, uintptr_t addr, uint32_t kind)
Remove breakpoint or watchpoint.
 
void arch_gdb_continue(void)
Continue running program.
 
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.
 
int arch_gdb_add_breakpoint(struct gdb_ctx *ctx, uint8_t type, uintptr_t addr, uint32_t kind)
Add breakpoint or watchpoint.
 
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.
 
static bool arch_irq_unlocked(unsigned int key)
 
void arch_irq_disable(unsigned int irq)
 
static unsigned int arch_irq_lock(void)
 
int arch_irq_is_enabled(unsigned int irq)
 
bool arch_irq_is_used(unsigned int irq)
Arch-specific hook for checking if an IRQ is being used already.
 
void arch_irq_set_used(unsigned int irq)
Arch-specific hook for declaring an IRQ being used.
 
void arch_irq_enable(unsigned int irq)
 
static void arch_irq_unlock(unsigned int key)
 
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.
 
void arch_cpu_atomic_idle(unsigned int key)
Atomically re-enable interrupts and enter low power mode.
 
void arch_cpu_idle(void)
Power save idle routine.
 
static unsigned int arch_num_cpus(void)
Returns the number of CPUs.
 
bool arch_cpu_active(int cpu_num)
Return CPU power status.
 
FUNC_NORETURN void(* arch_cpustart_t)(void *data)
Definition: arch_interface.h:218
 
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.
 
static struct _cpu * arch_curr_cpu(void)
 
static uint32_t arch_proc_id(void)
Processor hardware ID.
 
void arch_sched_ipi(void)
 
uint64_t arch_timing_freq_get(void)
Get frequency of counter used (in Hz).
 
uint32_t arch_timing_freq_get_mhz(void)
Get frequency of counter used (in MHz).
 
uint64_t arch_timing_cycles_get(volatile timing_t *const start, volatile timing_t *const end)
Get number of cycles between start and end.
 
void arch_timing_stop(void)
Signal the end of the timing information gathering.
 
void arch_timing_init(void)
Initialize the timing subsystem.
 
uint64_t arch_timing_cycles_to_ns(uint64_t cycles)
Convert number of cycles into nanoseconds.
 
uint64_t arch_timing_cycles_to_ns_avg(uint64_t cycles, uint32_t count)
Convert number of cycles into nanoseconds with averaging.
 
static uint32_t arch_k_cycle_get_32(void)
 
static uint64_t arch_k_cycle_get_64(void)
 
timing_t arch_timing_counter_get(void)
Return timing counter.
 
void arch_timing_start(void)
Signal the start of the timing information gathering.
 
static uintptr_t arch_syscall_invoke4(uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4, uintptr_t call_id)
 
int arch_buffer_validate(void *addr, size_t size, int write)
Check memory region permissions.
 
size_t arch_user_string_nlen(const char *s, size_t maxsize, int *err)
Safely take the length of a potentially bad string.
 
static uintptr_t arch_syscall_invoke2(uintptr_t arg1, uintptr_t arg2, uintptr_t call_id)
 
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.
Definition: arch_interface.h:894
 
FUNC_NORETURN void arch_user_mode_enter(k_thread_entry_t user_entry, void *p1, void *p2, void *p3)
 
size_t arch_virt_region_align(uintptr_t phys, size_t size)
 
static uintptr_t arch_syscall_invoke1(uintptr_t arg1, uintptr_t call_id)
 
static uintptr_t arch_syscall_invoke0(uintptr_t call_id)
 
int arch_mem_domain_max_partitions_get(void)
Get the maximum number of partitions for a memory domain.
 
static bool arch_is_user_context(void)
 
static bool arch_mem_coherent(void *ptr)
Detect memory coherence type.
Definition: arch_interface.h:846
 
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_invoke3(uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, 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)
 
FUNC_NORETURN void arch_syscall_oops(void *ssf)
Induce a kernel oops that appears to come from a specific location.
 
uint64_t timing_t
Definition: types.h:10
 
void(* irq_offload_routine_t)(const void *parameter)
Definition: irq_offload.h:18
 
flags
Definition: parser.h:96
 
uint32_t hex
Definition: printk.c:118
 
void * ptr
Definition: printk.c:120
 
char stack[2048]
Definition: main.c:22
 
static k_spinlock_key_t key
Definition: spinlock_error_case.c:15
 
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
 
__UINT64_TYPE__ uint64_t
Definition: stdint.h:91
 
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
 
__UINTPTR_TYPE__ uintptr_t
Definition: stdint.h:105
 
Memory Domain.
Definition: mem_domain.h:80
 
static fdata_t data[2]
Definition: test_fifo_contexts.c:15