diff options
| author | Ole André Vadla Ravnås <oleavr@gmail.com> | 2022-03-29 02:15:11 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-03-29 02:15:11 +0200 |
| commit | 74fb47a5d40df686d30cf87b895a48e6e1dcbdc4 (patch) | |
| tree | 7b75287b759ca817000f50821ab58afb22ab962a | |
| parent | b29c220387d78a48d78186628d4653c89da5dd30 (diff) | |
Add support for QNX (#654)
| -rw-r--r-- | meson.build | 6 | ||||
| -rwxr-xr-x | usrsctplib/netinet/sctp_os_userspace.h | 4 | ||||
| -rwxr-xr-x | usrsctplib/netinet/sctp_userspace.c | 2 | ||||
| -rwxr-xr-x | usrsctplib/user_environment.c | 10 |
4 files changed, 17 insertions, 5 deletions
diff --git a/meson.build b/meson.build index a1d68c1..51a4a43 100644 --- a/meson.build +++ b/meson.build @@ -77,6 +77,10 @@ elif system in ['darwin', 'ios'] '-Wno-address-of-packed-member', '-Wno-deprecated-declarations', ]), language: 'c') +elif system == 'qnx' + add_project_arguments([ + '-D_QNX_SOURCE', + ], language: 'c') elif system == 'windows' dependencies += compiler.find_library('ws2_32', required: true) dependencies += compiler.find_library('iphlpapi', required: true) @@ -91,7 +95,7 @@ else endif # Feature: sys/queue -if compiler.has_header('sys/queue.h') +if system != 'qnx' and compiler.has_header('sys/queue.h') add_project_arguments('-DHAVE_SYS_QUEUE_H', language: 'c') endif diff --git a/usrsctplib/netinet/sctp_os_userspace.h b/usrsctplib/netinet/sctp_os_userspace.h index b0d72bd..fbd3b8a 100755 --- a/usrsctplib/netinet/sctp_os_userspace.h +++ b/usrsctplib/netinet/sctp_os_userspace.h @@ -1074,6 +1074,8 @@ sctp_get_mbuf_for_msg(unsigned int space_needed, int want_header, int how, int a #define CMSG_ALIGN(n) _ALIGN(n) #elif defined(__NetBSD__) #define CMSG_ALIGN(n) (((n) + __ALIGNBYTES) & ~__ALIGNBYTES) +#elif defined(__QNX__) +#define CMSG_ALIGN(n) __CMSG_ALIGN(n) #elif defined(__APPLE__) #if !defined(__DARWIN_ALIGNBYTES) #define __DARWIN_ALIGNBYTES (sizeof(__darwin_size_t) - 1) @@ -1137,7 +1139,7 @@ sctp_get_mbuf_for_msg(unsigned int space_needed, int want_header, int how, int a #define SCTP_IS_LISTENING(inp) ((inp->sctp_flags & SCTP_PCB_FLAGS_ACCEPTING) != 0) -#if defined(__APPLE__) || defined(__DragonFly__) || defined(__linux__) || defined(__native_client__) || defined(__NetBSD__) || defined(_WIN32) || defined(__Fuchsia__) || defined(__EMSCRIPTEN__) +#if defined(__APPLE__) || defined(__DragonFly__) || defined(__linux__) || defined(__native_client__) || defined(__NetBSD__) || defined(__QNX__) || defined(_WIN32) || defined(__Fuchsia__) || defined(__EMSCRIPTEN__) int timingsafe_bcmp(const void *, const void *, size_t); #endif diff --git a/usrsctplib/netinet/sctp_userspace.c b/usrsctplib/netinet/sctp_userspace.c index 3106062..7188890 100755 --- a/usrsctplib/netinet/sctp_userspace.c +++ b/usrsctplib/netinet/sctp_userspace.c @@ -137,7 +137,7 @@ sctp_userspace_get_mtu_from_ifn(uint32_t if_index) } #endif -#if defined(__APPLE__) || defined(__DragonFly__) || defined(__linux__) || defined(__native_client__) || defined(__NetBSD__) || defined(_WIN32) || defined(__Fuchsia__) || defined(__EMSCRIPTEN__) +#if defined(__APPLE__) || defined(__DragonFly__) || defined(__linux__) || defined(__native_client__) || defined(__NetBSD__) || defined(__QNX__) || defined(_WIN32) || defined(__Fuchsia__) || defined(__EMSCRIPTEN__) int timingsafe_bcmp(const void *b1, const void *b2, size_t n) { diff --git a/usrsctplib/user_environment.c b/usrsctplib/user_environment.c index 1887718..fc3076d 100755 --- a/usrsctplib/user_environment.c +++ b/usrsctplib/user_environment.c @@ -172,15 +172,21 @@ finish_random(void) { return; } -#elif (defined(__ANDROID__) && (__ANDROID_API__ < 28)) || defined(__EMSCRIPTEN__) +#elif (defined(__ANDROID__) && (__ANDROID_API__ < 28)) || defined(__QNX__) || defined(__EMSCRIPTEN__) #include <fcntl.h> +#ifdef __QNX__ +#define SCTP_RANDOM_DEVICE "/dev/random" +#else +#define SCTP_RANDOM_DEVICE "/dev/urandom" +#endif + static int fd = -1; void init_random(void) { - fd = open("/dev/urandom", O_RDONLY); + fd = open(SCTP_RANDOM_DEVICE, O_RDONLY); return; } |
