Skip to content

Commit e794f93

Browse files
Marek Matejmarekmatej
authored andcommitted
zephyr: port: Heap adapter
* fix typo in SPIRAM config * make SMH allocators inline Signed-off-by: Marek Matej <[email protected]>
1 parent 38bd803 commit e794f93

File tree

1 file changed

+54
-31
lines changed

1 file changed

+54
-31
lines changed

zephyr/port/include/esp_heap_adapter.h

Lines changed: 54 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
#pragma once
88

9+
#include <string.h>
910
#include <zephyr/multi_heap/shared_multi_heap.h>
1011

1112
/* Select heap to be used for WiFi adapter and WPA supplicant */
@@ -20,40 +21,51 @@
2021
#define os_wpa_calloc_func(_nmemb, _size) k_calloc(_nmemb, _size)
2122
#define os_wpa_free_func(_mem) k_free(_mem)
2223

23-
#elif defined(CONFIG_ESP_WIFI_WIFI_SPIRAM)
24-
25-
#define esp_wifi_malloc_func(_size) \
26-
shared_multi_heap_aligned_alloc(SMH_REG_ATTR_EXTERNAL, 16, _size)
27-
#define esp_wifi_calloc_func(_nmemb, _size) \
28-
{ \
29-
void *p; \
30-
p = shared_multi_heap_aligned_alloc(SMH_REG_ATTR_EXTERNAL, 16, _nmemb * _size); \
31-
if (p) { \
32-
memset(p, 0, _nmemb * _size); \
33-
} \
34-
return p; \
24+
#elif defined(CONFIG_ESP_WIFI_HEAP_SPIRAM)
25+
26+
static inline void* esp_wifi_malloc_func(size_t _size)
27+
{
28+
return shared_multi_heap_aligned_alloc(SMH_REG_ATTR_EXTERNAL, 16, _size);
29+
}
30+
31+
static inline void* esp_wifi_calloc_func(size_t _nmemb, size_t _size)
32+
{
33+
void *p = shared_multi_heap_aligned_alloc(SMH_REG_ATTR_EXTERNAL, 16, _nmemb * _size);
34+
if (p) {
35+
memset(p, 0, _nmemb * _size);
3536
}
36-
#define esp_wifi_free_func(_mem) shared_multi_heap_free(_mem)
37-
38-
#define os_wpa_malloc_func(_size) shared_multi_heap_aligned_alloc(SMH_REG_ATTR_EXTERNAL, 16, _size)
39-
#define os_wpa_realloc_func(_ptr, _size) \
40-
{ void *p; \
41-
if (_ptr) { \
42-
shared_multi_heap_free(_ptr); \
43-
} \
44-
p = shared_multi_heap_aligned_alloc(SMH_REG_ATTR_EXTERNAL, 16, _size); \
45-
return p; \
37+
return p;
38+
}
39+
40+
static inline void esp_wifi_free_func(void *_mem)
41+
{
42+
shared_multi_heap_free(_mem);
43+
}
44+
45+
static inline void* os_wpa_malloc_func(size_t _size)
46+
{
47+
return shared_multi_heap_aligned_alloc(SMH_REG_ATTR_EXTERNAL, 16, _size);
48+
}
49+
50+
static inline void* os_wpa_realloc_func(void *_ptr, size_t _size)
51+
{
52+
if (_ptr) {
53+
shared_multi_heap_free(_ptr);
4654
}
47-
#define os_wpa_calloc_func(_nmemb, _size) \
48-
{ \
49-
void *p; \
50-
p = shared_multi_heap_aligned_alloc(SMH_REG_ATTR_EXTERNAL, 16, _nmemb * _size); \
51-
if (p) { \
52-
memset(p, 0, _nmemb * _size); \
53-
} \
54-
return p; \
55+
return shared_multi_heap_aligned_alloc(SMH_REG_ATTR_EXTERNAL, 16, _size);
56+
}
57+
static inline void* os_wpa_calloc_func(size_t _nmemb, size_t _size)
58+
{
59+
void *p = shared_multi_heap_aligned_alloc(SMH_REG_ATTR_EXTERNAL, 16, _nmemb * _size);
60+
if (p) {
61+
memset(p, 0, _nmemb * _size);
5562
}
56-
#define os_wpa_free_func(_mem) shared_multi_heap_free(_mem)
63+
return p;
64+
}
65+
static inline void os_wpa_free_func(void *_mem)
66+
{
67+
shared_multi_heap_free(_mem);
68+
}
5769

5870
#else
5971

@@ -74,6 +86,17 @@
7486
#define esp_bt_malloc_func(_size) k_malloc(_size)
7587
#define esp_bt_free_func(_mem) k_free(_mem)
7688

89+
#elif defined(CONFIG_ESP_BT_HEAP_SPIRAM)
90+
91+
static inline void* esp_bt_malloc_func(size_t _size)
92+
{
93+
return shared_multi_heap_aligned_alloc(SMH_REG_ATTR_EXTERNAL, 16, _size);
94+
}
95+
static inline void esp_bt_free_func(_mem)
96+
{
97+
shared_multi_heap_free(_mem);
98+
}
99+
77100
#else
78101

79102
#define esp_bt_malloc_func(_size) malloc(_size)

0 commit comments

Comments
 (0)