xref: /aosp_15_r20/external/libwebsockets/include/libwebsockets.h (revision 1c60b9aca93fdbc9b5f19b2d2194c91294b22281)
1*1c60b9acSAndroid Build Coastguard Worker /*
2*1c60b9acSAndroid Build Coastguard Worker  * libwebsockets - small server side websockets and web server implementation
3*1c60b9acSAndroid Build Coastguard Worker  *
4*1c60b9acSAndroid Build Coastguard Worker  * Copyright (C) 2010 - 2019 Andy Green <[email protected]>
5*1c60b9acSAndroid Build Coastguard Worker  *
6*1c60b9acSAndroid Build Coastguard Worker  * Permission is hereby granted, free of charge, to any person obtaining a copy
7*1c60b9acSAndroid Build Coastguard Worker  * of this software and associated documentation files (the "Software"), to
8*1c60b9acSAndroid Build Coastguard Worker  * deal in the Software without restriction, including without limitation the
9*1c60b9acSAndroid Build Coastguard Worker  * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10*1c60b9acSAndroid Build Coastguard Worker  * sell copies of the Software, and to permit persons to whom the Software is
11*1c60b9acSAndroid Build Coastguard Worker  * furnished to do so, subject to the following conditions:
12*1c60b9acSAndroid Build Coastguard Worker  *
13*1c60b9acSAndroid Build Coastguard Worker  * The above copyright notice and this permission notice shall be included in
14*1c60b9acSAndroid Build Coastguard Worker  * all copies or substantial portions of the Software.
15*1c60b9acSAndroid Build Coastguard Worker  *
16*1c60b9acSAndroid Build Coastguard Worker  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17*1c60b9acSAndroid Build Coastguard Worker  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18*1c60b9acSAndroid Build Coastguard Worker  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19*1c60b9acSAndroid Build Coastguard Worker  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20*1c60b9acSAndroid Build Coastguard Worker  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21*1c60b9acSAndroid Build Coastguard Worker  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
22*1c60b9acSAndroid Build Coastguard Worker  * IN THE SOFTWARE.
23*1c60b9acSAndroid Build Coastguard Worker  */
24*1c60b9acSAndroid Build Coastguard Worker 
25*1c60b9acSAndroid Build Coastguard Worker /** @file */
26*1c60b9acSAndroid Build Coastguard Worker 
27*1c60b9acSAndroid Build Coastguard Worker #ifndef LIBWEBSOCKET_H_3060898B846849FF9F88F5DB59B5950C
28*1c60b9acSAndroid Build Coastguard Worker #define LIBWEBSOCKET_H_3060898B846849FF9F88F5DB59B5950C
29*1c60b9acSAndroid Build Coastguard Worker 
30*1c60b9acSAndroid Build Coastguard Worker #ifdef __cplusplus
31*1c60b9acSAndroid Build Coastguard Worker #include <cstddef>
32*1c60b9acSAndroid Build Coastguard Worker #include <cstdarg>
33*1c60b9acSAndroid Build Coastguard Worker 
34*1c60b9acSAndroid Build Coastguard Worker extern "C" {
35*1c60b9acSAndroid Build Coastguard Worker #else
36*1c60b9acSAndroid Build Coastguard Worker #include <stdarg.h>
37*1c60b9acSAndroid Build Coastguard Worker #endif
38*1c60b9acSAndroid Build Coastguard Worker 
39*1c60b9acSAndroid Build Coastguard Worker #include <string.h>
40*1c60b9acSAndroid Build Coastguard Worker #include <stdlib.h>
41*1c60b9acSAndroid Build Coastguard Worker 
42*1c60b9acSAndroid Build Coastguard Worker #include "lws_config.h"
43*1c60b9acSAndroid Build Coastguard Worker 
44*1c60b9acSAndroid Build Coastguard Worker #if defined(LWS_SUPPRESS_DEPRECATED_API_WARNINGS)
45*1c60b9acSAndroid Build Coastguard Worker #define OPENSSL_USE_DEPRECATED
46*1c60b9acSAndroid Build Coastguard Worker #endif
47*1c60b9acSAndroid Build Coastguard Worker 
48*1c60b9acSAndroid Build Coastguard Worker /* place for one-shot opaque forward references */
49*1c60b9acSAndroid Build Coastguard Worker 
50*1c60b9acSAndroid Build Coastguard Worker typedef struct lws_context * lws_ctx_t;
51*1c60b9acSAndroid Build Coastguard Worker struct lws_sequencer;
52*1c60b9acSAndroid Build Coastguard Worker struct lws_dsh;
53*1c60b9acSAndroid Build Coastguard Worker 
54*1c60b9acSAndroid Build Coastguard Worker /*
55*1c60b9acSAndroid Build Coastguard Worker  * CARE: everything using cmake defines needs to be below here
56*1c60b9acSAndroid Build Coastguard Worker  */
57*1c60b9acSAndroid Build Coastguard Worker 
58*1c60b9acSAndroid Build Coastguard Worker #define LWS_US_PER_SEC ((lws_usec_t)1000000)
59*1c60b9acSAndroid Build Coastguard Worker #define LWS_MS_PER_SEC ((lws_usec_t)1000)
60*1c60b9acSAndroid Build Coastguard Worker #define LWS_US_PER_MS ((lws_usec_t)1000)
61*1c60b9acSAndroid Build Coastguard Worker #define LWS_NS_PER_US ((lws_usec_t)1000)
62*1c60b9acSAndroid Build Coastguard Worker 
63*1c60b9acSAndroid Build Coastguard Worker #define LWS_KI (1024)
64*1c60b9acSAndroid Build Coastguard Worker #define LWS_MI (LWS_KI * 1024)
65*1c60b9acSAndroid Build Coastguard Worker #define LWS_GI (LWS_MI * 1024)
66*1c60b9acSAndroid Build Coastguard Worker #define LWS_TI ((uint64_t)LWS_GI * 1024)
67*1c60b9acSAndroid Build Coastguard Worker #define LWS_PI ((uint64_t)LWS_TI * 1024)
68*1c60b9acSAndroid Build Coastguard Worker 
69*1c60b9acSAndroid Build Coastguard Worker #define LWS_US_TO_MS(x) ((x + (LWS_US_PER_MS / 2)) / LWS_US_PER_MS)
70*1c60b9acSAndroid Build Coastguard Worker 
71*1c60b9acSAndroid Build Coastguard Worker #if defined(LWS_HAS_INTPTR_T)
72*1c60b9acSAndroid Build Coastguard Worker #include <stdint.h>
73*1c60b9acSAndroid Build Coastguard Worker #define lws_intptr_t intptr_t
74*1c60b9acSAndroid Build Coastguard Worker #else
75*1c60b9acSAndroid Build Coastguard Worker typedef unsigned long long lws_intptr_t;
76*1c60b9acSAndroid Build Coastguard Worker #endif
77*1c60b9acSAndroid Build Coastguard Worker 
78*1c60b9acSAndroid Build Coastguard Worker #if defined(WIN32) || defined(_WIN32)
79*1c60b9acSAndroid Build Coastguard Worker #ifndef WIN32_LEAN_AND_MEAN
80*1c60b9acSAndroid Build Coastguard Worker #define WIN32_LEAN_AND_MEAN
81*1c60b9acSAndroid Build Coastguard Worker #endif
82*1c60b9acSAndroid Build Coastguard Worker 
83*1c60b9acSAndroid Build Coastguard Worker #include <winsock2.h>
84*1c60b9acSAndroid Build Coastguard Worker #include <ws2tcpip.h>
85*1c60b9acSAndroid Build Coastguard Worker #include <stddef.h>
86*1c60b9acSAndroid Build Coastguard Worker #include <basetsd.h>
87*1c60b9acSAndroid Build Coastguard Worker #include <io.h>
88*1c60b9acSAndroid Build Coastguard Worker #ifndef _WIN32_WCE
89*1c60b9acSAndroid Build Coastguard Worker #include <fcntl.h>
90*1c60b9acSAndroid Build Coastguard Worker #else
91*1c60b9acSAndroid Build Coastguard Worker #define _O_RDONLY	0x0000
92*1c60b9acSAndroid Build Coastguard Worker #define O_RDONLY	_O_RDONLY
93*1c60b9acSAndroid Build Coastguard Worker #endif
94*1c60b9acSAndroid Build Coastguard Worker 
95*1c60b9acSAndroid Build Coastguard Worker typedef int uid_t;
96*1c60b9acSAndroid Build Coastguard Worker typedef int gid_t;
97*1c60b9acSAndroid Build Coastguard Worker typedef unsigned short sa_family_t;
98*1c60b9acSAndroid Build Coastguard Worker #if !defined(LWS_HAVE_SUSECONDS_T)
99*1c60b9acSAndroid Build Coastguard Worker typedef unsigned int useconds_t;
100*1c60b9acSAndroid Build Coastguard Worker typedef int suseconds_t;
101*1c60b9acSAndroid Build Coastguard Worker #endif
102*1c60b9acSAndroid Build Coastguard Worker 
103*1c60b9acSAndroid Build Coastguard Worker #define LWS_INLINE __inline
104*1c60b9acSAndroid Build Coastguard Worker #define LWS_VISIBLE
105*1c60b9acSAndroid Build Coastguard Worker #define LWS_WARN_UNUSED_RESULT
106*1c60b9acSAndroid Build Coastguard Worker #define LWS_WARN_DEPRECATED
107*1c60b9acSAndroid Build Coastguard Worker #define LWS_FORMAT(string_index)
108*1c60b9acSAndroid Build Coastguard Worker 
109*1c60b9acSAndroid Build Coastguard Worker #if !defined(LWS_EXTERN) && defined(LWS_BUILDING_SHARED)
110*1c60b9acSAndroid Build Coastguard Worker #ifdef LWS_DLL
111*1c60b9acSAndroid Build Coastguard Worker #ifdef LWS_INTERNAL
112*1c60b9acSAndroid Build Coastguard Worker #define LWS_EXTERN extern __declspec(dllexport)
113*1c60b9acSAndroid Build Coastguard Worker #else
114*1c60b9acSAndroid Build Coastguard Worker #define LWS_EXTERN extern __declspec(dllimport)
115*1c60b9acSAndroid Build Coastguard Worker #endif
116*1c60b9acSAndroid Build Coastguard Worker #endif
117*1c60b9acSAndroid Build Coastguard Worker #endif
118*1c60b9acSAndroid Build Coastguard Worker 
119*1c60b9acSAndroid Build Coastguard Worker #if !defined(LWS_INTERNAL) && !defined(LWS_EXTERN)
120*1c60b9acSAndroid Build Coastguard Worker #define LWS_EXTERN
121*1c60b9acSAndroid Build Coastguard Worker #define LWS_VISIBLE
122*1c60b9acSAndroid Build Coastguard Worker #endif
123*1c60b9acSAndroid Build Coastguard Worker 
124*1c60b9acSAndroid Build Coastguard Worker #if !defined(LWS_EXTERN)
125*1c60b9acSAndroid Build Coastguard Worker #define LWS_EXTERN
126*1c60b9acSAndroid Build Coastguard Worker #endif
127*1c60b9acSAndroid Build Coastguard Worker 
128*1c60b9acSAndroid Build Coastguard Worker #if defined(__MINGW32__)
129*1c60b9acSAndroid Build Coastguard Worker #define LWS_INVALID_FILE -1
130*1c60b9acSAndroid Build Coastguard Worker #else
131*1c60b9acSAndroid Build Coastguard Worker #define LWS_INVALID_FILE INVALID_HANDLE_VALUE
132*1c60b9acSAndroid Build Coastguard Worker #endif
133*1c60b9acSAndroid Build Coastguard Worker #define LWS_SOCK_INVALID (INVALID_SOCKET)
134*1c60b9acSAndroid Build Coastguard Worker #define LWS_O_RDONLY _O_RDONLY
135*1c60b9acSAndroid Build Coastguard Worker #define LWS_O_WRONLY _O_WRONLY
136*1c60b9acSAndroid Build Coastguard Worker #define LWS_O_CREAT _O_CREAT
137*1c60b9acSAndroid Build Coastguard Worker #define LWS_O_TRUNC _O_TRUNC
138*1c60b9acSAndroid Build Coastguard Worker 
139*1c60b9acSAndroid Build Coastguard Worker #ifndef __func__
140*1c60b9acSAndroid Build Coastguard Worker #define __func__ __FUNCTION__
141*1c60b9acSAndroid Build Coastguard Worker #endif
142*1c60b9acSAndroid Build Coastguard Worker 
143*1c60b9acSAndroid Build Coastguard Worker #else /* NOT WIN32 */
144*1c60b9acSAndroid Build Coastguard Worker #include <unistd.h>
145*1c60b9acSAndroid Build Coastguard Worker #if defined(LWS_HAVE_SYS_CAPABILITY_H) && defined(LWS_HAVE_LIBCAP)
146*1c60b9acSAndroid Build Coastguard Worker #include <sys/capability.h>
147*1c60b9acSAndroid Build Coastguard Worker #endif
148*1c60b9acSAndroid Build Coastguard Worker 
149*1c60b9acSAndroid Build Coastguard Worker #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__QNX__) || defined(__OpenBSD__)
150*1c60b9acSAndroid Build Coastguard Worker #include <sys/socket.h>
151*1c60b9acSAndroid Build Coastguard Worker #include <netinet/in.h>
152*1c60b9acSAndroid Build Coastguard Worker #endif
153*1c60b9acSAndroid Build Coastguard Worker 
154*1c60b9acSAndroid Build Coastguard Worker #define LWS_INLINE inline
155*1c60b9acSAndroid Build Coastguard Worker #define LWS_O_RDONLY O_RDONLY
156*1c60b9acSAndroid Build Coastguard Worker #define LWS_O_WRONLY O_WRONLY
157*1c60b9acSAndroid Build Coastguard Worker #define LWS_O_CREAT O_CREAT
158*1c60b9acSAndroid Build Coastguard Worker #define LWS_O_TRUNC O_TRUNC
159*1c60b9acSAndroid Build Coastguard Worker 
160*1c60b9acSAndroid Build Coastguard Worker #if !defined(LWS_PLAT_OPTEE) && !defined(OPTEE_TA) && !defined(LWS_PLAT_FREERTOS)
161*1c60b9acSAndroid Build Coastguard Worker #include <poll.h>
162*1c60b9acSAndroid Build Coastguard Worker #include <netdb.h>
163*1c60b9acSAndroid Build Coastguard Worker #define LWS_INVALID_FILE -1
164*1c60b9acSAndroid Build Coastguard Worker #define LWS_SOCK_INVALID (-1)
165*1c60b9acSAndroid Build Coastguard Worker #else
166*1c60b9acSAndroid Build Coastguard Worker #define getdtablesize() (30)
167*1c60b9acSAndroid Build Coastguard Worker #if defined(LWS_PLAT_FREERTOS)
168*1c60b9acSAndroid Build Coastguard Worker #define LWS_INVALID_FILE NULL
169*1c60b9acSAndroid Build Coastguard Worker #define LWS_SOCK_INVALID (-1)
170*1c60b9acSAndroid Build Coastguard Worker #else
171*1c60b9acSAndroid Build Coastguard Worker #define LWS_INVALID_FILE NULL
172*1c60b9acSAndroid Build Coastguard Worker #define LWS_SOCK_INVALID (-1)
173*1c60b9acSAndroid Build Coastguard Worker #endif
174*1c60b9acSAndroid Build Coastguard Worker #endif
175*1c60b9acSAndroid Build Coastguard Worker 
176*1c60b9acSAndroid Build Coastguard Worker #if defined(__FreeBSD__)
177*1c60b9acSAndroid Build Coastguard Worker #include <sys/signal.h>
178*1c60b9acSAndroid Build Coastguard Worker #endif
179*1c60b9acSAndroid Build Coastguard Worker #if defined(__GNUC__)
180*1c60b9acSAndroid Build Coastguard Worker 
181*1c60b9acSAndroid Build Coastguard Worker /* warn_unused_result attribute only supported by GCC 3.4 or later */
182*1c60b9acSAndroid Build Coastguard Worker #if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
183*1c60b9acSAndroid Build Coastguard Worker #define LWS_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
184*1c60b9acSAndroid Build Coastguard Worker #else
185*1c60b9acSAndroid Build Coastguard Worker #define LWS_WARN_UNUSED_RESULT
186*1c60b9acSAndroid Build Coastguard Worker #endif
187*1c60b9acSAndroid Build Coastguard Worker 
188*1c60b9acSAndroid Build Coastguard Worker #if defined(LWS_BUILDING_SHARED)
189*1c60b9acSAndroid Build Coastguard Worker /* this is only set when we're building lws itself shared */
190*1c60b9acSAndroid Build Coastguard Worker #define LWS_VISIBLE __attribute__((visibility("default")))
191*1c60b9acSAndroid Build Coastguard Worker #define LWS_EXTERN extern
192*1c60b9acSAndroid Build Coastguard Worker 
193*1c60b9acSAndroid Build Coastguard Worker #else /* not shared */
194*1c60b9acSAndroid Build Coastguard Worker #if defined(WIN32) || defined(_WIN32) || defined(__MINGW32__)
195*1c60b9acSAndroid Build Coastguard Worker #define LWS_VISIBLE
196*1c60b9acSAndroid Build Coastguard Worker #define LWS_EXTERN extern
197*1c60b9acSAndroid Build Coastguard Worker #else
198*1c60b9acSAndroid Build Coastguard Worker /*
199*1c60b9acSAndroid Build Coastguard Worker  * If we explicitly say hidden here, symbols exist as T but
200*1c60b9acSAndroid Build Coastguard Worker  * cannot be imported at link-time.
201*1c60b9acSAndroid Build Coastguard Worker  */
202*1c60b9acSAndroid Build Coastguard Worker #define LWS_VISIBLE
203*1c60b9acSAndroid Build Coastguard Worker #define LWS_EXTERN
204*1c60b9acSAndroid Build Coastguard Worker #endif
205*1c60b9acSAndroid Build Coastguard Worker 
206*1c60b9acSAndroid Build Coastguard Worker #endif /* not shared */
207*1c60b9acSAndroid Build Coastguard Worker 
208*1c60b9acSAndroid Build Coastguard Worker #define LWS_WARN_DEPRECATED __attribute__ ((deprecated))
209*1c60b9acSAndroid Build Coastguard Worker #define LWS_FORMAT(string_index) __attribute__ ((format(printf, string_index, string_index+1)))
210*1c60b9acSAndroid Build Coastguard Worker #else /* not GNUC */
211*1c60b9acSAndroid Build Coastguard Worker 
212*1c60b9acSAndroid Build Coastguard Worker #define LWS_VISIBLE
213*1c60b9acSAndroid Build Coastguard Worker #define LWS_WARN_UNUSED_RESULT
214*1c60b9acSAndroid Build Coastguard Worker #define LWS_WARN_DEPRECATED
215*1c60b9acSAndroid Build Coastguard Worker #define LWS_FORMAT(string_index)
216*1c60b9acSAndroid Build Coastguard Worker #if !defined(LWS_EXTERN)
217*1c60b9acSAndroid Build Coastguard Worker #define LWS_EXTERN extern
218*1c60b9acSAndroid Build Coastguard Worker #endif
219*1c60b9acSAndroid Build Coastguard Worker #endif
220*1c60b9acSAndroid Build Coastguard Worker 
221*1c60b9acSAndroid Build Coastguard Worker // __ANDROID__ is not defined for host builds, but this headers are available in
222*1c60b9acSAndroid Build Coastguard Worker // them.
223*1c60b9acSAndroid Build Coastguard Worker #if defined(__ANDROID__) || 1
224*1c60b9acSAndroid Build Coastguard Worker #include <netinet/in.h>
225*1c60b9acSAndroid Build Coastguard Worker #include <unistd.h>
226*1c60b9acSAndroid Build Coastguard Worker #endif
227*1c60b9acSAndroid Build Coastguard Worker #endif
228*1c60b9acSAndroid Build Coastguard Worker 
229*1c60b9acSAndroid Build Coastguard Worker #ifdef _WIN32
230*1c60b9acSAndroid Build Coastguard Worker #define random rand
231*1c60b9acSAndroid Build Coastguard Worker #else
232*1c60b9acSAndroid Build Coastguard Worker #if !defined(LWS_PLAT_OPTEE)
233*1c60b9acSAndroid Build Coastguard Worker #include <sys/time.h>
234*1c60b9acSAndroid Build Coastguard Worker #include <unistd.h>
235*1c60b9acSAndroid Build Coastguard Worker #endif
236*1c60b9acSAndroid Build Coastguard Worker #endif
237*1c60b9acSAndroid Build Coastguard Worker 
238*1c60b9acSAndroid Build Coastguard Worker #if defined(LWS_WITH_LIBUV_INTERNAL)
239*1c60b9acSAndroid Build Coastguard Worker #include <uv.h>
240*1c60b9acSAndroid Build Coastguard Worker 
241*1c60b9acSAndroid Build Coastguard Worker #ifdef LWS_HAVE_UV_VERSION_H
242*1c60b9acSAndroid Build Coastguard Worker #include <uv-version.h>
243*1c60b9acSAndroid Build Coastguard Worker #endif
244*1c60b9acSAndroid Build Coastguard Worker 
245*1c60b9acSAndroid Build Coastguard Worker #ifdef LWS_HAVE_NEW_UV_VERSION_H
246*1c60b9acSAndroid Build Coastguard Worker #include <uv/version.h>
247*1c60b9acSAndroid Build Coastguard Worker #endif
248*1c60b9acSAndroid Build Coastguard Worker #endif
249*1c60b9acSAndroid Build Coastguard Worker 
250*1c60b9acSAndroid Build Coastguard Worker #if defined(LWS_WITH_TLS)
251*1c60b9acSAndroid Build Coastguard Worker 
252*1c60b9acSAndroid Build Coastguard Worker #ifdef USE_WOLFSSL
253*1c60b9acSAndroid Build Coastguard Worker #ifdef USE_OLD_CYASSL
254*1c60b9acSAndroid Build Coastguard Worker #ifdef _WIN32
255*1c60b9acSAndroid Build Coastguard Worker /*
256*1c60b9acSAndroid Build Coastguard Worker  * Include user-controlled settings for windows from
257*1c60b9acSAndroid Build Coastguard Worker  * <wolfssl-root>/IDE/WIN/user_settings.h
258*1c60b9acSAndroid Build Coastguard Worker  */
259*1c60b9acSAndroid Build Coastguard Worker #include <IDE/WIN/user_settings.h>
260*1c60b9acSAndroid Build Coastguard Worker #include <cyassl/ctaocrypt/settings.h>
261*1c60b9acSAndroid Build Coastguard Worker #else
262*1c60b9acSAndroid Build Coastguard Worker #include <cyassl/options.h>
263*1c60b9acSAndroid Build Coastguard Worker #endif
264*1c60b9acSAndroid Build Coastguard Worker #include <cyassl/openssl/ssl.h>
265*1c60b9acSAndroid Build Coastguard Worker #include <cyassl/error-ssl.h>
266*1c60b9acSAndroid Build Coastguard Worker 
267*1c60b9acSAndroid Build Coastguard Worker #else
268*1c60b9acSAndroid Build Coastguard Worker #ifdef _WIN32
269*1c60b9acSAndroid Build Coastguard Worker /*
270*1c60b9acSAndroid Build Coastguard Worker  * Include user-controlled settings for windows from
271*1c60b9acSAndroid Build Coastguard Worker  * <wolfssl-root>/IDE/WIN/user_settings.h
272*1c60b9acSAndroid Build Coastguard Worker  */
273*1c60b9acSAndroid Build Coastguard Worker #include <IDE/WIN/user_settings.h>
274*1c60b9acSAndroid Build Coastguard Worker #include <wolfssl/wolfcrypt/settings.h>
275*1c60b9acSAndroid Build Coastguard Worker #else
276*1c60b9acSAndroid Build Coastguard Worker #include <wolfssl/options.h>
277*1c60b9acSAndroid Build Coastguard Worker #endif
278*1c60b9acSAndroid Build Coastguard Worker #include <wolfssl/openssl/ssl.h>
279*1c60b9acSAndroid Build Coastguard Worker #include <wolfssl/error-ssl.h>
280*1c60b9acSAndroid Build Coastguard Worker #endif /* not USE_OLD_CYASSL */
281*1c60b9acSAndroid Build Coastguard Worker #else
282*1c60b9acSAndroid Build Coastguard Worker #if defined(LWS_WITH_MBEDTLS)
283*1c60b9acSAndroid Build Coastguard Worker #if defined(LWS_PLAT_FREERTOS)
284*1c60b9acSAndroid Build Coastguard Worker /* this filepath is passed to us but without quotes or <> */
285*1c60b9acSAndroid Build Coastguard Worker #if !defined(LWS_AMAZON_RTOS)
286*1c60b9acSAndroid Build Coastguard Worker /* AMAZON RTOS has its own setting via MTK_MBEDTLS_CONFIG_FILE */
287*1c60b9acSAndroid Build Coastguard Worker #undef MBEDTLS_CONFIG_FILE
288*1c60b9acSAndroid Build Coastguard Worker #define MBEDTLS_CONFIG_FILE <mbedtls/esp_config.h>
289*1c60b9acSAndroid Build Coastguard Worker #endif
290*1c60b9acSAndroid Build Coastguard Worker #endif
291*1c60b9acSAndroid Build Coastguard Worker #if defined(LWS_WITH_TLS)
292*1c60b9acSAndroid Build Coastguard Worker #include <mbedtls/ssl.h>
293*1c60b9acSAndroid Build Coastguard Worker #include <mbedtls/entropy.h>
294*1c60b9acSAndroid Build Coastguard Worker #include <mbedtls/ctr_drbg.h>
295*1c60b9acSAndroid Build Coastguard Worker 
296*1c60b9acSAndroid Build Coastguard Worker #if !defined(MBEDTLS_PRIVATE)
297*1c60b9acSAndroid Build Coastguard Worker #define MBEDTLS_PRIVATE(_q) _q
298*1c60b9acSAndroid Build Coastguard Worker #endif
299*1c60b9acSAndroid Build Coastguard Worker 
300*1c60b9acSAndroid Build Coastguard Worker #endif
301*1c60b9acSAndroid Build Coastguard Worker #else
302*1c60b9acSAndroid Build Coastguard Worker #include <openssl/ssl.h>
303*1c60b9acSAndroid Build Coastguard Worker #if !defined(LWS_WITH_MBEDTLS)
304*1c60b9acSAndroid Build Coastguard Worker #include <openssl/err.h>
305*1c60b9acSAndroid Build Coastguard Worker #endif
306*1c60b9acSAndroid Build Coastguard Worker #endif
307*1c60b9acSAndroid Build Coastguard Worker #endif /* not USE_WOLFSSL */
308*1c60b9acSAndroid Build Coastguard Worker #endif
309*1c60b9acSAndroid Build Coastguard Worker 
310*1c60b9acSAndroid Build Coastguard Worker /*
311*1c60b9acSAndroid Build Coastguard Worker  * Helpers for pthread mutex in user code... if lws is built for
312*1c60b9acSAndroid Build Coastguard Worker  * multiple service threads, these resolve to pthread mutex
313*1c60b9acSAndroid Build Coastguard Worker  * operations.  In the case LWS_MAX_SMP is 1 (the default), they
314*1c60b9acSAndroid Build Coastguard Worker  * are all NOPs and no pthread type or api is referenced.
315*1c60b9acSAndroid Build Coastguard Worker  */
316*1c60b9acSAndroid Build Coastguard Worker 
317*1c60b9acSAndroid Build Coastguard Worker #if LWS_MAX_SMP > 1
318*1c60b9acSAndroid Build Coastguard Worker 
319*1c60b9acSAndroid Build Coastguard Worker #include <pthread.h>
320*1c60b9acSAndroid Build Coastguard Worker 
321*1c60b9acSAndroid Build Coastguard Worker #define lws_pthread_mutex(name) pthread_mutex_t name;
322*1c60b9acSAndroid Build Coastguard Worker 
323*1c60b9acSAndroid Build Coastguard Worker static LWS_INLINE void
lws_pthread_mutex_init(pthread_mutex_t * lock)324*1c60b9acSAndroid Build Coastguard Worker lws_pthread_mutex_init(pthread_mutex_t *lock)
325*1c60b9acSAndroid Build Coastguard Worker {
326*1c60b9acSAndroid Build Coastguard Worker 	pthread_mutex_init(lock, NULL);
327*1c60b9acSAndroid Build Coastguard Worker }
328*1c60b9acSAndroid Build Coastguard Worker 
329*1c60b9acSAndroid Build Coastguard Worker static LWS_INLINE void
lws_pthread_mutex_destroy(pthread_mutex_t * lock)330*1c60b9acSAndroid Build Coastguard Worker lws_pthread_mutex_destroy(pthread_mutex_t *lock)
331*1c60b9acSAndroid Build Coastguard Worker {
332*1c60b9acSAndroid Build Coastguard Worker 	pthread_mutex_destroy(lock);
333*1c60b9acSAndroid Build Coastguard Worker }
334*1c60b9acSAndroid Build Coastguard Worker 
335*1c60b9acSAndroid Build Coastguard Worker static LWS_INLINE void
lws_pthread_mutex_lock(pthread_mutex_t * lock)336*1c60b9acSAndroid Build Coastguard Worker lws_pthread_mutex_lock(pthread_mutex_t *lock)
337*1c60b9acSAndroid Build Coastguard Worker {
338*1c60b9acSAndroid Build Coastguard Worker 	pthread_mutex_lock(lock);
339*1c60b9acSAndroid Build Coastguard Worker }
340*1c60b9acSAndroid Build Coastguard Worker 
341*1c60b9acSAndroid Build Coastguard Worker static LWS_INLINE void
lws_pthread_mutex_unlock(pthread_mutex_t * lock)342*1c60b9acSAndroid Build Coastguard Worker lws_pthread_mutex_unlock(pthread_mutex_t *lock)
343*1c60b9acSAndroid Build Coastguard Worker {
344*1c60b9acSAndroid Build Coastguard Worker 	pthread_mutex_unlock(lock);
345*1c60b9acSAndroid Build Coastguard Worker }
346*1c60b9acSAndroid Build Coastguard Worker 
347*1c60b9acSAndroid Build Coastguard Worker #else
348*1c60b9acSAndroid Build Coastguard Worker #define lws_pthread_mutex(name)
349*1c60b9acSAndroid Build Coastguard Worker #define lws_pthread_mutex_init(_a)
350*1c60b9acSAndroid Build Coastguard Worker #define lws_pthread_mutex_destroy(_a)
351*1c60b9acSAndroid Build Coastguard Worker #define lws_pthread_mutex_lock(_a)
352*1c60b9acSAndroid Build Coastguard Worker #define lws_pthread_mutex_unlock(_a)
353*1c60b9acSAndroid Build Coastguard Worker #endif
354*1c60b9acSAndroid Build Coastguard Worker 
355*1c60b9acSAndroid Build Coastguard Worker 
356*1c60b9acSAndroid Build Coastguard Worker #define CONTEXT_PORT_NO_LISTEN -1
357*1c60b9acSAndroid Build Coastguard Worker #define CONTEXT_PORT_NO_LISTEN_SERVER -2
358*1c60b9acSAndroid Build Coastguard Worker 
359*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-logs.h>
360*1c60b9acSAndroid Build Coastguard Worker 
361*1c60b9acSAndroid Build Coastguard Worker 
362*1c60b9acSAndroid Build Coastguard Worker #include <stddef.h>
363*1c60b9acSAndroid Build Coastguard Worker 
364*1c60b9acSAndroid Build Coastguard Worker #ifndef lws_container_of
365*1c60b9acSAndroid Build Coastguard Worker #define lws_container_of(P,T,M)	((T *)((char *)(P) - offsetof(T, M)))
366*1c60b9acSAndroid Build Coastguard Worker #endif
367*1c60b9acSAndroid Build Coastguard Worker #define LWS_ALIGN_TO(x, bou) x += ((bou) - ((x) % (bou))) % (bou)
368*1c60b9acSAndroid Build Coastguard Worker 
369*1c60b9acSAndroid Build Coastguard Worker struct lws;
370*1c60b9acSAndroid Build Coastguard Worker 
371*1c60b9acSAndroid Build Coastguard Worker /* api change list for user code to test against */
372*1c60b9acSAndroid Build Coastguard Worker 
373*1c60b9acSAndroid Build Coastguard Worker #define LWS_FEATURE_SERVE_HTTP_FILE_HAS_OTHER_HEADERS_ARG
374*1c60b9acSAndroid Build Coastguard Worker 
375*1c60b9acSAndroid Build Coastguard Worker /* the struct lws_protocols has the id field present */
376*1c60b9acSAndroid Build Coastguard Worker #define LWS_FEATURE_PROTOCOLS_HAS_ID_FIELD
377*1c60b9acSAndroid Build Coastguard Worker 
378*1c60b9acSAndroid Build Coastguard Worker /* you can call lws_get_peer_write_allowance */
379*1c60b9acSAndroid Build Coastguard Worker #define LWS_FEATURE_PROTOCOLS_HAS_PEER_WRITE_ALLOWANCE
380*1c60b9acSAndroid Build Coastguard Worker 
381*1c60b9acSAndroid Build Coastguard Worker /* extra parameter introduced in 917f43ab821 */
382*1c60b9acSAndroid Build Coastguard Worker #define LWS_FEATURE_SERVE_HTTP_FILE_HAS_OTHER_HEADERS_LEN
383*1c60b9acSAndroid Build Coastguard Worker 
384*1c60b9acSAndroid Build Coastguard Worker /* File operations stuff exists */
385*1c60b9acSAndroid Build Coastguard Worker #define LWS_FEATURE_FOPS
386*1c60b9acSAndroid Build Coastguard Worker 
387*1c60b9acSAndroid Build Coastguard Worker 
388*1c60b9acSAndroid Build Coastguard Worker #if defined(_WIN32)
389*1c60b9acSAndroid Build Coastguard Worker #if !defined(LWS_WIN32_HANDLE_TYPES)
390*1c60b9acSAndroid Build Coastguard Worker typedef SOCKET lws_sockfd_type;
391*1c60b9acSAndroid Build Coastguard Worker #if defined(__MINGW32__)
392*1c60b9acSAndroid Build Coastguard Worker typedef int lws_filefd_type;
393*1c60b9acSAndroid Build Coastguard Worker #else
394*1c60b9acSAndroid Build Coastguard Worker typedef HANDLE lws_filefd_type;
395*1c60b9acSAndroid Build Coastguard Worker #endif
396*1c60b9acSAndroid Build Coastguard Worker #endif
397*1c60b9acSAndroid Build Coastguard Worker 
398*1c60b9acSAndroid Build Coastguard Worker 
399*1c60b9acSAndroid Build Coastguard Worker #define lws_pollfd pollfd
400*1c60b9acSAndroid Build Coastguard Worker #define LWS_POLLHUP	(POLLHUP)
401*1c60b9acSAndroid Build Coastguard Worker #define LWS_POLLIN	(POLLRDNORM | POLLRDBAND)
402*1c60b9acSAndroid Build Coastguard Worker #define LWS_POLLOUT	(POLLWRNORM)
403*1c60b9acSAndroid Build Coastguard Worker 
404*1c60b9acSAndroid Build Coastguard Worker #else
405*1c60b9acSAndroid Build Coastguard Worker 
406*1c60b9acSAndroid Build Coastguard Worker 
407*1c60b9acSAndroid Build Coastguard Worker #if defined(LWS_PLAT_FREERTOS)
408*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-freertos.h>
409*1c60b9acSAndroid Build Coastguard Worker #else
410*1c60b9acSAndroid Build Coastguard Worker typedef int lws_sockfd_type;
411*1c60b9acSAndroid Build Coastguard Worker typedef int lws_filefd_type;
412*1c60b9acSAndroid Build Coastguard Worker #endif
413*1c60b9acSAndroid Build Coastguard Worker 
414*1c60b9acSAndroid Build Coastguard Worker #if defined(LWS_PLAT_OPTEE)
415*1c60b9acSAndroid Build Coastguard Worker #include <time.h>
416*1c60b9acSAndroid Build Coastguard Worker struct timeval {
417*1c60b9acSAndroid Build Coastguard Worker 	time_t         	tv_sec;
418*1c60b9acSAndroid Build Coastguard Worker 	unsigned int    tv_usec;
419*1c60b9acSAndroid Build Coastguard Worker };
420*1c60b9acSAndroid Build Coastguard Worker #if defined(LWS_WITH_NETWORK)
421*1c60b9acSAndroid Build Coastguard Worker // #include <poll.h>
422*1c60b9acSAndroid Build Coastguard Worker #define lws_pollfd pollfd
423*1c60b9acSAndroid Build Coastguard Worker 
424*1c60b9acSAndroid Build Coastguard Worker struct timezone;
425*1c60b9acSAndroid Build Coastguard Worker 
426*1c60b9acSAndroid Build Coastguard Worker int gettimeofday(struct timeval *tv, struct timezone *tz);
427*1c60b9acSAndroid Build Coastguard Worker 
428*1c60b9acSAndroid Build Coastguard Worker     /* Internet address. */
429*1c60b9acSAndroid Build Coastguard Worker     struct in_addr {
430*1c60b9acSAndroid Build Coastguard Worker         uint32_t       s_addr;     /* address in network byte order */
431*1c60b9acSAndroid Build Coastguard Worker     };
432*1c60b9acSAndroid Build Coastguard Worker 
433*1c60b9acSAndroid Build Coastguard Worker typedef unsigned short sa_family_t;
434*1c60b9acSAndroid Build Coastguard Worker typedef unsigned short in_port_t;
435*1c60b9acSAndroid Build Coastguard Worker typedef uint32_t socklen_t;
436*1c60b9acSAndroid Build Coastguard Worker 
437*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-optee.h>
438*1c60b9acSAndroid Build Coastguard Worker 
439*1c60b9acSAndroid Build Coastguard Worker #if !defined(TEE_SE_READER_NAME_MAX)
440*1c60b9acSAndroid Build Coastguard Worker            struct addrinfo {
441*1c60b9acSAndroid Build Coastguard Worker                int              ai_flags;
442*1c60b9acSAndroid Build Coastguard Worker                int              ai_family;
443*1c60b9acSAndroid Build Coastguard Worker                int              ai_socktype;
444*1c60b9acSAndroid Build Coastguard Worker                int              ai_protocol;
445*1c60b9acSAndroid Build Coastguard Worker                socklen_t        ai_addrlen;
446*1c60b9acSAndroid Build Coastguard Worker                struct sockaddr *ai_addr;
447*1c60b9acSAndroid Build Coastguard Worker                char            *ai_canonname;
448*1c60b9acSAndroid Build Coastguard Worker                struct addrinfo *ai_next;
449*1c60b9acSAndroid Build Coastguard Worker            };
450*1c60b9acSAndroid Build Coastguard Worker #endif
451*1c60b9acSAndroid Build Coastguard Worker 
452*1c60b9acSAndroid Build Coastguard Worker ssize_t recv(int sockfd, void *buf, size_t len, int flags);
453*1c60b9acSAndroid Build Coastguard Worker ssize_t send(int sockfd, const void *buf, size_t len, int flags);
454*1c60b9acSAndroid Build Coastguard Worker ssize_t read(int fd, void *buf, size_t count);
455*1c60b9acSAndroid Build Coastguard Worker int getsockopt(int sockfd, int level, int optname,
456*1c60b9acSAndroid Build Coastguard Worker                       void *optval, socklen_t *optlen);
457*1c60b9acSAndroid Build Coastguard Worker        int setsockopt(int sockfd, int level, int optname,
458*1c60b9acSAndroid Build Coastguard Worker                       const void *optval, socklen_t optlen);
459*1c60b9acSAndroid Build Coastguard Worker int connect(int sockfd, const struct sockaddr *addr,
460*1c60b9acSAndroid Build Coastguard Worker                    socklen_t addrlen);
461*1c60b9acSAndroid Build Coastguard Worker 
462*1c60b9acSAndroid Build Coastguard Worker extern int errno;
463*1c60b9acSAndroid Build Coastguard Worker 
464*1c60b9acSAndroid Build Coastguard Worker uint16_t ntohs(uint16_t netshort);
465*1c60b9acSAndroid Build Coastguard Worker uint16_t htons(uint16_t hostshort);
466*1c60b9acSAndroid Build Coastguard Worker 
467*1c60b9acSAndroid Build Coastguard Worker int bind(int sockfd, const struct sockaddr *addr,
468*1c60b9acSAndroid Build Coastguard Worker                 socklen_t addrlen);
469*1c60b9acSAndroid Build Coastguard Worker 
470*1c60b9acSAndroid Build Coastguard Worker 
471*1c60b9acSAndroid Build Coastguard Worker #define  MSG_NOSIGNAL 0x4000
472*1c60b9acSAndroid Build Coastguard Worker #define	EAGAIN		11
473*1c60b9acSAndroid Build Coastguard Worker #define EINTR		4
474*1c60b9acSAndroid Build Coastguard Worker #define EWOULDBLOCK	EAGAIN
475*1c60b9acSAndroid Build Coastguard Worker #define	EADDRINUSE	98
476*1c60b9acSAndroid Build Coastguard Worker #define INADDR_ANY	0
477*1c60b9acSAndroid Build Coastguard Worker #define AF_INET		2
478*1c60b9acSAndroid Build Coastguard Worker #define SHUT_WR 1
479*1c60b9acSAndroid Build Coastguard Worker #define AF_UNSPEC	0
480*1c60b9acSAndroid Build Coastguard Worker #define PF_UNSPEC	0
481*1c60b9acSAndroid Build Coastguard Worker #define SOCK_STREAM	1
482*1c60b9acSAndroid Build Coastguard Worker #define SOCK_DGRAM	2
483*1c60b9acSAndroid Build Coastguard Worker # define AI_PASSIVE	0x0001
484*1c60b9acSAndroid Build Coastguard Worker #define IPPROTO_UDP	17
485*1c60b9acSAndroid Build Coastguard Worker #define SOL_SOCKET	1
486*1c60b9acSAndroid Build Coastguard Worker #define SO_SNDBUF	7
487*1c60b9acSAndroid Build Coastguard Worker #define	EISCONN		106
488*1c60b9acSAndroid Build Coastguard Worker #define	EALREADY	114
489*1c60b9acSAndroid Build Coastguard Worker #define	EINPROGRESS	115
490*1c60b9acSAndroid Build Coastguard Worker int shutdown(int sockfd, int how);
491*1c60b9acSAndroid Build Coastguard Worker int close(int fd);
492*1c60b9acSAndroid Build Coastguard Worker int atoi(const char *nptr);
493*1c60b9acSAndroid Build Coastguard Worker long long atoll(const char *nptr);
494*1c60b9acSAndroid Build Coastguard Worker 
495*1c60b9acSAndroid Build Coastguard Worker int socket(int domain, int type, int protocol);
496*1c60b9acSAndroid Build Coastguard Worker        int getaddrinfo(const char *node, const char *service,
497*1c60b9acSAndroid Build Coastguard Worker                        const struct addrinfo *hints,
498*1c60b9acSAndroid Build Coastguard Worker                        struct addrinfo **res);
499*1c60b9acSAndroid Build Coastguard Worker 
500*1c60b9acSAndroid Build Coastguard Worker        void freeaddrinfo(struct addrinfo *res);
501*1c60b9acSAndroid Build Coastguard Worker 
502*1c60b9acSAndroid Build Coastguard Worker #if !defined(TEE_SE_READER_NAME_MAX)
503*1c60b9acSAndroid Build Coastguard Worker struct lws_pollfd
504*1c60b9acSAndroid Build Coastguard Worker {
505*1c60b9acSAndroid Build Coastguard Worker         int fd;                     /* File descriptor to poll.  */
506*1c60b9acSAndroid Build Coastguard Worker         short int events;           /* Types of events poller cares about.  */
507*1c60b9acSAndroid Build Coastguard Worker         short int revents;          /* Types of events that actually occurred.  */
508*1c60b9acSAndroid Build Coastguard Worker };
509*1c60b9acSAndroid Build Coastguard Worker #endif
510*1c60b9acSAndroid Build Coastguard Worker 
511*1c60b9acSAndroid Build Coastguard Worker int poll(struct pollfd *fds, int nfds, int timeout);
512*1c60b9acSAndroid Build Coastguard Worker 
513*1c60b9acSAndroid Build Coastguard Worker #define LWS_POLLHUP (0x18)
514*1c60b9acSAndroid Build Coastguard Worker #define LWS_POLLIN (1)
515*1c60b9acSAndroid Build Coastguard Worker #define LWS_POLLOUT (4)
516*1c60b9acSAndroid Build Coastguard Worker #else
517*1c60b9acSAndroid Build Coastguard Worker struct lws_pollfd;
518*1c60b9acSAndroid Build Coastguard Worker struct sockaddr_in;
519*1c60b9acSAndroid Build Coastguard Worker #endif
520*1c60b9acSAndroid Build Coastguard Worker #else
521*1c60b9acSAndroid Build Coastguard Worker #define lws_pollfd pollfd
522*1c60b9acSAndroid Build Coastguard Worker #define LWS_POLLHUP (POLLHUP | POLLERR)
523*1c60b9acSAndroid Build Coastguard Worker #define LWS_POLLIN (POLLIN)
524*1c60b9acSAndroid Build Coastguard Worker #define LWS_POLLOUT (POLLOUT)
525*1c60b9acSAndroid Build Coastguard Worker #endif
526*1c60b9acSAndroid Build Coastguard Worker #endif
527*1c60b9acSAndroid Build Coastguard Worker 
528*1c60b9acSAndroid Build Coastguard Worker 
529*1c60b9acSAndroid Build Coastguard Worker #if (defined(WIN32) || defined(_WIN32)) && !defined(__MINGW32__)
530*1c60b9acSAndroid Build Coastguard Worker /* ... */
531*1c60b9acSAndroid Build Coastguard Worker #define ssize_t SSIZE_T
532*1c60b9acSAndroid Build Coastguard Worker #endif
533*1c60b9acSAndroid Build Coastguard Worker 
534*1c60b9acSAndroid Build Coastguard Worker #if defined(WIN32) && defined(LWS_HAVE__STAT32I64)
535*1c60b9acSAndroid Build Coastguard Worker #include <sys/types.h>
536*1c60b9acSAndroid Build Coastguard Worker #include <sys/stat.h>
537*1c60b9acSAndroid Build Coastguard Worker #endif
538*1c60b9acSAndroid Build Coastguard Worker 
539*1c60b9acSAndroid Build Coastguard Worker #if defined(LWS_HAVE_STDINT_H)
540*1c60b9acSAndroid Build Coastguard Worker #include <stdint.h>
541*1c60b9acSAndroid Build Coastguard Worker #else
542*1c60b9acSAndroid Build Coastguard Worker #if defined(WIN32) || defined(_WIN32)
543*1c60b9acSAndroid Build Coastguard Worker /* !!! >:-[  */
544*1c60b9acSAndroid Build Coastguard Worker typedef __int64 int64_t;
545*1c60b9acSAndroid Build Coastguard Worker typedef unsigned __int64 uint64_t;
546*1c60b9acSAndroid Build Coastguard Worker typedef __int32 int32_t;
547*1c60b9acSAndroid Build Coastguard Worker typedef unsigned __int32 uint32_t;
548*1c60b9acSAndroid Build Coastguard Worker typedef __int16 int16_t;
549*1c60b9acSAndroid Build Coastguard Worker typedef unsigned __int16 uint16_t;
550*1c60b9acSAndroid Build Coastguard Worker typedef unsigned __int8 uint8_t;
551*1c60b9acSAndroid Build Coastguard Worker #else
552*1c60b9acSAndroid Build Coastguard Worker typedef unsigned int uint32_t;
553*1c60b9acSAndroid Build Coastguard Worker typedef unsigned short uint16_t;
554*1c60b9acSAndroid Build Coastguard Worker typedef unsigned char uint8_t;
555*1c60b9acSAndroid Build Coastguard Worker #endif
556*1c60b9acSAndroid Build Coastguard Worker #endif
557*1c60b9acSAndroid Build Coastguard Worker 
558*1c60b9acSAndroid Build Coastguard Worker typedef int64_t lws_usec_t;
559*1c60b9acSAndroid Build Coastguard Worker typedef unsigned long long lws_filepos_t;
560*1c60b9acSAndroid Build Coastguard Worker typedef long long lws_fileofs_t;
561*1c60b9acSAndroid Build Coastguard Worker typedef uint32_t lws_fop_flags_t;
562*1c60b9acSAndroid Build Coastguard Worker 
563*1c60b9acSAndroid Build Coastguard Worker #define lws_concat_temp(_t, _l) (_t + sizeof(_t) - _l)
564*1c60b9acSAndroid Build Coastguard Worker #define lws_concat_used(_t, _l) (sizeof(_t) - _l)
565*1c60b9acSAndroid Build Coastguard Worker 
566*1c60b9acSAndroid Build Coastguard Worker /** struct lws_pollargs - argument structure for all external poll related calls
567*1c60b9acSAndroid Build Coastguard Worker  * passed in via 'in' */
568*1c60b9acSAndroid Build Coastguard Worker struct lws_pollargs {
569*1c60b9acSAndroid Build Coastguard Worker 	lws_sockfd_type fd;	/**< applicable socket descriptor */
570*1c60b9acSAndroid Build Coastguard Worker 	int events;		/**< the new event mask */
571*1c60b9acSAndroid Build Coastguard Worker 	int prev_events;	/**< the previous event mask */
572*1c60b9acSAndroid Build Coastguard Worker };
573*1c60b9acSAndroid Build Coastguard Worker 
574*1c60b9acSAndroid Build Coastguard Worker struct lws_extension; /* needed even with ws exts disabled for create context */
575*1c60b9acSAndroid Build Coastguard Worker struct lws_token_limits;
576*1c60b9acSAndroid Build Coastguard Worker struct lws_protocols;
577*1c60b9acSAndroid Build Coastguard Worker struct lws_context;
578*1c60b9acSAndroid Build Coastguard Worker struct lws_tokens;
579*1c60b9acSAndroid Build Coastguard Worker struct lws_vhost;
580*1c60b9acSAndroid Build Coastguard Worker struct lws;
581*1c60b9acSAndroid Build Coastguard Worker 
582*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-dll2.h>
583*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-map.h>
584*1c60b9acSAndroid Build Coastguard Worker 
585*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-fault-injection.h>
586*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-timeout-timer.h>
587*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-cache-ttl.h>
588*1c60b9acSAndroid Build Coastguard Worker #if defined(LWS_WITH_SYS_SMD)
589*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-smd.h>
590*1c60b9acSAndroid Build Coastguard Worker #endif
591*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-state.h>
592*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-retry.h>
593*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-adopt.h>
594*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-network-helper.h>
595*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-metrics.h>
596*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-system.h>
597*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-ws-close.h>
598*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-callbacks.h>
599*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-ws-state.h>
600*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-ws-ext.h>
601*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-protocols-plugins.h>
602*1c60b9acSAndroid Build Coastguard Worker 
603*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-context-vhost.h>
604*1c60b9acSAndroid Build Coastguard Worker 
605*1c60b9acSAndroid Build Coastguard Worker #if defined(LWS_WITH_CONMON)
606*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-conmon.h>
607*1c60b9acSAndroid Build Coastguard Worker #endif
608*1c60b9acSAndroid Build Coastguard Worker 
609*1c60b9acSAndroid Build Coastguard Worker #if defined(LWS_ROLE_MQTT)
610*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-mqtt.h>
611*1c60b9acSAndroid Build Coastguard Worker #endif
612*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-client.h>
613*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-http.h>
614*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-spa.h>
615*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-purify.h>
616*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-misc.h>
617*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-dsh.h>
618*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-service.h>
619*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-write.h>
620*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-writeable.h>
621*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-ring.h>
622*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-sha1-base64.h>
623*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-x509.h>
624*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-cgi.h>
625*1c60b9acSAndroid Build Coastguard Worker #if defined(LWS_WITH_FILE_OPS)
626*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-vfs.h>
627*1c60b9acSAndroid Build Coastguard Worker #endif
628*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-gencrypto.h>
629*1c60b9acSAndroid Build Coastguard Worker 
630*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-lejp.h>
631*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-lecp.h>
632*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-cose.h>
633*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-struct.h>
634*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-threadpool.h>
635*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-tokenize.h>
636*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-lwsac.h>
637*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-fts.h>
638*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-diskcache.h>
639*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-sequencer.h>
640*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-secure-streams.h>
641*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-secure-streams-policy.h>
642*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-secure-streams-client.h>
643*1c60b9acSAndroid Build Coastguard Worker 
644*1c60b9acSAndroid Build Coastguard Worker #if !defined(LWS_PLAT_FREERTOS)
645*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/abstract/abstract.h>
646*1c60b9acSAndroid Build Coastguard Worker 
647*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-test-sequencer.h>
648*1c60b9acSAndroid Build Coastguard Worker #endif
649*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-async-dns.h>
650*1c60b9acSAndroid Build Coastguard Worker 
651*1c60b9acSAndroid Build Coastguard Worker #if defined(LWS_WITH_TLS)
652*1c60b9acSAndroid Build Coastguard Worker 
653*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-tls-sessions.h>
654*1c60b9acSAndroid Build Coastguard Worker 
655*1c60b9acSAndroid Build Coastguard Worker #if defined(LWS_WITH_MBEDTLS)
656*1c60b9acSAndroid Build Coastguard Worker #include <mbedtls/md5.h>
657*1c60b9acSAndroid Build Coastguard Worker #include <mbedtls/sha1.h>
658*1c60b9acSAndroid Build Coastguard Worker #include <mbedtls/sha256.h>
659*1c60b9acSAndroid Build Coastguard Worker #include <mbedtls/sha512.h>
660*1c60b9acSAndroid Build Coastguard Worker #endif
661*1c60b9acSAndroid Build Coastguard Worker 
662*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-genhash.h>
663*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-genrsa.h>
664*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-genaes.h>
665*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-genec.h>
666*1c60b9acSAndroid Build Coastguard Worker 
667*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-jwk.h>
668*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-jose.h>
669*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-jws.h>
670*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-jwe.h>
671*1c60b9acSAndroid Build Coastguard Worker 
672*1c60b9acSAndroid Build Coastguard Worker #endif
673*1c60b9acSAndroid Build Coastguard Worker 
674*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-eventlib-exports.h>
675*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-i2c.h>
676*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-spi.h>
677*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-gpio.h>
678*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-bb-i2c.h>
679*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-bb-spi.h>
680*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-button.h>
681*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-led.h>
682*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-pwm.h>
683*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-display.h>
684*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-ssd1306-i2c.h>
685*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-ili9341-spi.h>
686*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-settings.h>
687*1c60b9acSAndroid Build Coastguard Worker #include <libwebsockets/lws-netdev.h>
688*1c60b9acSAndroid Build Coastguard Worker 
689*1c60b9acSAndroid Build Coastguard Worker #ifdef __cplusplus
690*1c60b9acSAndroid Build Coastguard Worker }
691*1c60b9acSAndroid Build Coastguard Worker #endif
692*1c60b9acSAndroid Build Coastguard Worker 
693*1c60b9acSAndroid Build Coastguard Worker #endif
694