]> git.llucax.com Git - software/druntime.git/blob - import/core/sys/posix/termios.d
Fixed 64-bit prototype for dirent_r routine.
[software/druntime.git] / import / core / sys / 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 core.sys.posix.termios;
10
11 private import core.sys.posix.config;
12 public import core.sys.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 else version( linux )
235 {
236     alias ubyte cc_t;
237     alias uint  speed_t;
238     alias uint  tcflag_t;
239
240     const NCCS  = 32;
241
242     struct termios
243     {
244         tcflag_t   c_iflag;
245         tcflag_t   c_oflag;
246         tcflag_t   c_cflag;
247         tcflag_t   c_lflag;
248         cc_t       c_line;
249         cc_t[NCCS] c_cc;
250         speed_t    c_ispeed;
251         speed_t    c_ospeed;
252     }
253
254     const VEOF      = 4;
255     const VEOL      = 11;
256     const VERASE    = 2;
257     const VINTR     = 0;
258     const VKILL     = 3;
259     const VMIN      = 6;
260     const VQUIT     = 1;
261     const VSTART    = 8;
262     const VSTOP     = 9;
263     const VSUSP     = 10;
264     const VTIME     = 5;
265
266     const BRKINT    = 0000002;
267     const ICRNL     = 0000400;
268     const IGNBRK    = 0000001;
269     const IGNCR     = 0000200;
270     const IGNPAR    = 0000004;
271     const INLCR     = 0000100;
272     const INPCK     = 0000020;
273     const ISTRIP    = 0000040;
274     const IXOFF     = 0010000;
275     const IXON      = 0002000;
276     const PARMRK    = 0000010;
277
278     const OPOST     = 0000001;
279
280     const B0        = 0000000;
281     const B50       = 0000001;
282     const B75       = 0000002;
283     const B110      = 0000003;
284     const B134      = 0000004;
285     const B150      = 0000005;
286     const B200      = 0000006;
287     const B300      = 0000007;
288     const B600      = 0000010;
289     const B1200     = 0000011;
290     const B1800     = 0000012;
291     const B2400     = 0000013;
292     const B4800     = 0000014;
293     const B9600     = 0000015;
294     const B19200    = 0000016;
295     const B38400    = 0000017;
296
297     const CSIZE     = 0000060;
298     const   CS5     = 0000000;
299     const   CS6     = 0000020;
300     const   CS7     = 0000040;
301     const   CS8     = 0000060;
302     const CSTOPB    = 0000100;
303     const CREAD     = 0000200;
304     const PARENB    = 0000400;
305     const PARODD    = 0001000;
306     const HUPCL     = 0002000;
307     const CLOCAL    = 0004000;
308
309     const ECHO      = 0000010;
310     const ECHOE     = 0000020;
311     const ECHOK     = 0000040;
312     const ECHONL    = 0000100;
313     const ICANON    = 0000002;
314     const IEXTEN    = 0100000;
315     const ISIG      = 0000001;
316     const NOFLSH    = 0000200;
317     const TOSTOP    = 0000400;
318
319     const TCSANOW   = 0;
320     const TCSADRAIN = 1;
321     const TCSAFLUSH = 2;
322
323     const TCIFLUSH  = 0;
324     const TCOFLUSH  = 1;
325     const TCIOFLUSH = 2;
326
327     const TCIOFF    = 2;
328     const TCION     = 3;
329     const TCOOFF    = 0;
330     const TCOON     = 1;
331
332     speed_t cfgetispeed(in termios*);
333     speed_t cfgetospeed(in termios*);
334     int     cfsetispeed(termios*, speed_t);
335     int     cfsetospeed(termios*, speed_t);
336     int     tcdrain(int);
337     int     tcflow(int, int);
338     int     tcflush(int, int);
339     int     tcgetattr(int, termios*);
340     int     tcsendbreak(int, int);
341     int     tcsetattr(int, int, in termios*);
342 }
343 else version ( freebsd )
344 {
345     alias ubyte cc_t;
346     alias uint  speed_t;
347     alias uint  tcflag_t;
348
349     const NCCS  = 20;
350
351     struct termios
352     {
353         tcflag_t   c_iflag;
354         tcflag_t   c_oflag;
355         tcflag_t   c_cflag;
356         tcflag_t   c_lflag;
357         cc_t[NCCS] c_cc;
358         speed_t    c_ispeed;
359         speed_t    c_ospeed;
360     }
361
362     const VEOF      = 0;
363     const VEOL      = 1;
364     const VERASE    = 3;
365     const VINTR     = 8;
366     const VKILL     = 5;
367     const VMIN      = 16;
368     const VQUIT     = 9;
369     const VSTART    = 12;
370     const VSTOP     = 13;
371     const VSUSP     = 10;
372     const VTIME     = 17;
373
374     const BRKINT    = 0x0000002;
375     const ICRNL     = 0x0000100;
376     const IGNBRK    = 0x0000001;
377     const IGNCR     = 0x0000080;
378     const IGNPAR    = 0x0000004;
379     const INLCR     = 0x0000040;
380     const INPCK     = 0x0000010;
381     const ISTRIP    = 0x0000020;
382     const IXOFF     = 0x0000400;
383     const IXON      = 0x0000200;
384     const PARMRK    = 0x0000008;
385
386     const OPOST     = 0x0000001;
387
388     const B0        = 0;
389     const B50       = 50;
390     const B75       = 75;
391     const B110      = 110;
392     const B134      = 134;
393     const B150      = 150;
394     const B200      = 200;
395     const B300      = 300;
396     const B600      = 600;
397     const B1200     = 1200;
398     const B1800     = 1800;
399     const B2400     = 2400;
400     const B4800     = 4800;
401     const B9600     = 9600;
402     const B19200    = 19200;
403     const B38400    = 38400;
404
405     const CSIZE     = 0x0000300;
406     const   CS5     = 0x0000000;
407     const   CS6     = 0x0000100;
408     const   CS7     = 0x0000200;
409     const   CS8     = 0x0000300;
410     const CSTOPB    = 0x0000400;
411     const CREAD     = 0x0000800;
412     const PARENB    = 0x0001000;
413     const PARODD    = 0x0002000;
414     const HUPCL     = 0x0004000;
415     const CLOCAL    = 0x0008000;
416
417     const ECHO      = 0x00000008;
418     const ECHOE     = 0x00000002;
419     const ECHOK     = 0x00000004;
420     const ECHONL    = 0x00000010;
421     const ICANON    = 0x00000100;
422     const IEXTEN    = 0x00000400;
423     const ISIG      = 0x00000080;
424     const NOFLSH    = 0x80000000;
425     const TOSTOP    = 0x00400000;
426
427     const TCSANOW   = 0;
428     const TCSADRAIN = 1;
429     const TCSAFLUSH = 2;
430
431     const TCIFLUSH  = 1;
432     const TCOFLUSH  = 2;
433     const TCIOFLUSH = 3;
434
435     const TCIOFF    = 3;
436     const TCION     = 4;
437     const TCOOFF    = 1;
438     const TCOON     = 2;
439
440     speed_t cfgetispeed(in termios*);
441     speed_t cfgetospeed(in termios*);
442     int     cfsetispeed(termios*, speed_t);
443     int     cfsetospeed(termios*, speed_t);
444     int     tcdrain(int);
445     int     tcflow(int, int);
446     int     tcflush(int, int);
447     int     tcgetattr(int, termios*);
448     int     tcsendbreak(int, int);
449     int     tcsetattr(int, int, in termios*);
450
451 }
452
453 //
454 // XOpen (XSI)
455 //
456 /*
457 IXANY
458
459 ONLCR
460 OCRNL
461 ONOCR
462 ONLRET
463 OFILL
464 NLDLY
465     NL0
466     NL1
467 CRDLY
468     CR0
469     CR1
470     CR2
471     CR3
472 TABDLY
473     TAB0
474     TAB1
475     TAB2
476     TAB3
477 BSDLY
478     BS0
479     BS1
480 VTDLY
481     VT0
482     VT1
483 FFDLY
484     FF0
485     FF1
486
487 pid_t   tcgetsid(int);
488 */
489
490 version( linux )
491 {
492     const IXANY     = 0004000;
493
494     const ONLCR     = 0000004;
495     const OCRNL     = 0000010;
496     const ONOCR     = 0000020;
497     const ONLRET    = 0000040;
498     const OFILL     = 0000100;
499     const NLDLY     = 0000400;
500     const   NL0     = 0000000;
501     const   NL1     = 0000400;
502     const CRDLY     = 0003000;
503     const   CR0     = 0000000;
504     const   CR1     = 0001000;
505     const   CR2     = 0002000;
506     const   CR3     = 0003000;
507     const TABDLY    = 0014000;
508     const   TAB0    = 0000000;
509     const   TAB1    = 0004000;
510     const   TAB2    = 0010000;
511     const   TAB3    = 0014000;
512     const BSDLY     = 0020000;
513     const   BS0     = 0000000;
514     const   BS1     = 0020000;
515     const VTDLY     = 0040000;
516     const   VT0     = 0000000;
517     const   VT1     = 0040000;
518     const FFDLY     = 0100000;
519     const   FF0     = 0000000;
520     const   FF1     = 0100000;
521
522     pid_t   tcgetsid(int);
523 }