Backport from sid to buster
[hcoop/debian/mlton.git] / basis-library / libs / basis-1997 / posix / tty.sig
1 signature POSIX_TTY_1997 =
2 sig
3 eqtype pid
4 eqtype file_desc
5
6 structure V:
7 sig
8 val eof: int
9 val eol: int
10 val erase: int
11 val intr: int
12 val kill: int
13 val min: int
14 val quit: int
15 val susp: int
16 val time: int
17 val start: int
18 val stop: int
19 val nccs: int
20
21 type cc
22 val cc: (int * char) list -> cc
23 val update: cc * (int * char) list -> cc
24 val sub: cc * int -> char
25 end
26
27 structure I:
28 sig
29 include POSIX_FLAGS_1997
30 val brkint: flags
31 val icrnl: flags
32 val ignbrk: flags
33 val igncr: flags
34 val ignpar: flags
35 val inlcr: flags
36 val inpck: flags
37 val istrip: flags
38 val ixoff: flags
39 val ixon: flags
40 val parmrk: flags
41 end
42
43 structure O:
44 sig
45 include POSIX_FLAGS_1997
46 val opost: flags
47 end
48
49 structure C:
50 sig
51 include POSIX_FLAGS_1997
52 val clocal: flags
53 val cread: flags
54 val cs5: flags
55 val cs6: flags
56 val cs7: flags
57 val cs8: flags
58 val csize: flags
59 val cstopb: flags
60 val hupcl: flags
61 val parenb: flags
62 val parodd: flags
63 end
64
65 structure L:
66 sig
67 include POSIX_FLAGS_1997
68 val echo: flags
69 val echoe: flags
70 val echok: flags
71 val echonl: flags
72 val icanon: flags
73 val iexten: flags
74 val isig: flags
75 val noflsh: flags
76 val tostop: flags
77 end
78
79 eqtype speed
80
81 val compareSpeed: speed * speed -> order
82 val speedToWord: speed -> SysWord.word
83 val wordToSpeed: SysWord.word -> speed
84
85 val b0: speed
86 val b50: speed
87 val b75: speed
88 val b110: speed
89 val b134: speed
90 val b150: speed
91 val b200: speed
92 val b300: speed
93 val b600: speed
94 val b1200: speed
95 val b1800: speed
96 val b2400: speed
97 val b4800: speed
98 val b9600: speed
99 val b19200: speed
100 val b38400: speed
101
102 type termios
103
104 val termios: {iflag: I.flags,
105 oflag: O.flags,
106 cflag: C.flags,
107 lflag: L.flags,
108 cc: V.cc,
109 ispeed: speed,
110 ospeed: speed} -> termios
111
112 val fieldsOf: termios -> {iflag: I.flags,
113 oflag: O.flags,
114 cflag: C.flags,
115 lflag: L.flags,
116 cc: V.cc,
117 ispeed: speed,
118 ospeed: speed}
119 val getiflag: termios -> I.flags
120 val getoflag: termios -> O.flags
121 val getcflag: termios -> C.flags
122 val getlflag: termios -> L.flags
123 val getcc: termios -> V.cc
124
125 structure CF:
126 sig
127 val getospeed: termios -> speed
128 val setospeed: termios * speed -> termios
129 val getispeed: termios -> speed
130 val setispeed: termios * speed -> termios
131 end
132
133 structure TC:
134 sig
135 eqtype set_action
136
137 val sanow: set_action
138 val sadrain: set_action
139 val saflush: set_action
140
141 eqtype flow_action
142
143 val ooff: flow_action
144 val oon: flow_action
145 val ioff: flow_action
146 val ion: flow_action
147
148 eqtype queue_sel
149
150 val iflush: queue_sel
151 val oflush: queue_sel
152 val ioflush: queue_sel
153 end
154
155 val getattr: file_desc -> termios
156 val setattr: file_desc * TC.set_action * termios -> unit
157
158 val sendbreak: file_desc * int -> unit
159 val drain: file_desc -> unit
160 val flush: file_desc * TC.queue_sel -> unit
161 val flow: file_desc * TC.flow_action -> unit
162
163 val getpgrp: file_desc -> pid
164 val setpgrp: file_desc * pid -> unit
165 end