#pragma once #if MG_ARCH == MG_ARCH_FREERTOS #include #if !defined(MG_ENABLE_LWIP) || !MG_ENABLE_LWIP #include #endif #include #include #include #include #include #include // rand(), strtol(), atoi() #include #if defined(__ARMCC_VERSION) #define mode_t size_t #include #include #define strdup(s) ((char *) mg_strdup(mg_str(s)).buf) #elif defined(__CCRH__) #else #include #endif #include #include #define MG_ENABLE_CUSTOM_CALLOC 1 static inline void mg_free(void *ptr) { vPortFree(ptr); } // Re-route calloc/free to the FreeRTOS's functions, don't use stdlib static inline void *mg_calloc(size_t cnt, size_t size) { void *p = pvPortMalloc(cnt * size); if (p != NULL) memset(p, 0, size * cnt); return p; } #if !defined(MG_ENABLE_POSIX_FS) || !MG_ENABLE_POSIX_FS #else #define mkdir(a, b) mg_mkdir(a, b) static inline int mg_mkdir(const char *path, mode_t mode) { (void) path, (void) mode; return -1; } #endif #endif // MG_ARCH == MG_ARCH_FREERTOS