diff options
author | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2019-04-01 02:14:42 +0200 |
---|---|---|
committer | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2019-05-01 14:41:47 +0200 |
commit | be414e4476371567a824099767b6c91a0123d626 (patch) | |
tree | d7e945d5f1ae39c6cba37038940f7db5a6c85391 /thirdparty/libwebsockets/core/alloc.c | |
parent | 3cfab06080806f0ea9984e8914f7cd3279a0fa79 (diff) | |
download | redot-engine-be414e4476371567a824099767b6c91a0123d626.tar.gz |
Revert "Update libwebsockets to 3.1 (plus UWP patch)"
This reverts commit 90210c48627692d281554d6185b5db17a86c852a.
Diffstat (limited to 'thirdparty/libwebsockets/core/alloc.c')
-rw-r--r-- | thirdparty/libwebsockets/core/alloc.c | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/thirdparty/libwebsockets/core/alloc.c b/thirdparty/libwebsockets/core/alloc.c new file mode 100644 index 0000000000..f169fc3767 --- /dev/null +++ b/thirdparty/libwebsockets/core/alloc.c @@ -0,0 +1,92 @@ +#include "core/private.h" + +#if defined(LWS_PLAT_OPTEE) + +#define TEE_USER_MEM_HINT_NO_FILL_ZERO 0x80000000 + +void *__attribute__((weak)) + TEE_Malloc(uint32_t size, uint32_t hint) +{ + return NULL; +} +void *__attribute__((weak)) + TEE_Realloc(void *buffer, uint32_t newSize) +{ + return NULL; +} +void __attribute__((weak)) + TEE_Free(void *buffer) +{ +} + +void *lws_realloc(void *ptr, size_t size, const char *reason) +{ + return TEE_Realloc(ptr, size); +} + +void *lws_malloc(size_t size, const char *reason) +{ + return TEE_Malloc(size, TEE_USER_MEM_HINT_NO_FILL_ZERO); +} + +void lws_free(void *p) +{ + TEE_Free(p); +} + +void *lws_zalloc(size_t size, const char *reason) +{ + void *ptr = TEE_Malloc(size, TEE_USER_MEM_HINT_NO_FILL_ZERO); + if (ptr) + memset(ptr, 0, size); + return ptr; +} + +void lws_set_allocator(void *(*cb)(void *ptr, size_t size, const char *reason)) +{ + (void)cb; +} +#else + +static void *_realloc(void *ptr, size_t size, const char *reason) +{ + if (size) { +#if defined(LWS_WITH_ESP32) + lwsl_notice("%s: size %lu: %s (free heap %d)\n", __func__, + (unsigned long)size, reason, (unsigned int)esp_get_free_heap_size() - (int)size); +#else + lwsl_debug("%s: size %lu: %s\n", __func__, + (unsigned long)size, reason); +#endif +#if defined(LWS_PLAT_OPTEE) + return (void *)TEE_Realloc(ptr, size); +#else + return (void *)realloc(ptr, size); +#endif + } + if (ptr) + free(ptr); + + return NULL; +} + +void *(*_lws_realloc)(void *ptr, size_t size, const char *reason) = _realloc; + +void *lws_realloc(void *ptr, size_t size, const char *reason) +{ + return _lws_realloc(ptr, size, reason); +} + +void *lws_zalloc(size_t size, const char *reason) +{ + void *ptr = _lws_realloc(NULL, size, reason); + if (ptr) + memset(ptr, 0, size); + return ptr; +} + +void lws_set_allocator(void *(*cb)(void *ptr, size_t size, const char *reason)) +{ + _lws_realloc = cb; +} +#endif |