mirror of
https://github.com/cesanta/mongoose.git
synced 2025-06-11 12:14:41 +08:00

Enables extra compile-time checks CL: none PUBLISHED_FROM=9f7d658fbda5c721cf40293bf29967bb056d0437
132 lines
3.6 KiB
C
132 lines
3.6 KiB
C
#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_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_ */
|