diff options
Diffstat (limited to 'libc/src/unix/solarish/compat.rs')
-rw-r--r-- | libc/src/unix/solarish/compat.rs | 21 |
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 +} |