Select one of the symbols to view example projects that use it.
 
Outline
#include <string.h>
#include "sdkconfig.h"
#include "mdns_private.h"
#include "mdns_mem_caps.h"
#include "esp_heap_caps.h"
#include "esp_log.h"
#define ALLOW_WEAK
#define ALLOW_WEAK
#define MDNS_TASK_MEMORY_CAPS
#define MDNS_TASK_MEMORY_LOG
#define MDNS_TASK_MEMORY_CAPS
#define MDNS_TASK_MEMORY_LOG
#define MDNS_MEMORY_CAPS
#define MDNS_MEMORY_CAPS
#define MDNS_MEMORY_CAPS
#define MDNS_TASK_MEMORY_CAPS
#define MDNS_TASK_MEMORY_LOG
mdns_mem_malloc(size_t)
mdns_mem_calloc(size_t, size_t)
mdns_mem_free(void *)
mdns_mem_strdup(const char *)
mdns_mem_strndup(const char *, size_t)
mdns_mem_task_malloc(size_t)
mdns_mem_task_free(void *)
Files
loading (3/5)...
SourceVuESP-IDF Framework and Examplesesp_local_ctrl samplemanaged_components/espressif__mdns/mdns_mem_caps.c
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* * SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 *//* ... */ #include <string.h> #include "sdkconfig.h" #include "mdns_private.h" #include "mdns_mem_caps.h" #include "esp_heap_caps.h" #include "esp_log.h"6 includes #if CONFIG_MDNS_MEMORY_CUSTOM_IMPL #define ALLOW_WEAK __attribute__((weak)) #else #define ALLOW_WEAK #endif #if CONFIG_MDNS_TASK_CREATE_FROM_SPIRAM #define MDNS_TASK_MEMORY_CAPS (MALLOC_CAP_SPIRAM | MALLOC_CAP_8BIT) #define MDNS_TASK_MEMORY_LOG "SPIRAM"/* ... */ #endif #if CONFIG_MDNS_TASK_CREATE_FROM_INTERNAL #define MDNS_TASK_MEMORY_CAPS (MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT) #define MDNS_TASK_MEMORY_LOG "internal RAM"/* ... */ #endif #if CONFIG_MDNS_MEMORY_ALLOC_SPIRAM #define MDNS_MEMORY_CAPS (MALLOC_CAP_SPIRAM | MALLOC_CAP_8BIT) #endif #if CONFIG_MDNS_MEMORY_ALLOC_INTERNAL #define MDNS_MEMORY_CAPS (MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT) #endif // Allocate memory from internal heap as default. #ifndef MDNS_MEMORY_CAPS #warning "No memory allocation method defined, using internal memory" #define MDNS_MEMORY_CAPS (MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT)/* ... */ #endif #ifndef MDNS_TASK_MEMORY_CAPS #define MDNS_TASK_MEMORY_CAPS (MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT) #define MDNS_TASK_MEMORY_LOG "internal RAM"/* ... */ #endif void ALLOW_WEAK *mdns_mem_malloc(size_t size) { return heap_caps_malloc(size, MDNS_MEMORY_CAPS); }{ ... } void ALLOW_WEAK *mdns_mem_calloc(size_t num, size_t size) { return heap_caps_calloc(num, size, MDNS_MEMORY_CAPS); }{ ... } void ALLOW_WEAK mdns_mem_free(void *ptr) { heap_caps_free(ptr); }{ ... } char ALLOW_WEAK *mdns_mem_strdup(const char *s) { if (!s) { return NULL; }{...} size_t len = strlen(s) + 1; char *copy = (char *)heap_caps_malloc(len, MDNS_MEMORY_CAPS); if (copy) { memcpy(copy, s, len); }{...} return copy; }{ ... } char ALLOW_WEAK *mdns_mem_strndup(const char *s, size_t n) { if (!s) { return NULL; }{...} size_t len = strnlen(s, n); char *copy = (char *)heap_caps_malloc(len + 1, MDNS_MEMORY_CAPS); if (copy) { memcpy(copy, s, len); copy[len] = '\0'; }{...} return copy; }{ ... } void ALLOW_WEAK *mdns_mem_task_malloc(size_t size) { ESP_LOGI("mdns_mem", "mDNS task will be created from %s", MDNS_TASK_MEMORY_LOG); return heap_caps_malloc(size, MDNS_TASK_MEMORY_CAPS); }{ ... } void ALLOW_WEAK mdns_mem_task_free(void *ptr) { heap_caps_free(ptr); }{ ... }
Details