]>
Commit | Line | Data |
---|---|---|
1eee94d3 GM |
1 | /* do not edit automatically generated by mc from termios. */ |
2 | /* termios.def provides a procedural interface to termios. | |
3 | ||
a945c346 | 4 | Copyright (C) 2005-2024 Free Software Foundation, Inc. |
1eee94d3 GM |
5 | Contributed by Gaius Mulley <gaius.mulley@southwales.ac.uk>. |
6 | ||
7 | This file is part of GNU Modula-2. | |
8 | ||
9 | GNU Modula-2 is free software; you can redistribute it and/or modify | |
10 | it under the terms of the GNU General Public License as published by | |
11 | the Free Software Foundation; either version 3, or (at your option) | |
12 | any later version. | |
13 | ||
14 | GNU Modula-2 is distributed in the hope that it will be useful, but | |
15 | WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
17 | General Public License for more details. | |
18 | ||
19 | Under Section 7 of GPL version 3, you are granted additional | |
20 | permissions described in the GCC Runtime Library Exception, version | |
21 | 3.1, as published by the Free Software Foundation. | |
22 | ||
23 | You should have received a copy of the GNU General Public License and | |
24 | a copy of the GCC Runtime Library Exception along with this program; | |
25 | see the files COPYING3 and COPYING.RUNTIME respectively. If not, see | |
26 | <http://www.gnu.org/licenses/>. */ | |
27 | ||
28 | ||
29 | #if !defined (_termios_H) | |
30 | # define _termios_H | |
31 | ||
32 | #include "config.h" | |
33 | #include "system.h" | |
34 | # ifdef __cplusplus | |
35 | extern "C" { | |
36 | # endif | |
431c0669 | 37 | #include <stdbool.h> |
1eee94d3 GM |
38 | # if !defined (PROC_D) |
39 | # define PROC_D | |
40 | typedef void (*PROC_t) (void); | |
41 | typedef struct { PROC_t proc; } PROC; | |
42 | # endif | |
43 | ||
44 | # include "GSYSTEM.h" | |
45 | ||
46 | # if defined (_termios_C) | |
47 | # define EXTERN | |
48 | # else | |
49 | # define EXTERN extern | |
50 | # endif | |
51 | ||
52 | typedef void *termios_TERMIOS; | |
53 | ||
54 | typedef enum {termios_vintr, termios_vquit, termios_verase, termios_vkill, termios_veof, termios_vtime, termios_vmin, termios_vswtc, termios_vstart, termios_vstop, termios_vsusp, termios_veol, termios_vreprint, termios_vdiscard, termios_vwerase, termios_vlnext, termios_veol2} termios_ControlChar; | |
55 | ||
56 | typedef enum {termios_ignbrk, termios_ibrkint, termios_ignpar, termios_iparmrk, termios_inpck, termios_istrip, termios_inlcr, termios_igncr, termios_icrnl, termios_iuclc, termios_ixon, termios_ixany, termios_ixoff, termios_imaxbel, termios_opost, termios_olcuc, termios_onlcr, termios_ocrnl, termios_onocr, termios_onlret, termios_ofill, termios_ofdel, termios_onl0, termios_onl1, termios_ocr0, termios_ocr1, termios_ocr2, termios_ocr3, termios_otab0, termios_otab1, termios_otab2, termios_otab3, termios_obs0, termios_obs1, termios_off0, termios_off1, termios_ovt0, termios_ovt1, termios_b0, termios_b50, termios_b75, termios_b110, termios_b135, termios_b150, termios_b200, termios_b300, termios_b600, termios_b1200, termios_b1800, termios_b2400, termios_b4800, termios_b9600, termios_b19200, termios_b38400, termios_b57600, termios_b115200, termios_b240400, termios_b460800, termios_b500000, termios_b576000, termios_b921600, termios_b1000000, termios_b1152000, termios_b1500000, termios_b2000000, termios_b2500000, termios_b3000000, termios_b3500000, termios_b4000000, termios_maxbaud, termios_crtscts, termios_cs5, termios_cs6, termios_cs7, termios_cs8, termios_cstopb, termios_cread, termios_parenb, termios_parodd, termios_hupcl, termios_clocal, termios_lisig, termios_licanon, termios_lxcase, termios_lecho, termios_lechoe, termios_lechok, termios_lechonl, termios_lnoflsh, termios_ltopstop, termios_lechoctl, termios_lechoprt, termios_lechoke, termios_lflusho, termios_lpendin, termios_liexten} termios_Flag; | |
57 | ||
58 | ||
59 | /* | |
60 | InitTermios - new data structure. | |
61 | */ | |
62 | ||
63 | EXTERN termios_TERMIOS termios_InitTermios (void); | |
64 | ||
65 | /* | |
66 | KillTermios - delete data structure. | |
67 | */ | |
68 | ||
69 | EXTERN termios_TERMIOS termios_KillTermios (termios_TERMIOS t); | |
70 | ||
71 | /* | |
72 | cfgetospeed - return output baud rate. | |
73 | */ | |
74 | ||
75 | EXTERN int termios_cfgetospeed (termios_TERMIOS t); | |
76 | ||
77 | /* | |
78 | cfgetispeed - return input baud rate. | |
79 | */ | |
80 | ||
81 | EXTERN int termios_cfgetispeed (termios_TERMIOS t); | |
82 | ||
83 | /* | |
84 | cfsetospeed - set output baud rate. | |
85 | */ | |
86 | ||
87 | EXTERN int termios_cfsetospeed (termios_TERMIOS t, unsigned int b); | |
88 | ||
89 | /* | |
90 | cfsetispeed - set input baud rate. | |
91 | */ | |
92 | ||
93 | EXTERN int termios_cfsetispeed (termios_TERMIOS t, unsigned int b); | |
94 | ||
95 | /* | |
96 | cfsetspeed - set input and output baud rate. | |
97 | */ | |
98 | ||
99 | EXTERN int termios_cfsetspeed (termios_TERMIOS t, unsigned int b); | |
100 | ||
101 | /* | |
102 | tcgetattr - get state of, fd, into, t. | |
103 | */ | |
104 | ||
105 | EXTERN int termios_tcgetattr (int fd, termios_TERMIOS t); | |
106 | EXTERN int termios_tcsnow (void); | |
107 | EXTERN int termios_tcsdrain (void); | |
108 | EXTERN int termios_tcsflush (void); | |
109 | ||
110 | /* | |
111 | tcsetattr - set state of, fd, to, t, using option. | |
112 | */ | |
113 | ||
114 | EXTERN int termios_tcsetattr (int fd, int option, termios_TERMIOS t); | |
115 | ||
116 | /* | |
117 | cfmakeraw - sets, t, to raw mode. | |
118 | */ | |
119 | ||
120 | EXTERN void termios_cfmakeraw (termios_TERMIOS t); | |
121 | ||
122 | /* | |
123 | tcsendbreak - send zero bits for duration. | |
124 | */ | |
125 | ||
126 | EXTERN int termios_tcsendbreak (int fd, int duration); | |
127 | ||
128 | /* | |
129 | tcdrain - waits for pending output to be written on, fd. | |
130 | */ | |
131 | ||
132 | EXTERN int termios_tcdrain (int fd); | |
133 | ||
134 | /* | |
135 | tcflushi - flush input. | |
136 | */ | |
137 | ||
138 | EXTERN int termios_tcflushi (int fd); | |
139 | ||
140 | /* | |
141 | tcflusho - flush output. | |
142 | */ | |
143 | ||
144 | EXTERN int termios_tcflusho (int fd); | |
145 | ||
146 | /* | |
147 | tcflushio - flush input and output. | |
148 | */ | |
149 | ||
150 | EXTERN int termios_tcflushio (int fd); | |
151 | ||
152 | /* | |
153 | tcflowoni - restart input on, fd. | |
154 | */ | |
155 | ||
156 | EXTERN int termios_tcflowoni (int fd); | |
157 | ||
158 | /* | |
159 | tcflowoffi - stop input on, fd. | |
160 | */ | |
161 | ||
162 | EXTERN int termios_tcflowoffi (int fd); | |
163 | ||
164 | /* | |
165 | tcflowono - restart output on, fd. | |
166 | */ | |
167 | ||
168 | EXTERN int termios_tcflowono (int fd); | |
169 | ||
170 | /* | |
171 | tcflowoffo - stop output on, fd. | |
172 | */ | |
173 | ||
174 | EXTERN int termios_tcflowoffo (int fd); | |
175 | ||
176 | /* | |
177 | GetFlag - sets a flag value from, t, in, b, and returns TRUE | |
178 | if, t, supports, f. | |
179 | */ | |
180 | ||
431c0669 | 181 | EXTERN bool termios_GetFlag (termios_TERMIOS t, termios_Flag f, bool *b); |
1eee94d3 GM |
182 | |
183 | /* | |
184 | SetFlag - sets a flag value in, t, to, b, and returns TRUE if | |
185 | this flag value is supported. | |
186 | */ | |
187 | ||
431c0669 | 188 | EXTERN bool termios_SetFlag (termios_TERMIOS t, termios_Flag f, bool b); |
1eee94d3 GM |
189 | |
190 | /* | |
191 | GetChar - sets a CHAR, ch, value from, t, and returns TRUE if | |
192 | this value is supported. | |
193 | */ | |
194 | ||
431c0669 | 195 | EXTERN bool termios_GetChar (termios_TERMIOS t, termios_ControlChar c, char *ch); |
1eee94d3 GM |
196 | |
197 | /* | |
198 | SetChar - sets a CHAR value in, t, and returns TRUE if, c, | |
199 | is supported. | |
200 | */ | |
201 | ||
431c0669 | 202 | EXTERN bool termios_SetChar (termios_TERMIOS t, termios_ControlChar c, char ch); |
1eee94d3 GM |
203 | # ifdef __cplusplus |
204 | } | |
205 | # endif | |
206 | ||
207 | # undef EXTERN | |
208 | #endif |