From 9664809da36bd7bada3e44f50cfc042539fb61ee Mon Sep 17 00:00:00 2001
From: Paul Eggleton <paul.eggleton@linux.intel.com>
Date: Sun, 14 Jul 2019 19:13:21 -0700
Subject: [PATCH] Fix building with musl

Upstream-Status: Pending

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
 termios2.c | 27 +++++++++++++++++++++++++++
 termios2.h |  5 +++++
 2 files changed, 32 insertions(+)

diff --git a/termios2.c b/termios2.c
index 97c3be0..88ff6fc 100644
--- a/termios2.c
+++ b/termios2.c
@@ -37,6 +37,7 @@
 #include <errno.h>
 #include <termios.h>
 #include <sys/ioctl.h>
+#include <asm/ioctls.h>
 
 /* Contains the definition of the termios2 structure and some related
    constants that we should normally include from system
@@ -53,6 +54,10 @@
 */
 #define IBAUD0 020000000000
 
+#if !defined(__GLIBC__)
+#define __MAX_BAUD B4000000
+#endif
+
 int
 tc2setattr(int fd, int optional_actions, const struct termios *tios)
 {
@@ -79,8 +84,13 @@ tc2setattr(int fd, int optional_actions, const struct termios *tios)
     t2.c_cflag = tios->c_cflag;
     t2.c_lflag = tios->c_lflag;
     t2.c_line = tios->c_line;
+#if !defined(__GLIBC__)
+    t2.c_ispeed = tios->__c_ispeed;
+    t2.c_ospeed = tios->__c_ospeed;
+#else
     t2.c_ispeed = tios->c_ispeed;
     t2.c_ospeed = tios->c_ospeed;
+#endif
     memcpy(&t2.c_cc[0], &tios->c_cc[0], K_NCCS * sizeof (cc_t));
 
     return ioctl(fd, cmd, &t2);
@@ -101,8 +111,13 @@ tc2getattr(int fd, struct termios *tios)
     tios->c_cflag = t2.c_cflag;
     tios->c_lflag = t2.c_lflag;
     tios->c_line = t2.c_line;
+#if !defined(__GLIBC__)
+    tios->__c_ispeed = t2.c_ispeed;
+    tios->__c_ospeed = t2.c_ospeed;
+#else
     tios->c_ispeed = t2.c_ispeed;
     tios->c_ospeed = t2.c_ospeed;
+#endif
     memcpy(&tios->c_cc[0], &t2.c_cc[0], K_NCCS * sizeof (cc_t));
 
     for (i = K_NCCS; i < NCCS; i++)
@@ -131,7 +146,11 @@ cf2setispeed(struct termios *tios, speed_t speed)
         errno = EINVAL;
         return -1;
     }
+#if !defined(__GLIBC__)
+    tios->__c_ispeed = speed;
+#else
     tios->c_ispeed = speed;
+#endif
     tios->c_cflag &= ~((CBAUD | CBAUDEX) << IBSHIFT);
     tios->c_cflag |= (speed << IBSHIFT);
 
@@ -156,7 +175,11 @@ cf2setospeed_custom(struct termios *tios, int speed)
     }
     tios->c_cflag &= ~(CBAUD | CBAUDEX);
     tios->c_cflag |= BOTHER;
+#if !defined(__GLIBC__)
+    tios->__c_ospeed = speed;
+#else
     tios->c_ospeed = speed;
+#endif
 
     return 0;
 }
@@ -177,7 +200,11 @@ cf2setispeed_custom(struct termios *tios, int speed)
     } else {
         tios->c_cflag &= ~((CBAUD | CBAUDEX) << IBSHIFT);
         tios->c_cflag |= (BOTHER << IBSHIFT);
+#if !defined(__GLIBC__)
+        tios->__c_ispeed = speed;
+#else
         tios->c_ispeed = speed;
+#endif
     }
 
     return 0;
diff --git a/termios2.h b/termios2.h
index e13b0e3..63dd0ce 100644
--- a/termios2.h
+++ b/termios2.h
@@ -37,8 +37,13 @@
 /* And define these new ones */
 #define cfsetospeed_custom cf2setospeed_custom
 #define cfsetispeed_custom cf2setispeed_custom
+#if defined(__linux__) && !defined(__GLIBC__)
+#define cfgetospeed_custom(tiop) ((tiop)->__c_ospeed)
+#define cfgetispeed_custom(tiop) ((tiop)->__c_ispeed)
+#else
 #define cfgetospeed_custom(tiop) ((tiop)->c_ospeed)
 #define cfgetispeed_custom(tiop) ((tiop)->c_ispeed)
+#endif
 
 /* Replacements for the standard tcsetattr(3), tcgetattr(3)
  * functions. Same user interface, but these use the new termios2
