aboutsummaryrefslogtreecommitdiff
path: root/libc/src/unix/solarish/compat.rs
diff options
context:
space:
mode:
Diffstat (limited to 'libc/src/unix/solarish/compat.rs')
-rw-r--r--libc/src/unix/solarish/compat.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/libc/src/unix/solarish/compat.rs b/libc/src/unix/solarish/compat.rs
new file mode 100644
index 0000000..8631d60
--- /dev/null
+++ b/libc/src/unix/solarish/compat.rs
@@ -0,0 +1,21 @@
+// Common functions that are unfortunately missing on illumos and
+// Solaris, but often needed by other crates.
+
+use unix::solarish::*;
+
+pub unsafe fn cfmakeraw(termios: *mut ::termios) {
+ let mut t = *termios as ::termios;
+ t.c_iflag &= !(IMAXBEL|IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON);
+ t.c_oflag &= !OPOST;
+ t.c_lflag &= !(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
+ t.c_cflag &= !(CSIZE|PARENB);
+ t.c_cflag |= CS8;
+}
+
+pub unsafe fn cfsetspeed(termios: *mut ::termios, speed: ::speed_t) -> ::c_int {
+ // Neither of these functions on illumos or Solaris actually ever
+ // return an error
+ ::cfsetispeed(termios, speed);
+ ::cfsetospeed(termios, speed);
+ 0
+}