diff --git a/components/esp_rom/include/esp32c2/rom/tlsf.h b/components/esp_rom/include/esp32c2/rom/tlsf.h deleted file mode 100644 index 347ef5eddd..0000000000 --- a/components/esp_rom/include/esp32c2/rom/tlsf.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ -#pragma once - -#ifdef __cplusplus -extern "C" { -#endif - -/*! - * @brief Set the function to call for filling memory region when - * poisoning is configured. - * - * @param pfunc The callback function to trigger for poisoning - * a memory region. - */ -void tlsf_poison_fill_pfunc_set(void *pfunc); - -/*! - * @brief Set the function to call for checking memory region when - * poisoning is configured. - * - * @param pfunc The callback function to trigger for checking - * the content of a memory region. - */ -void tlsf_poison_check_pfunc_set(void *pfunc); - -#ifdef __cplusplus -} -#endif diff --git a/components/esp_rom/include/esp_rom_tlsf.h b/components/esp_rom/include/esp_rom_tlsf.h new file mode 100644 index 0000000000..0f5e5c138d --- /dev/null +++ b/components/esp_rom/include/esp_rom_tlsf.h @@ -0,0 +1,45 @@ +/* + * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ +#pragma once +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/*! + * Defines the function prototypes for multi_heap_internal_poison_fill_region + * and multi_heap_internal_check_block_poisoning, these two function will + * be registered to the ROM tlsf IMPL through the function tlsf_poison_fill_pfunc_set() + * and tlsf_poison_check_pfunc_set() when the heap poisoning feature is enabled. + */ +typedef void (*poison_fill_pfunc_t)(void *start, size_t size, bool is_free); +typedef bool (*poison_check_pfunc_t)(void *start, size_t size, bool is_free, bool print_errors); + +/*! + * @brief Set the function to call for filling memory region when + * poisoning is configured. + * + * @note Please keep in mind that this function in ROM still accepts void*. + * + * @param pfunc The callback function to trigger for poisoning + * a memory region. + */ +void tlsf_poison_fill_pfunc_set(poison_fill_pfunc_t pfunc); + +/*! + * @brief Set the function to call for checking memory region when + * poisoning is configured. + * + * @param pfunc The callback function to trigger for checking + * the content of a memory region. + */ +void tlsf_poison_check_pfunc_set(poison_check_pfunc_t pfunc); + +#ifdef __cplusplus +} +#endif diff --git a/components/esp_rom/patches/esp_rom_tlsf.c b/components/esp_rom/patches/esp_rom_tlsf.c index 541b9a0b82..088248acce 100644 --- a/components/esp_rom/patches/esp_rom_tlsf.c +++ b/components/esp_rom/patches/esp_rom_tlsf.c @@ -17,7 +17,7 @@ #include #include "esp_rom_caps.h" -#include "rom/tlsf.h" +#include "esp_rom_tlsf.h" /*! * @brief Opaque types for TLSF implementation @@ -164,12 +164,11 @@ static inline __attribute__((__always_inline__)) void mapping_insert(size_t size * defined below * ---------------------------------------------------------------- */ -typedef bool (*poison_check_pfunc_t)(void *start, size_t size, bool is_free, bool print_errors); static poison_check_pfunc_t s_poison_check_region = NULL; -void tlsf_poison_check_pfunc_set(void *pfunc) +void tlsf_poison_check_pfunc_set(poison_check_pfunc_t pfunc) { - s_poison_check_region = (poison_check_pfunc_t)pfunc; + s_poison_check_region = pfunc; } #define tlsf_insist_no_assert(x) { if (!(x)) { status--; } } diff --git a/components/heap/multi_heap_poisoning.c b/components/heap/multi_heap_poisoning.c index 9cb42b95d4..70809f38dc 100644 --- a/components/heap/multi_heap_poisoning.c +++ b/components/heap/multi_heap_poisoning.c @@ -21,15 +21,13 @@ /* Defines compile-time configuration macros */ #include "multi_heap_config.h" -#if !CONFIG_HEAP_TLSF_USE_ROM_IMPL -#include "tlsf.h" -#else +#if CONFIG_HEAP_TLSF_USE_ROM_IMPL /* Header containing the declaration of tlsf_poison_fill_pfunc_set() * and tlsf_poison_check_pfunc_set() used to register callbacks to * fill and check memory region with given patterns in the heap * components. */ -#include "rom/tlsf.h" +#include "esp_rom_tlsf.h" #endif #ifdef MULTI_HEAP_POISONING