From 524ec8f2f54c2754a90611ffe1865cbb02dad183 Mon Sep 17 00:00:00 2001
From: Bryant Mairs <bryant@mai.rs>
Date: Sat, 7 Dec 2019 05:21:14 -0800
Subject: [PATCH] Add TIOCSBRK/TIOCCBRK to more supported platforms

Reorganized some constants as well so they're grouped a bit better.
---
 src/unix/bsd/apple/mod.rs                          |  2 --
 src/unix/bsd/freebsdlike/mod.rs                    |  2 --
 src/unix/bsd/mod.rs                                |  3 +++
 src/unix/linux_like/linux/gnu/b32/mod.rs           |  3 +++
 src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs   | 11 ++++++-----
 src/unix/linux_like/linux/gnu/b64/mips64/mod.rs    |  2 ++
 src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs |  2 ++
 src/unix/linux_like/linux/gnu/b64/s390x.rs         |  2 ++
 src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs   |  2 ++
 src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs    |  2 ++
 src/unix/linux_like/linux/musl/b32/hexagon.rs      |  2 --
 src/unix/linux_like/linux/musl/mod.rs              |  3 +++
 12 files changed, 25 insertions(+), 11 deletions(-)

diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs
index 8f86dcac..04e0837f 100644
--- a/src/unix/bsd/apple/mod.rs
+++ b/src/unix/bsd/apple/mod.rs
@@ -1760,8 +1760,6 @@ pub const TIOCGETD: ::c_ulong = 0x4004741a;
 pub const TIOCSETD: ::c_ulong = 0x8004741b;
 pub const TIOCIXON: ::c_uint = 0x20007481;
 pub const TIOCIXOFF: ::c_uint = 0x20007480;
-pub const TIOCSBRK: ::c_uint = 0x2000747b;
-pub const TIOCCBRK: ::c_uint = 0x2000747a;
 pub const TIOCSDTR: ::c_uint = 0x20007479;
 pub const TIOCCDTR: ::c_uint = 0x20007478;
 pub const TIOCGPGRP: ::c_ulong = 0x40047477;
diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs
index bd60692f..44457c3a 100644
--- a/src/unix/bsd/freebsdlike/mod.rs
+++ b/src/unix/bsd/freebsdlike/mod.rs
@@ -1045,8 +1045,6 @@ pub const TIOCSPGRP: ::c_ulong = 0x80047476;
 pub const TIOCGPGRP: ::c_uint = 0x40047477;
 pub const TIOCCDTR: ::c_uint = 0x20007478;
 pub const TIOCSDTR: ::c_uint = 0x20007479;
-pub const TIOCCBRK: ::c_uint = 0x2000747a;
-pub const TIOCSBRK: ::c_uint = 0x2000747b;
 pub const TTYDISC: ::c_int = 0x0;
 pub const SLIPDISC: ::c_int = 0x4;
 pub const PPPDISC: ::c_int = 0x5;
diff --git a/src/unix/bsd/mod.rs b/src/unix/bsd/mod.rs
index a4214583..0d5d24c3 100644
--- a/src/unix/bsd/mod.rs
+++ b/src/unix/bsd/mod.rs
@@ -498,6 +498,9 @@ pub const REG_TRACE: ::c_int = 0o00400;
 pub const REG_LARGE: ::c_int = 0o01000;
 pub const REG_BACKR: ::c_int = 0o02000;
 
+pub const TIOCCBRK: ::c_uint = 0x2000747a;
+pub const TIOCSBRK: ::c_uint = 0x2000747b;
+
 f! {
     pub fn CMSG_FIRSTHDR(mhdr: *const ::msghdr) -> *mut ::cmsghdr {
         if (*mhdr).msg_controllen as usize >= ::mem::size_of::<::cmsghdr>() {
diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs
index ab8d943b..2eab8ddf 100644
--- a/src/unix/linux_like/linux/gnu/b32/mod.rs
+++ b/src/unix/linux_like/linux/gnu/b32/mod.rs
@@ -241,6 +241,9 @@ pub const PTRACE_SETFPREGS: ::c_uint = 15;
 pub const PTRACE_GETREGS: ::c_uint = 12;
 pub const PTRACE_SETREGS: ::c_uint = 13;
 
+pub const TIOCSBRK: ::c_int = 0x5427;
+pub const TIOCCBRK: ::c_int = 0x5428;
+
 #[link(name = "util")]
 extern "C" {
     pub fn sysctl(
diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs
index bf2e1c99..2c2f5681 100644
--- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs
+++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs
@@ -212,11 +212,6 @@ pub const RTLD_DEEPBIND: ::c_int = 0x8;
 pub const RTLD_GLOBAL: ::c_int = 0x100;
 pub const RTLD_NOLOAD: ::c_int = 0x4;
 
-pub const TIOCGSOFTCAR: ::c_ulong = 0x5419;
-pub const TIOCSSOFTCAR: ::c_ulong = 0x541A;
-pub const TIOCGRS485: ::c_int = 0x542E;
-pub const TIOCSRS485: ::c_int = 0x542F;
-
 pub const RLIMIT_RSS: ::__rlimit_resource_t = 5;
 pub const RLIMIT_AS: ::__rlimit_resource_t = 9;
 pub const RLIMIT_MEMLOCK: ::__rlimit_resource_t = 8;
@@ -447,7 +442,13 @@ pub const TIOCMGET: ::c_ulong = 0x5415;
 pub const TIOCMBIS: ::c_ulong = 0x5416;
 pub const TIOCMBIC: ::c_ulong = 0x5417;
 pub const TIOCMSET: ::c_ulong = 0x5418;
+pub const TIOCGSOFTCAR: ::c_ulong = 0x5419;
+pub const TIOCSSOFTCAR: ::c_ulong = 0x541A;
 pub const TIOCCONS: ::c_ulong = 0x541D;
+pub const TIOCSBRK: ::c_ulong = 0x5427;
+pub const TIOCCBRK: ::c_ulong = 0x5428;
+pub const TIOCGRS485: ::c_int = 0x542E;
+pub const TIOCSRS485: ::c_int = 0x542F;
 
 pub const TIOCM_ST: ::c_int = 0x008;
 pub const TIOCM_SR: ::c_int = 0x010;
diff --git a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs
index d27ebc90..2e0d78eb 100644
--- a/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs
+++ b/src/unix/linux_like/linux/gnu/b64/mips64/mod.rs
@@ -874,6 +874,8 @@ pub const TCSETAF: ::c_ulong = 0x5404;
 pub const TCSBRK: ::c_ulong = 0x5405;
 pub const TCXONC: ::c_ulong = 0x5406;
 pub const TCFLSH: ::c_ulong = 0x5407;
+pub const TIOCSBRK: ::c_ulong = 0x5427;
+pub const TIOCCBRK: ::c_ulong = 0x5428;
 pub const TIOCGSOFTCAR: ::c_ulong = 0x5481;
 pub const TIOCSSOFTCAR: ::c_ulong = 0x5482;
 pub const TIOCINQ: ::c_ulong = 0x467f;
diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs
index d77c6fa8..9cf0b217 100644
--- a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs
+++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs
@@ -441,6 +441,8 @@ pub const TIOCMBIS: ::c_ulong = 0x5416;
 pub const TIOCMBIC: ::c_ulong = 0x5417;
 pub const TIOCMSET: ::c_ulong = 0x5418;
 pub const TIOCCONS: ::c_ulong = 0x541D;
+pub const TIOCSBRK: ::c_ulong = 0x5427;
+pub const TIOCCBRK: ::c_ulong = 0x5428;
 pub const TIOCGRS485: ::c_int = 0x542E;
 pub const TIOCSRS485: ::c_int = 0x542F;
 
diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs
index e2f3b9bc..906a44a3 100644
--- a/src/unix/linux_like/linux/gnu/b64/s390x.rs
+++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs
@@ -575,6 +575,8 @@ pub const TIOCMBIC: ::c_ulong = 0x5417;
 pub const TIOCMSET: ::c_ulong = 0x5418;
 pub const FIONREAD: ::c_ulong = 0x541B;
 pub const TIOCCONS: ::c_ulong = 0x541D;
+pub const TIOCSBRK: ::c_ulong = 0x5427;
+pub const TIOCCBRK: ::c_ulong = 0x5428;
 
 pub const TCSANOW: ::c_int = 0;
 pub const TCSADRAIN: ::c_int = 1;
diff --git a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs
index 694bf925..e7d6239e 100644
--- a/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs
+++ b/src/unix/linux_like/linux/gnu/b64/sparc64/mod.rs
@@ -422,6 +422,8 @@ pub const TIOCMBIC: ::c_ulong = 0x8004746b;
 pub const TIOCMBIS: ::c_ulong = 0x8004746c;
 pub const TIOCMSET: ::c_ulong = 0x8004746d;
 pub const TIOCSTI: ::c_ulong = 0x80017472;
+pub const TIOCCBRK: ::c_ulong = 0x2000747a;
+pub const TIOCSBRK: ::c_ulong = 0x2000747b;
 pub const TIOCSCTTY: ::c_ulong = 0x20007484;
 
 pub const TIOCM_ST: ::c_int = 0x008;
diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs
index 4f531380..ef4f1886 100644
--- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs
+++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs
@@ -839,6 +839,8 @@ pub const TIOCOUTQ: ::c_ulong = 0x5411;
 pub const TIOCGWINSZ: ::c_ulong = 0x5413;
 pub const TIOCSWINSZ: ::c_ulong = 0x5414;
 pub const FIONREAD: ::c_ulong = 0x541B;
+pub const TIOCSBRK: ::c_ulong = 0x5427;
+pub const TIOCCBRK: ::c_ulong = 0x5428;
 
 // offsets in user_regs_structs, from sys/reg.h
 pub const R15: ::c_int = 0;
diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs
index 4a89679b..8124e4b8 100644
--- a/src/unix/linux_like/linux/musl/b32/hexagon.rs
+++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs
@@ -725,7 +725,6 @@ pub const TCSETX: ::c_int = 21555;
 pub const TCSETXF: ::c_int = 21556;
 pub const TCSETXW: ::c_int = 21557;
 pub const TCXONC: ::c_int = 21514;
-pub const TIOCCBRK: ::c_int = 21544;
 pub const TIOCCONS: ::c_int = 21533;
 pub const TIOCEXCL: ::c_int = 21516;
 pub const TIOCGETD: ::c_int = 21540;
@@ -769,7 +768,6 @@ pub const TIOCPKT_IOCTL: ::c_int = 64;
 pub const TIOCPKT_NOSTOP: ::c_int = 16;
 pub const TIOCPKT_START: ::c_int = 8;
 pub const TIOCPKT_STOP: ::c_int = 4;
-pub const TIOCSBRK: ::c_int = 21543;
 pub const TIOCSCTTY: ::c_int = 21518;
 pub const TIOCSERCONFIG: ::c_int = 21587;
 pub const TIOCSERGETLSR: ::c_int = 21593;
diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs
index 730d4b9b..539a27b2 100644
--- a/src/unix/linux_like/linux/musl/mod.rs
+++ b/src/unix/linux_like/linux/musl/mod.rs
@@ -422,6 +422,9 @@ pub const RLIMIT_RTPRIO: ::c_int = 14;
 
 pub const REG_OK: ::c_int = 0;
 
+pub const TIOCSBRK: ::c_int = 0x5427;
+pub const TIOCCBRK: ::c_int = 0x5428;
+
 extern "C" {
     pub fn sendmmsg(
         sockfd: ::c_int,
-- 
GitLab