From a6be19d8cf0784d54ed9e1146050bbd87a242029 Mon Sep 17 00:00:00 2001 From: Siddharth Purohit Date: Sat, 20 Jan 2018 02:20:19 +0530 Subject: [PATCH] HAL_SITL: fix sitl build for mac osx --- libraries/AP_HAL_SITL/UARTDriver.cpp | 5 ++++- libraries/AP_HAL_SITL/UART_utils.cpp | 12 ++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/libraries/AP_HAL_SITL/UARTDriver.cpp b/libraries/AP_HAL_SITL/UARTDriver.cpp index 2ac2528ab1..918a7075d4 100644 --- a/libraries/AP_HAL_SITL/UARTDriver.cpp +++ b/libraries/AP_HAL_SITL/UARTDriver.cpp @@ -414,8 +414,11 @@ bool UARTDriver::set_unbuffered_writes(bool on) { // this has no effect unsigned v = fcntl(_fd, F_GETFL, 0); v &= ~O_NONBLOCK; +#if defined(__APPLE__) && defined(__MACH__) + fcntl(_fd, F_SETFL | F_NOCACHE, v | O_SYNC); +#else fcntl(_fd, F_SETFL, v | O_DIRECT | O_SYNC); - +#endif return _unbuffered_writes; } diff --git a/libraries/AP_HAL_SITL/UART_utils.cpp b/libraries/AP_HAL_SITL/UART_utils.cpp index e89ca4e396..9117f66d1e 100644 --- a/libraries/AP_HAL_SITL/UART_utils.cpp +++ b/libraries/AP_HAL_SITL/UART_utils.cpp @@ -19,7 +19,7 @@ #include "UARTDriver.h" -#ifdef __CYGWIN__ +#if defined(__CYGWIN__) || defined(__APPLE__) #include #else #include @@ -35,7 +35,7 @@ bool HALSITL::UARTDriver::set_speed(int speed) if (_fd < 0) { return false; } -#ifdef __CYGWIN__ +#if defined(__CYGWIN__) || defined(__APPLE__) struct termios t; tcgetattr(_fd, &t); cfsetspeed(&t, speed); @@ -68,7 +68,7 @@ void HALSITL::UARTDriver::configure_parity(uint8_t v) if (_fd < 0) { return; } -#ifdef __CYGWIN__ +#if defined(__CYGWIN__) || defined(__APPLE__) struct termios t; tcgetattr(_fd, &t); @@ -93,7 +93,7 @@ void HALSITL::UARTDriver::configure_parity(uint8_t v) t.c_cflag &= ~PARENB; } -#ifdef __CYGWIN__ +#if defined(__CYGWIN__) || defined(__APPLE__) tcsetattr(_fd, TCSANOW, &t); #else ioctl(_fd, TCSETS2, &t); @@ -105,7 +105,7 @@ void HALSITL::UARTDriver::set_stop_bits(int n) if (_fd < 0) { return; } -#ifdef __CYGWIN__ +#if defined(__CYGWIN__) || defined(__APPLE__) struct termios t; tcgetattr(_fd, &t); @@ -123,7 +123,7 @@ void HALSITL::UARTDriver::set_stop_bits(int n) t.c_cflag &= ~CSTOPB; } -#ifdef __CYGWIN__ +#if defined(__CYGWIN__) || defined(__APPLE__) tcsetattr(_fd, TCSANOW, &t); #else ioctl(_fd, TCSETS2, &t);