diff options
Diffstat (limited to 'include/curl/system.h')
-rw-r--r-- | include/curl/system.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/include/curl/system.h b/include/curl/system.h index faf8fcf84..67d383150 100644 --- a/include/curl/system.h +++ b/include/curl/system.h @@ -348,6 +348,27 @@ # define CURL_PULL_SYS_TYPES_H 1 # define CURL_PULL_SYS_SOCKET_H 1 +#elif defined(FreeRTOS) /* Life on FreeRTOS */ + +#if (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 4) || \ + (defined(__LONG_MAX__) && __LONG_MAX__ == 2147483647L) +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +#else +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# endif +# define CURL_FREERTOS_SOCKETS_H 1 +# define CURL_TYPEOF_CURL_SOCKLEN_T uint32_t +# define CURL_AVOID_SYS_TYPES_H 1 +# define CURL_AVOID_SYS_SOCKET_H 1 + /* ===================================== */ /* KEEP MSVC THE PENULTIMATE ENTRY */ /* ===================================== */ @@ -430,6 +451,29 @@ # include <sys/types.h> #endif +#ifdef CURL_FREERTOS_SOCKETS_H +# include <FreeRTOS.h> +# include <FreeRTOS_Sockets.h> +#include <stdint.h> +#include <stddef.h> +/* for the base type etc */ +#include "portmacro.h" +#define curl_fd_set_typedefed +typedef SocketSet_t curl_fd_set; +#define curl_struct_sockaddr freertos_sockaddr +#define curl_setsockopt(a,b,c,d,e) FreeRTOS_setsockopt(a,b,c,d,e) +#define curl_connect(a,b,c) FreeRTOS_connect(a,b,c) +#define curl_bind(a,b,c) FreeRTOS_bind(a,b,c) +#define curl_recv(a,b,c,d) FreeRTOS_recv(a,b,c,d) +#define curl_socket(a,b,c) FreeRTOS_socket(a,b,c) +/* not quite socket-style API */ +#define CURL_FD_SET(a,b,c) FreeRTOS_FD_SET(a,b,c) +/* struct sockaddr "fix" */ +#define sa_family sin_family +/* use our private pollfd struct alternative */ +#define curl_pollfd curl_waitfd +#endif + /* CURL_PULL_SYS_SOCKET_H is defined above when inclusion of header file */ /* sys/socket.h is required here to properly make type definitions below. */ #ifdef CURL_PULL_SYS_SOCKET_H @@ -480,6 +524,38 @@ #endif /* + * For the standard systems + */ +#ifndef curl_struct_sockaddr +#define curl_struct_sockaddr sockaddr +#endif +#ifndef curl_fd_set_typedefed +#define curl_fd_set_typedefed +typedef fd_set curl_fd_set; +#endif +#ifndef curl_pollfd +#define curl_pollfd pollfd +#endif +#ifndef curl_setsockopt +#define curl_setsockopt(a,b,c,d,e) setsockopt(a,b,c,d,e) +#endif +#ifndef curl_bind +#define curl_bind(a,b,c) bind(a,b,c) +#endif +#ifndef curl_connect +#define curl_connect(a,b,c) connect(a,b,c) +#endif +#ifndef curl_recv +#define curl_recv(a,b,c,d) recv(a,b,c,d) +#endif +#ifndef curl_socket +#define curl_socket(a,b,c) socket(a,b,c) +#endif +#ifndef CURL_FD_SET +#define CURL_FD_SET(a,b,c) FD_SET(a,b) +#endif + +/* * Macros for minimum-width signed and unsigned curl_off_t integer constants. */ |