summaryrefslogtreecommitdiff
path: root/libc/src/unix/solarish/compat.rs
blob: 8631d6018920cb48b9d5b193c2bac4953d7f22ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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
}