#pragma once #define _GNU_SOURCE 1 /* Standard C headers */ #include #include #include #include #include #include /* Arduino headers */ #include #include /* ESP-IDF headers */ #include #include #include #include #ifdef __cplusplus # define extern_c extern "C" # define EXTERN_C(...) extern "C" { __VA_ARGS__ } #else # define extern_c extern # define EXTERN_C(...) __VA_ARGS__ #endif #define ARRAY_SIZE(x) (sizeof(x)/sizeof((x)[0])) #ifndef MODULE # define MODULE "" #endif #if DEBUG # define CMSG(...) printf(__VA_ARGS__) #else # define CMSG(...) ((void)0) #endif #define MSG(...) CMSG(MODULE ": " __VA_ARGS__) /* * Common types for callbacks */ typedef void *token_t; typedef int (*read_func_t)(token_t token, void *buf, size_t len); typedef int (*write_func_t)(token_t token, const void *buf, size_t len); /* * Sleep thread... */ static inline void suspend(void) { vTaskSuspend(NULL); } /* * Reboot system */ extern_c void reboot_now(void); extern_c int reboot_delayed(void); /* * Board version */ extern_c uint8_t max80_board_version;