|
6 | 6 |
|
7 | 7 | #pragma once
|
8 | 8 |
|
| 9 | +#include <string.h> |
9 | 10 | #include <zephyr/multi_heap/shared_multi_heap.h>
|
10 | 11 |
|
11 | 12 | /* Select heap to be used for WiFi adapter and WPA supplicant */
|
|
20 | 21 | #define os_wpa_calloc_func(_nmemb, _size) k_calloc(_nmemb, _size)
|
21 | 22 | #define os_wpa_free_func(_mem) k_free(_mem)
|
22 | 23 |
|
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); |
35 | 36 | }
|
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); |
46 | 54 | }
|
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); |
55 | 62 | }
|
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 | +} |
57 | 69 |
|
58 | 70 | #else
|
59 | 71 |
|
|
74 | 86 | #define esp_bt_malloc_func(_size) k_malloc(_size)
|
75 | 87 | #define esp_bt_free_func(_mem) k_free(_mem)
|
76 | 88 |
|
| 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 | + |
77 | 100 | #else
|
78 | 101 |
|
79 | 102 | #define esp_bt_malloc_func(_size) malloc(_size)
|
|
0 commit comments