Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
coredump.h
Go to the documentation of this file.
1/*
2 * Copyright Meta Platforms, Inc. and its affiliates.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
12
13#ifndef INCLUDE_ZEPHYR_DRIVERS_COREDUMP_H_
14#define INCLUDE_ZEPHYR_DRIVERS_COREDUMP_H_
15
16#include <zephyr/device.h>
17#include <zephyr/sys/slist.h>
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
31
50
58typedef void (*coredump_dump_callback_t)(uintptr_t dump_area, size_t dump_area_size);
59
64
71typedef void (*coredump_device_dump_t)(const struct device *dev);
72
77typedef bool (*coredump_device_register_memory_t)(const struct device *dev,
78 struct coredump_mem_region_node *region);
79
84typedef bool (*coredump_device_unregister_memory_t)(const struct device *dev,
85 struct coredump_mem_region_node *region);
86
91typedef bool (*coredump_device_register_callback_t)(const struct device *dev,
93
115
117
128static inline bool coredump_device_register_memory(const struct device *dev,
129 struct coredump_mem_region_node *region)
130{
131 return DEVICE_API_GET(coredump, dev)->register_memory(dev, region);
132}
133
144static inline bool coredump_device_unregister_memory(const struct device *dev,
145 struct coredump_mem_region_node *region)
146{
147 return DEVICE_API_GET(coredump, dev)->unregister_memory(dev, region);
148}
149
159static inline bool coredump_device_register_callback(const struct device *dev,
161{
162 return DEVICE_API_GET(coredump, dev)->register_callback(dev, callback);
163}
164
168
169#ifdef __cplusplus
170}
171#endif
172
173#endif /* INCLUDE_ZEPHYR_DRIVERS_COREDUMP_H_ */
#define DEVICE_API_GET(_class, _dev)
Expands to the pointer of a device's API for a given class.
Definition device.h:1449
static void coredump(unsigned int reason, const struct arch_esf *esf, struct k_thread *thread)
Perform coredump.
Definition coredump.h:266
void(* coredump_device_dump_t)(const struct device *dev)
Add the device's data into the core dump being generated.
Definition coredump.h:71
bool(* coredump_device_register_memory_t)(const struct device *dev, struct coredump_mem_region_node *region)
Register a memory region to be stored in the core dump.
Definition coredump.h:77
bool(* coredump_device_register_callback_t)(const struct device *dev, coredump_dump_callback_t callback)
Register a callback to be invoked at dump time.
Definition coredump.h:91
bool(* coredump_device_unregister_memory_t)(const struct device *dev, struct coredump_mem_region_node *region)
Unregister a memory region from being stored in the core dump.
Definition coredump.h:84
static bool coredump_device_register_memory(const struct device *dev, struct coredump_mem_region_node *region)
Register a region of memory to be stored in core dump at the time it is generated.
Definition coredump.h:128
void(* coredump_dump_callback_t)(uintptr_t dump_area, size_t dump_area_size)
Callback that occurs at dump time, data copied into dump_area will be included in the dump that is ge...
Definition coredump.h:58
static bool coredump_device_register_callback(const struct device *dev, coredump_dump_callback_t callback)
Register a callback to be invoked at dump time.
Definition coredump.h:159
static bool coredump_device_unregister_memory(const struct device *dev, struct coredump_mem_region_node *region)
Unregister a region of memory to be stored in core dump at the time it is generated.
Definition coredump.h:144
struct _snode sys_snode_t
Single-linked list node structure.
Definition slist.h:44
Header file for the single-linked list API.
#define bool
Definition stdbool.h:13
__UINTPTR_TYPE__ uintptr_t
Definition stdint.h:105
<span class="mlabel">Driver Operations</span> Coredump pseudo-device driver operations
Definition coredump.h:97
coredump_device_register_callback_t register_callback
<span class="op-badge op-req" title="This operation MUST be implemented by the driver....
Definition coredump.h:113
coredump_device_register_memory_t register_memory
<span class="op-badge op-req" title="This operation MUST be implemented by the driver....
Definition coredump.h:105
coredump_device_unregister_memory_t unregister_memory
<span class="op-badge op-req" title="This operation MUST be implemented by the driver....
Definition coredump.h:109
coredump_device_dump_t dump
<span class="op-badge op-req" title="This operation MUST be implemented by the driver....
Definition coredump.h:101
Structure describing a region in memory that may be stored in core dump at the time it is generated.
Definition coredump.h:40
sys_snode_t node
Node of single-linked list, do not modify.
Definition coredump.h:42
size_t size
Size of memory region.
Definition coredump.h:48
uintptr_t start
Address of start of memory region.
Definition coredump.h:45
Runtime device structure (in ROM) per driver instance.
Definition device.h:513