3 static struct termios Posix_TTY_Termios_termios
;
5 C_TCFlag_t
Posix_TTY_Termios_getIFlag (void) {
6 return Posix_TTY_Termios_termios
.c_iflag
;
9 C_TCFlag_t
Posix_TTY_Termios_getOFlag (void) {
10 return Posix_TTY_Termios_termios
.c_oflag
;
13 C_TCFlag_t
Posix_TTY_Termios_getCFlag (void) {
14 return Posix_TTY_Termios_termios
.c_cflag
;
17 C_TCFlag_t
Posix_TTY_Termios_getLFlag (void) {
18 return Posix_TTY_Termios_termios
.c_lflag
;
21 void Posix_TTY_Termios_getCC (Array(C_CC_t
) a
) {
22 for (int i
= 0; i
< NCCS
; i
++)
23 ((cc_t
*)a
)[i
] = Posix_TTY_Termios_termios
.c_cc
[i
];
26 C_Speed_t
Posix_TTY_Termios_cfGetOSpeed (void) {
27 return cfgetospeed (&Posix_TTY_Termios_termios
);
30 C_Speed_t
Posix_TTY_Termios_cfGetISpeed (void) {
31 return cfgetispeed (&Posix_TTY_Termios_termios
);
34 void Posix_TTY_Termios_setIFlag (C_TCFlag_t f
) {
35 Posix_TTY_Termios_termios
.c_iflag
= f
;
38 void Posix_TTY_Termios_setOFlag (C_TCFlag_t f
) {
39 Posix_TTY_Termios_termios
.c_oflag
= f
;
42 void Posix_TTY_Termios_setCFlag (C_TCFlag_t f
) {
43 Posix_TTY_Termios_termios
.c_cflag
= f
;
46 void Posix_TTY_Termios_setLFlag (C_TCFlag_t f
) {
47 Posix_TTY_Termios_termios
.c_lflag
= f
;
50 void Posix_TTY_Termios_setCC (Array(C_CC_t
) a
) {
51 for (int i
= 0; i
< NCCS
; i
++)
52 Posix_TTY_Termios_termios
.c_cc
[i
] = ((cc_t
*)a
)[i
];
55 C_Errno_t(C_Int_t
) Posix_TTY_Termios_cfSetOSpeed (C_Speed_t s
) {
56 return cfsetospeed (&Posix_TTY_Termios_termios
, s
);
59 C_Errno_t(C_Int_t
) Posix_TTY_Termios_cfSetISpeed (C_Speed_t s
) {
60 return cfsetispeed (&Posix_TTY_Termios_termios
, s
);
63 C_Errno_t(C_Int_t
) Posix_TTY_TC_drain (C_Fd_t f
) {
67 C_Errno_t(C_Int_t
) Posix_TTY_TC_flow (C_Fd_t f
, C_Int_t i
) {
71 C_Errno_t(C_Int_t
) Posix_TTY_TC_flush (C_Fd_t f
, C_Int_t i
) {
72 return tcflush (f
, i
);
75 C_Errno_t(C_Int_t
) Posix_TTY_TC_getattr (C_Fd_t f
) {
76 return tcgetattr (f
, &Posix_TTY_Termios_termios
);
79 C_Errno_t(C_PId_t
) Posix_TTY_TC_getpgrp (C_Fd_t f
) {
83 C_Errno_t(C_Int_t
) Posix_TTY_TC_sendbreak (C_Fd_t f
, C_Int_t i
) {
84 return tcsendbreak (f
, i
);
87 C_Errno_t(C_Int_t
) Posix_TTY_TC_setattr (C_Fd_t f
, C_Int_t i
) {
88 return tcsetattr (f
, i
, &Posix_TTY_Termios_termios
);
91 C_Errno_t(C_Int_t
) Posix_TTY_TC_setpgrp (C_Fd_t f
, C_PId_t p
) {
92 return tcsetpgrp (f
, p
);