#define ADDRESS_FAMILY unsigned __int8
#define IPVERSION 4
#define MAXTTL 255
+/* VS2010 comes with stdint.h */
+#if _MSC_VER >= 1600
+#include <stdint.h>
+#else
#define uint64_t unsigned __int64
+#define uint32_t unsigned __int32
+#define int32_t __int32
+#define uint16_t unsigned __int16
+#define int16_t __int16
+#define uint8_t unsigned __int8
+#define int8_t __int8
+#endif
+#ifndef _SIZE_T_DEFINED
+#define size_t __int32
+#endif
#define u_long unsigned __int64
#define u_int unsigned __int32
-#define uint32_t unsigned __int32
#define u_int32_t unsigned __int32
-#define int32_t __int32
-#define int16_t __int16
-#define uint16_t unsigned __int16
#define u_int16_t unsigned __int16
-#define uint8_t unsigned __int8
#define u_int8_t unsigned __int8
-#define int8_t __int8
#define u_char unsigned char
#define n_short unsigned __int16
#define u_short unsigned __int16
-#define ssize_t __int64
-#define size_t __int32
#define n_time unsigned __int32
#define sa_family_t unsigned __int8
+#define ssize_t __int64
#define IFNAMSIZ 64
#define __func__ __FUNCTION__
#else /* !defined(Userspace_os_Windows) */
#include <sys/cdefs.h> /* needed? added from old __FreeBSD__ */
#include <sys/socket.h>
-#if defined(__Userspace_os_FreeBSD) || defined(__Userspace_os_OpenBSD) || defined(__Userspace_os_Linux)
+#if defined(__Userspace_os_DragonFly) || defined(__Userspace_os_FreeBSD) || defined(__Userspace_os_Linux) || defined(__Userspace_os_NetBSD) || defined(__Userspace_os_OpenBSD)
#include <pthread.h>
#endif
typedef pthread_mutex_t userland_mutex_t;
#define MA_OWNED 7 /* sys/mutex.h typically on FreeBSD */
#if !defined(__Userspace_os_FreeBSD)
struct mtx {int dummy;};
+#if !defined(__Userspace_os_NetBSD)
struct selinfo {int dummy;};
+#endif
struct sx {int dummy;};
#endif
#include <netinet/ip6.h>
#include <netinet/icmp6.h>
#endif
-#if defined(__Userspace_os_Linux) || defined(__Userspace_os_Darwin) || defined(__Userspace_os_FreeBSD) || defined(__Userspace_os_OpenBSD) ||defined(__Userspace_os_Windows)
+#if defined(__Userspace_os_Darwin) || defined(__Userspace_os_FreeBSD) || defined(__Userspace_os_Linux) || defined(__Userspace_os_NetBSD) || defined(__Userspace_os_OpenBSD) || defined(__Userspace_os_Windows)
#include "user_ip6_var.h"
#else
#include <netinet6/ip6_var.h>
/* with the current included files, this is defined in Linux but
* in FreeBSD, it is behind a _KERNEL in sys/socket.h ...
*/
-#if defined(__Userspace_os_FreeBSD) || defined(__Userspace_os_OpenBSD)
+#if defined(__Userspace_os_DragonFly) || defined(__Userspace_os_FreeBSD) || defined(__Userspace_os_OpenBSD)
/* stolen from /usr/include/sys/socket.h */
#define CMSG_ALIGN(n) _ALIGN(n)
+#elif defined(__Userspace_os_NetBSD)
+#define CMSG_ALIGN(n) (((n) + __ALIGNBYTES) & ~__ALIGNBYTES)
#elif defined(__Userspace_os_Darwin)
#if !defined(__DARWIN_ALIGNBYTES)
#define __DARWIN_ALIGNBYTES (sizeof(__darwin_size_t) - 1)
(var) = (tvar))
#endif
#endif
+#if defined(__Userspace_os_DragonFly)
+#define TAILQ_FOREACH_SAFE TAILQ_FOREACH_MUTABLE
+#define LIST_FOREACH_SAFE LIST_FOREACH_MUTABLE
+#endif
#endif