/* * Copyright (c) 2020 Intel Corporation. * * SPDX-License-Identifier: Apache-2.0 */ #ifndef DEBUG_COREDUMP_INTERNAL_H_ #define DEBUG_COREDUMP_INTERNAL_H_ #include /** * @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_ */