75 lines
1.6 KiB
C
75 lines
1.6 KiB
C
/*
|
|
* Copyright (c) 2020 Intel Corporation.
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#ifndef DEBUG_COREDUMP_INTERNAL_H_
|
|
#define DEBUG_COREDUMP_INTERNAL_H_
|
|
|
|
#include <toolchain.h>
|
|
|
|
/**
|
|
* @cond INTERNAL_HIDDEN
|
|
*
|
|
* These are for internal use only, so skip these in
|
|
* public documentation.
|
|
*/
|
|
|
|
struct z_coredump_memory_region_t {
|
|
uintptr_t start;
|
|
uintptr_t end;
|
|
};
|
|
|
|
extern struct z_coredump_memory_region_t z_coredump_memory_regions[];
|
|
|
|
/**
|
|
* @brief Mark the start of coredump
|
|
*
|
|
* This sets up coredump subsys so coredump can be commenced.
|
|
*
|
|
* For example, backend needs to be initialized before any
|
|
* output can be stored.
|
|
*/
|
|
void z_coredump_start(void);
|
|
|
|
/**
|
|
* @brief Mark the end of coredump
|
|
*
|
|
* This tells the coredump subsys to finalize the coredump
|
|
* session.
|
|
*
|
|
* For example, backend may need to flush the output.
|
|
*/
|
|
void z_coredump_end(void);
|
|
|
|
/**
|
|
* @brief Signal to coredump subsys there is an error.
|
|
*/
|
|
void z_coredump_error(void);
|
|
|
|
typedef void (*z_coredump_backend_start_t)(void);
|
|
typedef void (*z_coredump_backend_end_t)(void);
|
|
typedef void (*z_coredump_backend_error_t)(void);
|
|
typedef int (*z_coredump_backend_buffer_output_t)(uint8_t *buf, size_t buflen);
|
|
|
|
struct z_coredump_backend_api {
|
|
/* Signal to backend of the start of coredump. */
|
|
z_coredump_backend_start_t start;
|
|
|
|
/* Signal to backend of the end of coredump. */
|
|
z_coredump_backend_end_t end;
|
|
|
|
/* Signal to backend an error has been encountered. */
|
|
z_coredump_backend_error_t error;
|
|
|
|
/* Raw buffer output */
|
|
z_coredump_backend_buffer_output_t buffer_output;
|
|
};
|
|
|
|
/**
|
|
* @endcond
|
|
*/
|
|
|
|
#endif /* DEBUG_COREDUMP_INTERNAL_H_ */
|