]> git.llucax.com Git - software/druntime.git/blob - import/stdc/posix/termios.d
First commit of the D Runtime Project. This includes a fully functional runtime...
[software/druntime.git] / import / stdc / posix / termios.d
1 /**
2  * D header file for POSIX.
3  *
4  * Copyright: Public Domain
5  * License:   Public Domain
6  * Authors:   Sean Kelly
7  * Standards: The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition
8  */
9 module stdc.posix.termios;
10
11 private import stdc.posix.config;
12 public import stdc.posix.sys.types; // for pid_t
13
14 extern (C):
15
16 //
17 // Required
18 //
19 /*
20 cc_t
21 speed_t
22 tcflag_t
23
24 NCCS
25
26 struct termios
27 {
28     tcflag_t   c_iflag;
29     tcflag_t   c_oflag;
30     tcflag_t   c_cflag;
31     tcflag_t   c_lflag;
32     cc_t[NCCS] c_cc;
33 }
34
35 VEOF
36 VEOL
37 VERASE
38 VINTR
39 VKILL
40 VMIN
41 VQUIT
42 VSTART
43 VSTOP
44 VSUSP
45 VTIME
46
47 BRKINT
48 ICRNL
49 IGNBRK
50 IGNCR
51 IGNPAR
52 INLCR
53 INPCK
54 ISTRIP
55 IXOFF
56 IXON
57 PARMRK
58
59 OPOST
60
61 B0
62 B50
63 B75
64 B110
65 B134
66 B150
67 B200
68 B300
69 B600
70 B1200
71 B1800
72 B2400
73 B4800
74 B9600
75 B19200
76 B38400
77
78 CSIZE
79     CS5
80     CS6
81     CS7
82     CS8
83 CSTOPB
84 CREAD
85 PARENB
86 PARODD
87 HUPCL
88 CLOCAL
89
90 ECHO
91 ECHOE
92 ECHOK
93 ECHONL
94 ICANON
95 IEXTEN
96 ISIG
97 NOFLSH
98 TOSTOP
99
100 TCSANOW
101 TCSADRAIN
102 TCSAFLUSH
103
104 TCIFLUSH
105 TCIOFLUSH
106 TCOFLUSH
107
108 TCIOFF
109 TCION
110 TCOOFF
111 TCOON
112
113 speed_t cfgetispeed(in termios*);
114 speed_t cfgetospeed(in termios*);
115 int     cfsetispeed(termios*, speed_t);
116 int     cfsetospeed(termios*, speed_t);
117 int     tcdrain(int);
118 int     tcflow(int, int);
119 int     tcflush(int, int);
120 int     tcgetattr(int, termios*);
121 int     tcsendbreak(int, int);
122 int     tcsetattr(int, int, in termios*);
123 */
124
125 version ( darwin)
126 {
127     alias ubyte cc_t;
128     alias uint  speed_t;
129     alias uint  tcflag_t;
130
131     const NCCS  = 20;
132
133     struct termios
134     {
135         tcflag_t   c_iflag;
136         tcflag_t   c_oflag;
137         tcflag_t   c_cflag;
138         tcflag_t   c_lflag;
139         cc_t[NCCS] c_cc;
140         speed_t    c_ispeed;
141         speed_t    c_ospeed;
142     }
143
144     const VEOF      = 0;
145     const VEOL      = 1;
146     const VERASE    = 3;
147     const VINTR     = 8;
148     const VKILL     = 5;
149     const VMIN      = 16;
150     const VQUIT     = 9;
151     const VSTART    = 12;
152     const VSTOP     = 13;
153     const VSUSP     = 10;
154     const VTIME     = 17;
155
156     const BRKINT    = 0x0000002;
157     const ICRNL     = 0x0000100;
158     const IGNBRK    = 0x0000001;
159     const IGNCR     = 0x0000080;
160     const IGNPAR    = 0x0000004;
161     const INLCR     = 0x0000040;
162     const INPCK     = 0x0000010;
163     const ISTRIP    = 0x0000020;
164     const IXOFF     = 0x0000400;
165     const IXON      = 0x0000200;
166     const PARMRK    = 0x0000008;
167
168     const OPOST     = 0x0000001;
169
170     const B0        = 0;
171     const B50       = 50;
172     const B75       = 75;
173     const B110      = 110;
174     const B134      = 134;
175     const B150      = 150;
176     const B200      = 200;
177     const B300      = 300;
178     const B600      = 600;
179     const B1200     = 1200;
180     const B1800     = 1800;
181     const B2400     = 2400;
182     const B4800     = 4800;
183     const B9600     = 9600;
184     const B19200    = 19200;
185     const B38400    = 38400;
186
187     const CSIZE     = 0x0000300;
188     const   CS5     = 0x0000000;
189     const   CS6     = 0x0000100;
190     const   CS7     = 0x0000200;
191     const   CS8     = 0x0000300;
192     const CSTOPB    = 0x0000400;
193     const CREAD     = 0x0000800;
194     const PARENB    = 0x0001000;
195     const PARODD    = 0x0002000;
196     const HUPCL     = 0x0004000;
197     const CLOCAL    = 0x0008000;
198
199     const ECHO      = 0x00000008;
200     const ECHOE     = 0x00000002;
201     const ECHOK     = 0x00000004;
202     const ECHONL    = 0x00000010;
203     const ICANON    = 0x00000100;
204     const IEXTEN    = 0x00000400;
205     const ISIG      = 0x00000080;
206     const NOFLSH    = 0x80000000;
207     const TOSTOP    = 0x00400000;
208
209     const TCSANOW   = 0;
210     const TCSADRAIN = 1;
211     const TCSAFLUSH = 2;
212
213     const TCIFLUSH  = 1;
214     const TCOFLUSH  = 2;
215     const TCIOFLUSH = 3;
216
217     const TCIOFF    = 3;
218     const TCION     = 4;
219     const TCOOFF    = 1;
220     const TCOON     = 2;
221
222     speed_t cfgetispeed(in termios*);
223     speed_t cfgetospeed(in termios*);
224     int     cfsetispeed(termios*, speed_t);
225     int     cfsetospeed(termios*, speed_t);
226     int     tcdrain(int);
227     int     tcflow(int, int);
228     int     tcflush(int, int);
229     int     tcgetattr(int, termios*);
230     int     tcsendbreak(int, int);
231     int     tcsetattr(int, int, in termios*);
232
233 }
234
235 version( linux )
236 {
237     alias ubyte cc_t;
238     alias uint  speed_t;
239     alias uint  tcflag_t;
240
241     const NCCS  = 32;
242
243     struct termios
244     {
245         tcflag_t   c_iflag;
246         tcflag_t   c_oflag;
247         tcflag_t   c_cflag;
248         tcflag_t   c_lflag;
249         cc_t       c_line;
250         cc_t[NCCS] c_cc;
251         speed_t    c_ispeed;
252         speed_t    c_ospeed;
253     }
254
255     const VEOF      = 4;
256     const VEOL      = 11;
257     const VERASE    = 2;
258     const VINTR     = 0;
259     const VKILL     = 3;
260     const VMIN      = 6;
261     const VQUIT     = 1;
262     const VSTART    = 8;
263     const VSTOP     = 9;
264     const VSUSP     = 10;
265     const VTIME     = 5;
266
267     const BRKINT    = 0000002;
268     const ICRNL     = 0000400;
269     const IGNBRK    = 0000001;
270     const IGNCR     = 0000200;
271     const IGNPAR    = 0000004;
272     const INLCR     = 0000100;
273     const INPCK     = 0000020;
274     const ISTRIP    = 0000040;
275     const IXOFF     = 0010000;
276     const IXON      = 0002000;
277     const PARMRK    = 0000010;
278
279     const OPOST     = 0000001;
280
281     const B0        = 0000000;
282     const B50       = 0000001;
283     const B75       = 0000002;
284     const B110      = 0000003;
285     const B134      = 0000004;
286     const B150      = 0000005;
287     const B200      = 0000006;
288     const B300      = 0000007;
289     const B600      = 0000010;
290     const B1200     = 0000011;
291     const B1800     = 0000012;
292     const B2400     = 0000013;
293     const B4800     = 0000014;
294     const B9600     = 0000015;
295     const B19200    = 0000016;
296     const B38400    = 0000017;
297
298     const CSIZE     = 0000060;
299     const   CS5     = 0000000;
300     const   CS6     = 0000020;
301     const   CS7     = 0000040;
302     const   CS8     = 0000060;
303     const CSTOPB    = 0000100;
304     const CREAD     = 0000200;
305     const PARENB    = 0000400;
306     const PARODD    = 0001000;
307     const HUPCL     = 0002000;
308     const CLOCAL    = 0004000;
309
310     const ECHO      = 0000010;
311     const ECHOE     = 0000020;
312     const ECHOK     = 0000040;
313     const ECHONL    = 0000100;
314     const ICANON    = 0000002;
315     const IEXTEN    = 0100000;
316     const ISIG      = 0000001;
317     const NOFLSH    = 0000200;
318     const TOSTOP    = 0000400;
319
320     const TCSANOW   = 0;
321     const TCSADRAIN = 1;
322     const TCSAFLUSH = 2;
323
324     const TCIFLUSH  = 0;
325     const TCOFLUSH  = 1;
326     const TCIOFLUSH = 2;
327
328     const TCIOFF    = 2;
329     const TCION     = 3;
330     const TCOOFF    = 0;
331     const TCOON     = 1;
332
333     speed_t cfgetispeed(in termios*);
334     speed_t cfgetospeed(in termios*);
335     int     cfsetispeed(termios*, speed_t);
336     int     cfsetospeed(termios*, speed_t);
337     int     tcdrain(int);
338     int     tcflow(int, int);
339     int     tcflush(int, int);
340     int     tcgetattr(int, termios*);
341     int     tcsendbreak(int, int);
342     int     tcsetattr(int, int, in termios*);
343 }
344
345 //
346 // XOpen (XSI)
347 //
348 /*
349 IXANY
350
351 ONLCR
352 OCRNL
353 ONOCR
354 ONLRET
355 OFILL
356 NLDLY
357     NL0
358     NL1
359 CRDLY
360     CR0
361     CR1
362     CR2
363     CR3
364 TABDLY
365     TAB0
366     TAB1
367     TAB2
368     TAB3
369 BSDLY
370     BS0
371     BS1
372 VTDLY
373     VT0
374     VT1
375 FFDLY
376     FF0
377     FF1
378
379 pid_t   tcgetsid(int);
380 */
381
382 version( linux )
383 {
384     const IXANY     = 0004000;
385
386     const ONLCR     = 0000004;
387     const OCRNL     = 0000010;
388     const ONOCR     = 0000020;
389     const ONLRET    = 0000040;
390     const OFILL     = 0000100;
391     const NLDLY     = 0000400;
392     const   NL0     = 0000000;
393     const   NL1     = 0000400;
394     const CRDLY     = 0003000;
395     const   CR0     = 0000000;
396     const   CR1     = 0001000;
397     const   CR2     = 0002000;
398     const   CR3     = 0003000;
399     const TABDLY    = 0014000;
400     const   TAB0    = 0000000;
401     const   TAB1    = 0004000;
402     const   TAB2    = 0010000;
403     const   TAB3    = 0014000;
404     const BSDLY     = 0020000;
405     const   BS0     = 0000000;
406     const   BS1     = 0020000;
407     const VTDLY     = 0040000;
408     const   VT0     = 0000000;
409     const   VT1     = 0040000;
410     const FFDLY     = 0100000;
411     const   FF0     = 0000000;
412     const   FF1     = 0100000;
413
414     pid_t   tcgetsid(int);
415 }