Просмотр исходного кода

Adds a Kconfig option for mbedtls' MBEDTLS_PLATFORM_MEMORY define. This makes it possible to override the mbedtls allocator with your own.

Merges https://github.com/espressif/esp-idf/pull/2237
Jason von Nieda 7 лет назад
Родитель
Сommit
d7a17ac941
2 измененных файлов с 19 добавлено и 1 удалено
  1. 16 0
      components/mbedtls/Kconfig
  2. 3 1
      components/mbedtls/port/include/mbedtls/esp_config.h

+ 16 - 0
components/mbedtls/Kconfig

@@ -1,5 +1,21 @@
 menu "mbedTLS"
 menu "mbedTLS"
 
 
+config MBEDTLS_PLATFORM_MEMORY
+   bool "Enable custom mbedTLS memory allocation layer."
+   default n
+   help
+      If this option is disabled, mbed TLS uses the default system
+      calloc() and free() functions.
+
+      If this option is enabled, the mbed TLS config macro
+      MBEDTLS_PLATFORM_MEMORY will be defined. The function
+      mbedtls_platform_set_calloc_free() must be called at
+      runtime to provide custom calloc() and free() function
+      pointers for use by mbedTLS.
+
+      This option allows fine-grained control over how mbedTLS
+      allocates heap memory.
+
 config MBEDTLS_SSL_MAX_CONTENT_LEN
 config MBEDTLS_SSL_MAX_CONTENT_LEN
     int "TLS maximum message content length"
     int "TLS maximum message content length"
     default 16384
     default 16384

+ 3 - 1
components/mbedtls/port/include/mbedtls/esp_config.h

@@ -114,7 +114,9 @@
  *
  *
  * Enable this layer to allow use of alternative memory allocators.
  * Enable this layer to allow use of alternative memory allocators.
  */
  */
-//#define MBEDTLS_PLATFORM_MEMORY
+#ifdef CONFIG_MBEDTLS_PLATFORM_MEMORY
+#define MBEDTLS_PLATFORM_MEMORY
+#endif
 
 
 /**
 /**
  * \def MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
  * \def MBEDTLS_PLATFORM_NO_STD_FUNCTIONS