There's no IOKit on the Apple TV.
authorRolf Bjarne Kvinge <rolf@xamarin.com>
Fri, 11 Sep 2015 13:12:16 +0000 (15:12 +0200)
committerRolf Bjarne Kvinge <rolf@xamarin.com>
Fri, 11 Sep 2015 13:25:47 +0000 (15:25 +0200)
mono/metadata/mono-route.h
support/serial.c

index 333a24367ad95d4b16037cab11752952baf20e56..4bafef4653c25d7cf3d349a163add7ec6456dacc 100644 (file)
@@ -5,7 +5,7 @@
 
 #include <sys/socket.h>
 
-#ifdef HOST_IOS
+#if defined (HOST_IOS) || defined (HOST_WATCHOS) || defined (HOST_APPLETVOS)
 // The iOS SDK does not provide the net/route.h header but using the Darwin version works fine.
 #include "../../support/ios/net/route.h"
 #else
index 94d7e0b19f5d72c19bb9aa3808b17e0d22f391a8..ec02e48b5e8bd37a30601aa90c5332e9bcfecba1 100644 (file)
 
 /* sys/time.h (for timeval) is required when using osx 10.3 (but not 10.4) */
 /* IOKit is a private framework in iOS, so exclude there */
-#if defined(__APPLE__) && !defined(HOST_IOS)
+#if defined(__APPLE__) && !defined(HOST_IOS) && !defined(HOST_WATCHOS) && !defined(HOST_APPLETVOS)
+#define HAVE_IOKIT 1
+#endif
+
+#if defined(HAVE_IOKIT)
 #include <sys/time.h>
 #include <IOKit/IOKitLib.h>
 #include <IOKit/serial/IOSerialKeys.h>
@@ -384,7 +388,7 @@ set_attributes (int fd, int baud_rate, MonoParity parity, int dataBits, MonoStop
                if (cfsetospeed (&newtio, baud_rate) < 0 || cfsetispeed (&newtio, baud_rate) < 0)
                        return FALSE;
        } else {
-#if __linux__ || (defined(__APPLE__) && !defined(HOST_IOS))
+#if __linux__ || defined(HAVE_IOKIT)
 
                /* On Linux to set a custom baud rate, we must set the
                 * "standard" baud_rate to 38400.   On Apple we set it purely
@@ -417,7 +421,7 @@ set_attributes (int fd, int baud_rate, MonoParity parity, int dataBits, MonoStop
                {
                        return FALSE;
                }
-#elif defined(__APPLE__) && !defined(HOST_IOS)
+#elif defined(HAVE_IOKIT)
                speed_t speed = baud_rate;
                if (ioctl(fd, IOSSIOSPEED, &speed) == -1)
                        return FALSE;