PebbleOS v4.45.0-162-g88634f016
Loading...
Searching...
No Matches

Outputs of core dumps. More...

Data Structures

struct  pbl_coredump_backend_api
 Backend operations. More...
 
struct  pbl_coredump_backend
 Backend. More...
 

Macros

#define PBL_COREDUMP_BACKEND_DEFINE(_name, _api)
 Define a backend.
 

Detailed Description

Outputs of core dumps.

A backend is defined with PBL_COREDUMP_BACKEND_DEFINE, and every backend gets every dump. A backend that fails, or that has no room left, stops getting the dump without affecting the others. The core only knows backends through this interface.

init, start, write, space and end run while the system is crashing, so they must not use OS services. The stored_* operations run in thread context, and backends that only output a dump, rather than keep it, leave them NULL.


Data Structure Documentation

◆ pbl_coredump_backend

struct pbl_coredump_backend

Backend.

Data Fields
const struct pbl_coredump_backend_api * api Operations.
const char * name Name.

Macro Definition Documentation

◆ PBL_COREDUMP_BACKEND_DEFINE

#define PBL_COREDUMP_BACKEND_DEFINE (   _name,
  _api 
)
Value:
static const struct pbl_coredump_backend _pbl_coredump_backend_##_name PBL_USED PBL_ALIGNED(4) \
PBL_SECTION(".pbl_coredump_backends." #_name) = {.name = #_name, .api = &(_api)}
const char * name
Name.
Definition backend.h:90
Backend.
Definition backend.h:88
#define PBL_USED
Keep the symbol even if it appears unreferenced.
Definition compiler.h:90
#define PBL_ALIGNED(bytes)
Align the symbol or type.
Definition compiler.h:87
#define PBL_SECTION(name)
Place the symbol in a linker section.
Definition compiler.h:126

Define a backend.

Parameters
_nameBackend name, also its identifier.
_apiBackend operations.