Backport from sid to buster
[hcoop/debian/mlton.git] / runtime / basis / Posix / TTY.c
CommitLineData
7f918cf1
CE
1#include "platform.h"
2
3static struct termios Posix_TTY_Termios_termios;
4
5C_TCFlag_t Posix_TTY_Termios_getIFlag (void) {
6 return Posix_TTY_Termios_termios.c_iflag;
7}
8
9C_TCFlag_t Posix_TTY_Termios_getOFlag (void) {
10 return Posix_TTY_Termios_termios.c_oflag;
11}
12
13C_TCFlag_t Posix_TTY_Termios_getCFlag (void) {
14 return Posix_TTY_Termios_termios.c_cflag;
15}
16
17C_TCFlag_t Posix_TTY_Termios_getLFlag (void) {
18 return Posix_TTY_Termios_termios.c_lflag;
19}
20
21void 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];
24}
25
26C_Speed_t Posix_TTY_Termios_cfGetOSpeed (void) {
27 return cfgetospeed (&Posix_TTY_Termios_termios);
28}
29
30C_Speed_t Posix_TTY_Termios_cfGetISpeed (void) {
31 return cfgetispeed (&Posix_TTY_Termios_termios);
32}
33
34void Posix_TTY_Termios_setIFlag (C_TCFlag_t f) {
35 Posix_TTY_Termios_termios.c_iflag = f;
36}
37
38void Posix_TTY_Termios_setOFlag (C_TCFlag_t f) {
39 Posix_TTY_Termios_termios.c_oflag = f;
40}
41
42void Posix_TTY_Termios_setCFlag (C_TCFlag_t f) {
43 Posix_TTY_Termios_termios.c_cflag = f;
44}
45
46void Posix_TTY_Termios_setLFlag (C_TCFlag_t f) {
47 Posix_TTY_Termios_termios.c_lflag = f;
48}
49
50void 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];
53}
54
55C_Errno_t(C_Int_t) Posix_TTY_Termios_cfSetOSpeed (C_Speed_t s) {
56 return cfsetospeed (&Posix_TTY_Termios_termios, s);
57}
58
59C_Errno_t(C_Int_t) Posix_TTY_Termios_cfSetISpeed (C_Speed_t s) {
60 return cfsetispeed (&Posix_TTY_Termios_termios, s);
61}
62
63C_Errno_t(C_Int_t) Posix_TTY_TC_drain (C_Fd_t f) {
64 return tcdrain (f);
65}
66
67C_Errno_t(C_Int_t) Posix_TTY_TC_flow (C_Fd_t f, C_Int_t i) {
68 return tcflow (f, i);
69}
70
71C_Errno_t(C_Int_t) Posix_TTY_TC_flush (C_Fd_t f, C_Int_t i) {
72 return tcflush (f, i);
73}
74
75C_Errno_t(C_Int_t) Posix_TTY_TC_getattr (C_Fd_t f) {
76 return tcgetattr (f, &Posix_TTY_Termios_termios);
77}
78
79C_Errno_t(C_PId_t) Posix_TTY_TC_getpgrp (C_Fd_t f) {
80 return tcgetpgrp (f);
81}
82
83C_Errno_t(C_Int_t) Posix_TTY_TC_sendbreak (C_Fd_t f, C_Int_t i) {
84 return tcsendbreak (f, i);
85}
86
87C_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);
89}
90
91C_Errno_t(C_Int_t) Posix_TTY_TC_setpgrp (C_Fd_t f, C_PId_t p) {
92 return tcsetpgrp (f, p);
93}