1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
#include "platform.h"
static struct termios Posix_TTY_Termios_termios;
C_TCFlag_t Posix_TTY_Termios_getIFlag (void) {
return Posix_TTY_Termios_termios.c_iflag;
}
C_TCFlag_t Posix_TTY_Termios_getOFlag (void) {
return Posix_TTY_Termios_termios.c_oflag;
}
C_TCFlag_t Posix_TTY_Termios_getCFlag (void) {
return Posix_TTY_Termios_termios.c_cflag;
}
C_TCFlag_t Posix_TTY_Termios_getLFlag (void) {
return Posix_TTY_Termios_termios.c_lflag;
}
void Posix_TTY_Termios_getCC (Array(C_CC_t) a) {
for (int i = 0; i < NCCS; i++)
((cc_t*)a)[i] = Posix_TTY_Termios_termios.c_cc[i];
}
C_Speed_t Posix_TTY_Termios_cfGetOSpeed (void) {
return cfgetospeed (&Posix_TTY_Termios_termios);
}
C_Speed_t Posix_TTY_Termios_cfGetISpeed (void) {
return cfgetispeed (&Posix_TTY_Termios_termios);
}
void Posix_TTY_Termios_setIFlag (C_TCFlag_t f) {
Posix_TTY_Termios_termios.c_iflag = f;
}
void Posix_TTY_Termios_setOFlag (C_TCFlag_t f) {
Posix_TTY_Termios_termios.c_oflag = f;
}
void Posix_TTY_Termios_setCFlag (C_TCFlag_t f) {
Posix_TTY_Termios_termios.c_cflag = f;
}
void Posix_TTY_Termios_setLFlag (C_TCFlag_t f) {
Posix_TTY_Termios_termios.c_lflag = f;
}
void Posix_TTY_Termios_setCC (Array(C_CC_t) a) {
for (int i = 0; i < NCCS; i++)
Posix_TTY_Termios_termios.c_cc[i] = ((cc_t*)a)[i];
}
C_Errno_t(C_Int_t) Posix_TTY_Termios_cfSetOSpeed (C_Speed_t s) {
return cfsetospeed (&Posix_TTY_Termios_termios, s);
}
C_Errno_t(C_Int_t) Posix_TTY_Termios_cfSetISpeed (C_Speed_t s) {
return cfsetispeed (&Posix_TTY_Termios_termios, s);
}
C_Errno_t(C_Int_t) Posix_TTY_TC_drain (C_Fd_t f) {
return tcdrain (f);
}
C_Errno_t(C_Int_t) Posix_TTY_TC_flow (C_Fd_t f, C_Int_t i) {
return tcflow (f, i);
}
C_Errno_t(C_Int_t) Posix_TTY_TC_flush (C_Fd_t f, C_Int_t i) {
return tcflush (f, i);
}
C_Errno_t(C_Int_t) Posix_TTY_TC_getattr (C_Fd_t f) {
return tcgetattr (f, &Posix_TTY_Termios_termios);
}
C_Errno_t(C_PId_t) Posix_TTY_TC_getpgrp (C_Fd_t f) {
return tcgetpgrp (f);
}
C_Errno_t(C_Int_t) Posix_TTY_TC_sendbreak (C_Fd_t f, C_Int_t i) {
return tcsendbreak (f, i);
}
C_Errno_t(C_Int_t) Posix_TTY_TC_setattr (C_Fd_t f, C_Int_t i) {
return tcsetattr (f, i, &Posix_TTY_Termios_termios);
}
C_Errno_t(C_Int_t) Posix_TTY_TC_setpgrp (C_Fd_t f, C_PId_t p) {
return tcsetpgrp (f, p);
}
|