blob: 1611fa76c1f8ee47e899c611fa77e7072d18deac [file] [log] [blame]
/*
* 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_ */