esp-idf/components/heap/tlsf_platform.h
Guillaume Souchere 3737bf8322 heap: Remove TLSF related files and replace them with the tlsf submodule
As the tlsf implementation is a fork from https://github.com/mattconte/tlsf,
the sources are moved to a separate repository and used as a submodule in the esp-idf instead.

In this commit:
- Removing TLSF related files and using tlsf submodule instead.

- Adding components/heap/tlsf_platform.h header gathering all IDF specifics.

- The multi_heap_poisoning.c provides the declaration of the
function block_absorb_post_hook() definied weak in the TLSF repository.

- The tlsf_platform.h includes the tlsf_common.h file after the definition
of FL_INDEX_MAX_PLATFORM macro to make sure that this macro will be available
in tlsf_common.h without having to include tlaf_platform.h from IDF in the
tlsf_common.h header from the TLSF repository.

- Add missing include from tlsf_block_functions.h in the multi_heap.c file.
Change related to the changes made in TLSF repository (tlsf_block_functions.h
no longer included in tlsf.h)
2022-08-02 12:55:31 +02:00

50 lines
1.4 KiB
C

/*
* SPDX-FileCopyrightText: 2017-2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#include <stddef.h>
#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef ESP_PLATFORM
#include "soc/soc.h"
#if !CONFIG_SPIRAM
#define TLSF_MAX_POOL_SIZE (SOC_DIRAM_DRAM_HIGH - SOC_DIRAM_DRAM_LOW)
#else
#define TLSF_MAX_POOL_SIZE SOC_EXTRAM_DATA_SIZE
#endif
#endif
#if (TLSF_MAX_POOL_SIZE <= (256 * 1024))
#define FL_INDEX_MAX_PLATFORM 18 //Each pool can have up 256KB
#elif (TLSF_MAX_POOL_SIZE <= (512 * 1024))
#define FL_INDEX_MAX_PLATFORM 19 //Each pool can have up 512KB
#elif (TLSF_MAX_POOL_SIZE <= (1 * 1024 * 1024))
#define FL_INDEX_MAX_PLATFORM 20 //Each pool can have up 1MB
#elif (TLSF_MAX_POOL_SIZE <= (2 * 1024 * 1024))
#define FL_INDEX_MAX_PLATFORM 21 //Each pool can have up 2MB
#elif (TLSF_MAX_POOL_SIZE <= (4 * 1024 * 1024))
#define FL_INDEX_MAX_PLATFORM 22 //Each pool can have up 4MB
#elif (TLSF_MAX_POOL_SIZE <= (8 * 1024 * 1024))
#define FL_INDEX_MAX_PLATFORM 23 //Each pool can have up 8MB
#elif (TLSF_MAX_POOL_SIZE <= (16 * 1024 * 1024))
#define FL_INDEX_MAX_PLATFORM 24 //Each pool can have up 16MB
#else
#error "Higher TLSF pool sizes should be added for this new config"
#endif
/* Include from the TLSF submodule to force TLSF_INDEX_MAX_PLATFORM to be defined
* when the TLSF repository is compiled in the IDF environment. */
#include "tlsf_common.h"
#ifdef __cplusplus
}
#endif