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