Print this page

        

@@ -14,11 +14,11 @@
  */
 
 /* platform dependent */
 
 #if !defined(linux) && !defined(__NetBSD__) && !defined(__FreeBSD__) && \
-  !defined(__APPLE__) && !defined(__OpenBSD__)
+  !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__sun)
 #error PTPD hasn't been ported to this OS - should be possible \
 if it's POSIX compatible, if you succeed, report it to ptpd-devel@sourceforge.net
 #endif
 
 #ifdef  linux

@@ -72,10 +72,40 @@
 # elif BYTE_ORDER == BIG_ENDIAN
 #   define PTPD_MSBF
 # endif
 #endif
 
+#ifdef __sun
+/* Solarish (Illumos & Oracle Solaris) definitions. */
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/sockio.h>
+#include <netinet/in.h>
+#include <net/if.h>
+#include <net/if_dl.h>
+#include <net/if_types.h>
+#include <sys/ethernet.h>
+#include <sys/uio.h>
+#include <ifaddrs.h>
+
+#define ETHER_ADDR_LEN ETHERADDRL
+#define IFACE_NAME_LENGTH         IF_NAMESIZE
+#define NET_ADDRESS_LENGTH        INET_ADDRSTRLEN
+#define ETHER_HDR_LEN   sizeof (struct ether_header)
+
+#define adjtimex ntp_adjtime
+
+#include <sys/isa_defs.h>
+#ifdef _LITTLE_ENDIAN
+#define PTPD_LSBF
+#elif defined(_BIG_ENDIAN)
+#define PTPD_MSBF
+#endif
+
+#endif /* __sun */
+
 #define CLOCK_IDENTITY_LENGTH 8
 #define ADJ_FREQ_MAX 500000
 
 /* UDP/IPv4 dependent */
 #ifndef INADDR_LOOPBACK