Zephyr Project API 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
Architecture-specific core dump APIs

Functions

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.
uintptr_t arch_coredump_stack_ptr_get (const struct k_thread *thread)
 Get the stack pointer of the thread.
void arch_coredump_freeze_other_cpus (void)
 Freeze every other online CPU and capture its live register state.
void arch_coredump_thaw_other_cpus (void)
 Release every CPU frozen by arch_coredump_freeze_other_cpus().
void arch_coredump_cpu_snapshot_dump (unsigned int cpu)
 Emit a live register snapshot captured for the given CPU index.
void arch_coredump_priv_stack_dump (struct k_thread *thread)
 Architecture-specific handling of dumping privileged stack.

Detailed Description

Function Documentation

◆ arch_coredump_cpu_snapshot_dump()

void arch_coredump_cpu_snapshot_dump ( unsigned int cpu)

#include <kernel_arch_interface.h>

Emit a live register snapshot captured for the given CPU index.

No-op if that CPU was never successfully frozen (self, never booted, or timed out). Only valid to call between arch_coredump_freeze_other_cpus() and arch_coredump_thaw_other_cpus().

Parameters
cpuCPU index (0..CONFIG_MP_MAX_NUM_CPUS-1)

◆ arch_coredump_freeze_other_cpus()

void arch_coredump_freeze_other_cpus ( void )

#include <kernel_arch_interface.h>

Freeze every other online CPU and capture its live register state.

Sends an architecture-specific IPI to every CPU other than the caller and waits (with a bounded timeout) for each to report a captured snapshot. A CPU that doesn't respond in time (never booted, or busy with IRQs masked) is simply skipped – this must never block indefinitely.

Must be paired with a later call to arch_coredump_thaw_other_cpus() so frozen CPUs resume; must not be called from more than one CPU at a time.

◆ arch_coredump_info_dump()

void arch_coredump_info_dump ( const struct arch_esf * esf)

#include <kernel_arch_interface.h>

Architecture-specific handling during coredump.

This dumps architecture-specific information during coredump.

Parameters
esfException Stack Frame (arch-specific)

◆ arch_coredump_priv_stack_dump()

void arch_coredump_priv_stack_dump ( struct k_thread * thread)

#include <kernel_arch_interface.h>

Architecture-specific handling of dumping privileged stack.

This dumps the architecture-specific privileged stack during coredump.

Parameters
threadPointer to thread object

◆ arch_coredump_stack_ptr_get()

uintptr_t arch_coredump_stack_ptr_get ( const struct k_thread * thread)

#include <kernel_arch_interface.h>

Get the stack pointer of the thread.

◆ arch_coredump_tgt_code_get()

uint16_t arch_coredump_tgt_code_get ( void )

#include <kernel_arch_interface.h>

Get the target code specified by the architecture.

◆ arch_coredump_thaw_other_cpus()

void arch_coredump_thaw_other_cpus ( void )

#include <kernel_arch_interface.h>

Release every CPU frozen by arch_coredump_freeze_other_cpus().