33
33
#include "common/hal_structs_common.h"
34
34
35
35
LOG_MODULE_REGISTER (wifi_nrf , CONFIG_WIFI_NRF70_LOG_LEVEL );
36
+
37
+ #if !defined(CONFIG_NRF_WIFI_GLOBAL_HEAP )
36
38
#if defined(CONFIG_NOCACHE_MEMORY )
37
39
K_HEAP_DEFINE_NOCACHE (wifi_drv_ctrl_mem_pool , CONFIG_NRF_WIFI_CTRL_HEAP_SIZE );
38
40
K_HEAP_DEFINE_NOCACHE (wifi_drv_data_mem_pool , CONFIG_NRF_WIFI_DATA_HEAP_SIZE );
39
41
#else
40
42
K_HEAP_DEFINE (wifi_drv_ctrl_mem_pool , CONFIG_NRF_WIFI_CTRL_HEAP_SIZE );
41
43
K_HEAP_DEFINE (wifi_drv_data_mem_pool , CONFIG_NRF_WIFI_DATA_HEAP_SIZE );
42
44
#endif /* CONFIG_NOCACHE_MEMORY */
45
+ #endif /* CONFIG_NRF_WIFI_GLOBAL_HEAP */
46
+
43
47
#define WORD_SIZE 4
44
48
45
49
struct zep_shim_intr_priv * intr_priv ;
@@ -48,14 +52,22 @@ static void *zep_shim_mem_alloc(size_t size)
48
52
{
49
53
size_t size_aligned = ROUND_UP (size , 4 );
50
54
55
+ #if defined(CONFIG_NRF_WIFI_GLOBAL_HEAP )
56
+ return k_malloc (size_aligned );
57
+ #else /* CONFIG_NRF_WIFI_GLOBAL_HEAP */
51
58
return k_heap_aligned_alloc (& wifi_drv_ctrl_mem_pool , WORD_SIZE , size_aligned , K_FOREVER );
59
+ #endif /* CONFIG_NRF_WIFI_GLOBAL_HEAP */
52
60
}
53
61
54
62
static void * zep_shim_data_mem_alloc (size_t size )
55
63
{
56
64
size_t size_aligned = ROUND_UP (size , 4 );
57
65
66
+ #if defined(CONFIG_NRF_WIFI_GLOBAL_HEAP )
67
+ return k_malloc (size_aligned );
68
+ #else /* CONFIG_NRF_WIFI_GLOBAL_HEAP */
58
69
return k_heap_aligned_alloc (& wifi_drv_data_mem_pool , WORD_SIZE , size_aligned , K_FOREVER );
70
+ #endif /* CONFIG_NRF_WIFI_GLOBAL_HEAP */
59
71
}
60
72
61
73
static void * zep_shim_mem_zalloc (size_t size )
@@ -99,14 +111,22 @@ static void *zep_shim_data_mem_zalloc(size_t size)
99
111
static void zep_shim_mem_free (void * buf )
100
112
{
101
113
if (buf ) {
114
+ #if defined(CONFIG_NRF_WIFI_GLOBAL_HEAP )
115
+ k_free (buf );
116
+ #else /* CONFIG_NRF_WIFI_GLOBAL_HEAP */
102
117
k_heap_free (& wifi_drv_ctrl_mem_pool , buf );
118
+ #endif /* CONFIG_NRF_WIFI_GLOBAL_HEAP */
103
119
}
104
120
}
105
121
106
122
static void zep_shim_data_mem_free (void * buf )
107
123
{
108
124
if (buf ) {
125
+ #if defined(CONFIG_NRF_WIFI_GLOBAL_HEAP )
126
+ k_free (buf );
127
+ #else /* CONFIG_NRF_WIFI_GLOBAL_HEAP */
109
128
k_heap_free (& wifi_drv_data_mem_pool , buf );
129
+ #endif /* CONFIG_NRF_WIFI_GLOBAL_HEAP */
110
130
}
111
131
}
112
132
@@ -197,7 +217,11 @@ static void *zep_shim_spinlock_alloc(void)
197
217
198
218
static void zep_shim_spinlock_free (void * lock )
199
219
{
220
+ #if defined(CONFIG_NRF_WIFI_GLOBAL_HEAP )
221
+ k_free (lock );
222
+ #else /* CONFIG_NRF_WIFI_GLOBAL_HEAP */
200
223
k_heap_free (& wifi_drv_ctrl_mem_pool , lock );
224
+ #endif /* CONFIG_NRF_WIFI_GLOBAL_HEAP */
201
225
}
202
226
203
227
static void zep_shim_spinlock_init (void * lock )
0 commit comments