]> sigrok.org Git - libserialport.git/blobdiff - libserialport_internal.h
Define _POSIX_C_SOURCE to 199309L to get clock_gettime().
[libserialport.git] / libserialport_internal.h
index 46c77a8b65446ebf6cbe07ceba4c210051f25ae4..0ad6f701a05a631e7d22daefa4e1f1c1caa6c215 100644 (file)
@@ -26,6 +26,8 @@
 /* For timeradd, timersub, timercmp, realpath. */
 #define _BSD_SOURCE 1 /* for glibc < 2.19 */
 #define _DEFAULT_SOURCE 1 /* for glibc >= 2.20 */
+/* For clock_gettime and associated types. */
+#define _POSIX_C_SOURCE 199309L
 #endif
 
 #include <string.h>
        static const GUID name = { l,w1,w2,{ b1,b2,b3,b4,b5,b6,b7,b8 } }
 #include <usbioctl.h>
 #include <usbiodef.h>
+#include "windows_ddk.h"
 #else
 #include <limits.h>
 #include <termios.h>
 #include <sys/ioctl.h>
 #include <sys/time.h>
+#include <time.h>
 #include <poll.h>
 #endif
 #ifdef __APPLE__
@@ -60,6 +64,7 @@
 #include <IOKit/serial/IOSerialKeys.h>
 #include <IOKit/serial/ioss.h>
 #include <sys/syslimits.h>
+#include <mach/mach_time.h>
 #endif
 #ifdef __linux__
 #include <dirent.h>
 #define TIOCOUTQ FIONWRITE
 #endif
 
+/*
+ * O_CLOEXEC is not available everywhere, fallback to not setting the
+ * flag on those systems.
+ */
+#ifndef _WIN32
+#ifndef O_CLOEXEC
+#define O_CLOEXEC 0
+#endif
+#endif
+
 /* Non-standard baudrates are not available everywhere. */
 #if (defined(HAVE_TERMIOS_SPEED) || defined(HAVE_TERMIOS2_SPEED)) && HAVE_DECL_BOTHER
 #define USE_TERMIOS_SPEED