#ifndef CS_COMMON_PLATFORM_H_ #define CS_COMMON_PLATFORM_H_ /* * For the "custom" platform, includes and dependencies can be * provided through mg_locals.h. */ #define CS_P_CUSTOM 0 #define CS_P_UNIX 1 #define CS_P_WINDOWS 2 #define CS_P_ESP32 15 #define CS_P_ESP8266 3 #define CS_P_CC3100 6 #define CS_P_CC3200 4 #define CS_P_CC3220 17 #define CS_P_MSP432 5 #define CS_P_TM4C129 14 #define CS_P_MBED 7 #define CS_P_WINCE 8 #define CS_P_NXP_LPC 13 #define CS_P_NXP_KINETIS 9 #define CS_P_NRF51 12 #define CS_P_NRF52 10 #define CS_P_PIC32 11 #define CS_P_STM32 16 /* Next id: 18 */ /* If not specified explicitly, we guess platform by defines. */ #ifndef CS_PLATFORM #if defined(TARGET_IS_MSP432P4XX) || defined(__MSP432P401R__) #define CS_PLATFORM CS_P_MSP432 #elif defined(cc3200) || defined(TARGET_IS_CC3200) #define CS_PLATFORM CS_P_CC3200 #elif defined(cc3220) || defined(TARGET_IS_CC3220) #define CS_PLATFORM CS_P_CC3220 #elif defined(__unix__) || defined(__APPLE__) #define CS_PLATFORM CS_P_UNIX #elif defined(WINCE) #define CS_PLATFORM CS_P_WINCE #elif defined(_WIN32) #define CS_PLATFORM CS_P_WINDOWS #elif defined(__MBED__) #define CS_PLATFORM CS_P_MBED #elif defined(__USE_LPCOPEN) #define CS_PLATFORM CS_P_NXP_LPC #elif defined(FRDM_K64F) || defined(FREEDOM) #define CS_PLATFORM CS_P_NXP_KINETIS #elif defined(PIC32) #define CS_PLATFORM CS_P_PIC32 #elif defined(ESP_PLATFORM) #define CS_PLATFORM CS_P_ESP32 #elif defined(ICACHE_FLASH) #define CS_PLATFORM CS_P_ESP8266 #elif defined(TARGET_IS_TM4C129_RA0) || defined(TARGET_IS_TM4C129_RA1) || \ defined(TARGET_IS_TM4C129_RA2) #define CS_PLATFORM CS_P_TM4C129 #elif defined(STM32) #define CS_PLATFORM CS_P_STM32 #endif #ifndef CS_PLATFORM #error "CS_PLATFORM is not specified and we couldn't guess it." #endif #endif /* !defined(CS_PLATFORM) */ #define MG_NET_IF_SOCKET 1 #define MG_NET_IF_SIMPLELINK 2 #define MG_NET_IF_LWIP_LOW_LEVEL 3 #define MG_NET_IF_PIC32 4 #define MG_NET_IF_NULL 5 #define MG_SSL_IF_OPENSSL 1 #define MG_SSL_IF_MBEDTLS 2 #define MG_SSL_IF_SIMPLELINK 3 #include "common/platforms/platform_unix.h" #include "common/platforms/platform_windows.h" #include "common/platforms/platform_esp32.h" #include "common/platforms/platform_esp8266.h" #include "common/platforms/platform_cc3100.h" #include "common/platforms/platform_cc3200.h" #include "common/platforms/platform_cc3220.h" #include "common/platforms/platform_mbed.h" #include "common/platforms/platform_nrf51.h" #include "common/platforms/platform_nrf52.h" #include "common/platforms/platform_wince.h" #include "common/platforms/platform_nxp_lpc.h" #include "common/platforms/platform_nxp_kinetis.h" #include "common/platforms/platform_pic32.h" #include "common/platforms/platform_stm32.h" /* Common stuff */ #if !defined(PRINTF_LIKE) #if defined(__GNUC__) || defined(__clang__) || defined(__TI_COMPILER_VERSION__) #define PRINTF_LIKE(f, a) __attribute__((format(printf, f, a))) #else #define PRINTF_LIKE(f, a) #endif #endif #if !defined(WEAK) #if (defined(__GNUC__) || defined(__clang__) || \ defined(__TI_COMPILER_VERSION__)) && \ !defined(_WIN32) #define WEAK __attribute__((weak)) #else #define WEAK #endif #endif #ifdef __GNUC__ #define NORETURN __attribute__((noreturn)) #define NOINLINE __attribute__((noinline)) #define WARN_UNUSED_RESULT __attribute__((warn_unused_result)) #define NOINSTR __attribute__((no_instrument_function)) #define DO_NOT_WARN_UNUSED __attribute__((unused)) #else #define NORETURN #define NOINLINE #define WARN_UNUSED_RESULT #define NOINSTR #define DO_NOT_WARN_UNUSED #endif /* __GNUC__ */ #ifndef ARRAY_SIZE #define ARRAY_SIZE(array) (sizeof(array) / sizeof(array[0])) #endif #endif /* CS_COMMON_PLATFORM_H_ */