Open Model Railroad Network (OpenMRN)
Loading...
Searching...
No Matches
openmrn_features.h
Go to the documentation of this file.
1
37
#ifndef _INCLUDE_OPENMRN_FEATURES_
38
#define _INCLUDE_OPENMRN_FEATURES_
39
40
#ifdef ESP_PLATFORM
41
#include <esp_idf_version.h>
42
#else
43
#define ESP_IDF_VERSION 0
44
#define ESP_IDF_VERSION_VAL(a,b,c) 1
45
#endif
// ESP_PLATFORM
46
47
#ifdef __FreeRTOS__
49
#define OPENMRN_FEATURE_DEVICE_SELECT 1
51
#define OPENMRN_FEATURE_DEVTAB 1
54
#define OPENMRN_FEATURE_REENT 1
55
#endif
56
57
#if defined(__FreeRTOS__) || defined(ESP_PLATFORM)
58
// Note: this is not using OPENMRN_FEATURE_DEVICE_SELECT due to other usages
59
// of that macro which may conflict with the ESP32 version of this feature.
61
#define OPENMRN_FEATURE_FD_CAN_DEVICE 1
62
#endif
63
64
#if defined(__linux__) || defined(__MACH__) || defined(__WINNT__) || \
65
defined(ESP_PLATFORM) || defined(OPENMRN_FEATURE_DEVTAB)
69
#define OPENMRN_HAVE_POSIX_FD 1
70
#endif
71
72
#if !defined(ESP_PLATFORM)
74
#define OPENMRN_HAVE_SOCKET_FSTAT 1
75
#endif
76
78
#if !defined(__FreeRTOS__) && !defined(__WINNT__) && !defined(ESP_PLATFORM) && \
79
!defined(ARDUINO) && !defined(ESP_NONOS)
81
#define OPENMRN_HAVE_PSELECT 1
82
#endif
83
84
#if defined(__WINNT__) || defined(ESP_PLATFORM) || defined(ESP_NONOS)
86
#define OPENMRN_HAVE_SELECT 1
87
#endif
88
89
#if defined(OPENMRN_HAVE_SELECT) || defined(OPENMRN_HAVE_PSELECT) || \
90
defined(OPENMRN_FEATURE_DEVICE_SELECT)
91
#define OPENMRN_FEATURE_EXECUTOR_SELECT 1
92
#endif
93
94
#if (defined(ARDUINO) && !defined(ESP_PLATFORM)) || defined(ESP_NONOS) || \
95
defined(__EMSCRIPTEN__)
97
#define OPENMRN_FEATURE_SINGLE_THREADED 1
98
#endif
99
100
#if defined(__FreeRTOS__) || defined(ESP_PLATFORM)
102
#define OPENMRN_FEATURE_MUTEX_FREERTOS 1
103
105
#define OPENMRN_FEATURE_RTOS_FROM_ISR 1
106
#elif OPENMRN_FEATURE_SINGLE_THREADED
109
#define OPENMRN_FEATURE_MUTEX_FAKE 1
110
#else
112
#define OPENMRN_FEATURE_MUTEX_PTHREAD 1
113
#endif
114
115
#if OPENMRN_FEATURE_MUTEX_FREERTOS || OPENMRN_FEATURE_MUTEX_PTHREAD || \
116
defined(__EMSCRIPTEN__)
118
#define OPENMRN_FEATURE_SEM_TIMEDWAIT 1
119
#endif
120
121
#if defined(__FreeRTOS__) || defined(ESP_PLATFORM)
124
#define OPENMRN_FEATURE_THREAD_FREERTOS 1
125
#elif OPENMRN_FEATURE_SINGLE_THREADED
126
#else
128
#define OPENMRN_FEATURE_THREAD_PTHREAD 1
129
#if !defined (__MINGW32__) && !defined (__MACH__)
131
#define OPENMRN_HAVE_PTHREAD_SETNAME 1
132
#endif
133
#if !defined(__linux__) && !defined(__MACH__)
136
#define OPENMRN_FEATURE_PTHREAD_SETSTACK 1
137
#endif
138
#endif
139
140
#if defined(__linux__) || defined(__MACH__) || defined(__FreeRTOS__) || \
141
defined(ESP_PLATFORM)
143
#define OPENMRN_FEATURE_BSD_SOCKETS 1
144
145
#ifndef __FreeRTOS__
148
#define OPENMRN_HAVE_BSD_SOCKETS_RX_TIMEOUT 1
149
#endif
150
151
#if !defined(__FreeRTOS__) && !defined(ESP_PLATFORM)
154
#define OPENMRN_HAVE_BSD_SOCKETS_GETSOCKNAME 1
155
#endif
156
157
#if defined(__linux__)
159
#define OPENMRN_HAVE_BSD_SOCKETS_IPV6 1
160
#endif
161
162
#if defined(__linux__) || defined(__MACH__)
164
#define OPENMRN_FEATURE_BSD_SOCKETS_IGNORE_SIGPIPE 1
165
#endif
166
167
#if defined(__linux__) || defined(__MACH__) || defined(ESP_PLATFORM)
169
#define OPENMRN_FEATURE_BSD_SOCKETS_REPORT_EOF_ERROR 1
170
#endif
171
172
#endif
173
174
#if !defined(__MACH__)
177
#define OPENMRN_FEATURE_REBOOT 1
178
#endif
179
180
181
#endif
// _INCLUDE_OPENMRN_FEATURES_
include
openmrn_features.h
Generated on Sun Feb 2 2025 21:18:13 for Open Model Railroad Network (OpenMRN) by
1.9.8