| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 | 
							- #pragma once
 
- #define _GNU_SOURCE 1
 
- #include "compiler.h"
 
- /* Standard C headers */
 
- #include <inttypes.h>
 
- #include <stdarg.h>
 
- #include <stdbool.h>
 
- #include <stdio.h>
 
- #include <stdlib.h>
 
- #include <string.h>
 
- /* Arduino headers */
 
- #include <Arduino.h>
 
- #include <FreeRTOS.h>
 
- /* ESP-IDF headers */
 
- #include <sdkconfig.h>
 
- #include <esp_err.h>
 
- #include <esp_event.h>
 
- #include <esp_log.h>
 
- #include "xmalloc.h"
 
- #ifndef MODULE
 
- # define MODULE ""
 
- #endif
 
- #if DEBUG
 
- # define CMSG(...) printf(__VA_ARGS__)
 
- #else
 
- # define CMSG(...) ((void)0)
 
- #endif
 
- #define MSG(...)  CMSG(MODULE ": " __VA_ARGS__)
 
- /*
 
-  * Hack to deal with the lack of this information in FreeRTOS proper
 
-  */
 
- #define EVENT_BITS	(configUSE_16_BIT_TICKS ? 8 : 24)
 
- #define EVENT_ALL_BITS	((1U << EVENT_BITS)-1)
 
- /*
 
-  * 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);
 
- /*
 
-  * Bad SPIRAM memory?
 
-  */
 
- extern_c bool _spiram_broken;
 
- static inline bool spiram_broken(void)
 
- {
 
-     return _spiram_broken;
 
- }
 
- /*
 
-  * Sleep thread...
 
-  */
 
- static inline void suspend(void)
 
- {
 
-     vTaskSuspend(NULL);
 
- }
 
- /*
 
-  * Kill thread; vTaskDelete(NULL) *should* never return...
 
-  */
 
- static inline no_return exit_task(void)
 
- {
 
-     vTaskDelete(NULL);
 
-     while (1) {
 
- 	/* vTaskDelete() returned!? */
 
- 	vTaskSuspend(NULL);
 
-     }
 
- }
 
- /*
 
-  * Convert a NULL pointer string to ""
 
-  */
 
- static inline const char *notempty(const char *str)
 
- {
 
-     return str ? str : "";
 
- }
 
- static inline char *dupstr(const char *str)
 
- {
 
-     return strdup(notempty(str));
 
- }
 
- /*
 
-  * Reboot system
 
-  */
 
- extern_c void reboot_now(void);
 
- extern_c int reboot_delayed(void);
 
- /*
 
-  * Main MAC address from efuses
 
-  */
 
- extern_c uint8_t efuse_default_mac[6];
 
- extern_c char serial_number[16];
 
- /*
 
-  * Time sync status
 
-  */
 
- extern_c volatile bool time_net_sync_status;
 
- struct timeval;
 
- extern_c void time_net_sync(const struct timeval *tv);
 
- extern_c void print_time(const char *msg, const struct timeval *tv);
 
- /*
 
-  * Log output
 
-  */
 
- extern_c volatile bool do_log_config_status;
 
- extern_c void __fmt_printf(2,3)
 
-   logmsg(const char *module, const char *fmt, ...);
 
- extern_c void heap_info(void);
 
 
  |