Xenomai  3.3
serial.h
Go to the documentation of this file.
1 
23 #ifndef _RTDM_UAPI_SERIAL_H
24 #define _RTDM_UAPI_SERIAL_H
25 
26 #include <linux/types.h>
27 
28 #define RTSER_PROFILE_VER 3
29 
34 #define RTSER_DEF_BAUD 9600
41 #define RTSER_NO_PARITY 0x00
42 #define RTSER_ODD_PARITY 0x01
43 #define RTSER_EVEN_PARITY 0x03
44 #define RTSER_DEF_PARITY RTSER_NO_PARITY
51 #define RTSER_5_BITS 0x00
52 #define RTSER_6_BITS 0x01
53 #define RTSER_7_BITS 0x02
54 #define RTSER_8_BITS 0x03
55 #define RTSER_DEF_BITS RTSER_8_BITS
62 #define RTSER_1_STOPB 0x00
64 #define RTSER_1_5_STOPB 0x01
65 #define RTSER_2_STOPB 0x01
66 #define RTSER_DEF_STOPB RTSER_1_STOPB
73 #define RTSER_NO_HAND 0x00
74 #define RTSER_RTSCTS_HAND 0x01
75 #define RTSER_DEF_HAND RTSER_NO_HAND
82 #define RTSER_RS485_DISABLE 0x00
83 #define RTSER_RS485_ENABLE 0x01
84 #define RTSER_DEF_RS485 RTSER_RS485_DISABLE
91 #define RTSER_FIFO_DEPTH_1 0x00
92 #define RTSER_FIFO_DEPTH_4 0x40
93 #define RTSER_FIFO_DEPTH_8 0x80
94 #define RTSER_FIFO_DEPTH_14 0xC0
95 #define RTSER_DEF_FIFO_DEPTH RTSER_FIFO_DEPTH_1
102 #define RTSER_TIMEOUT_INFINITE RTDM_TIMEOUT_INFINITE
103 #define RTSER_TIMEOUT_NONE RTDM_TIMEOUT_NONE
104 #define RTSER_DEF_TIMEOUT RTDM_TIMEOUT_INFINITE
111 #define RTSER_RX_TIMESTAMP_HISTORY 0x01
112 #define RTSER_DEF_TIMESTAMP_HISTORY 0x00
119 #define RTSER_EVENT_RXPEND 0x01
120 #define RTSER_EVENT_ERRPEND 0x02
121 #define RTSER_EVENT_MODEMHI 0x04
122 #define RTSER_EVENT_MODEMLO 0x08
123 #define RTSER_EVENT_TXEMPTY 0x10
124 #define RTSER_DEF_EVENT_MASK 0x00
132 #define RTSER_SET_BAUD 0x0001
133 #define RTSER_SET_PARITY 0x0002
134 #define RTSER_SET_DATA_BITS 0x0004
135 #define RTSER_SET_STOP_BITS 0x0008
136 #define RTSER_SET_HANDSHAKE 0x0010
137 #define RTSER_SET_FIFO_DEPTH 0x0020
138 #define RTSER_SET_TIMEOUT_RX 0x0100
139 #define RTSER_SET_TIMEOUT_TX 0x0200
140 #define RTSER_SET_TIMEOUT_EVENT 0x0400
141 #define RTSER_SET_TIMESTAMP_HISTORY 0x0800
142 #define RTSER_SET_EVENT_MASK 0x1000
143 #define RTSER_SET_RS485 0x2000
151 #define RTSER_LSR_DATA 0x01
152 #define RTSER_LSR_OVERRUN_ERR 0x02
153 #define RTSER_LSR_PARITY_ERR 0x04
154 #define RTSER_LSR_FRAMING_ERR 0x08
155 #define RTSER_LSR_BREAK_IND 0x10
156 #define RTSER_LSR_THR_EMTPY 0x20
157 #define RTSER_LSR_TRANSM_EMPTY 0x40
158 #define RTSER_LSR_FIFO_ERR 0x80
159 #define RTSER_SOFT_OVERRUN_ERR 0x0100
167 #define RTSER_MSR_DCTS 0x01
168 #define RTSER_MSR_DDSR 0x02
169 #define RTSER_MSR_TERI 0x04
170 #define RTSER_MSR_DDCD 0x08
171 #define RTSER_MSR_CTS 0x10
172 #define RTSER_MSR_DSR 0x20
173 #define RTSER_MSR_RI 0x40
174 #define RTSER_MSR_DCD 0x80
182 #define RTSER_MCR_DTR 0x01
183 #define RTSER_MCR_RTS 0x02
184 #define RTSER_MCR_OUT1 0x04
185 #define RTSER_MCR_OUT2 0x08
186 #define RTSER_MCR_LOOP 0x10
194 #define RTSER_BREAK_CLR 0x00
195 #define RTSER_BREAK_SET 0x01
196 
197 
201 typedef struct rtser_config {
203  __s32 config_mask;
204 
206  __s32 baud_rate;
207 
209  __s32 parity;
210 
212  __s32 data_bits;
213 
215  __s32 stop_bits;
216 
218  __s32 handshake;
219 
221  __s32 fifo_depth;
222 
223  __s32 reserved;
224 
228 
232 
235 
238 
241  __s32 event_mask;
242 
244  __s32 rs485;
245 
246  /* anonymous padding for compat support */
247  int: 32;
249 
253 typedef struct rtser_status {
255  __s32 line_status;
256 
260 
264 typedef struct rtser_event {
266  __s32 events;
267 
269  __s32 rx_pending;
270 
273 
277 
278 
279 #define RTIOC_TYPE_SERIAL RTDM_CLASS_SERIAL
280 
281 
285 #define RTDM_SUBCLASS_16550A 0
303 #define RTSER_RTIOC_GET_CONFIG \
304  _IOR(RTIOC_TYPE_SERIAL, 0x00, struct rtser_config)
305 
325 #define RTSER_RTIOC_SET_CONFIG \
326  _IOW(RTIOC_TYPE_SERIAL, 0x01, struct rtser_config)
327 
343 #define RTSER_RTIOC_GET_STATUS \
344  _IOR(RTIOC_TYPE_SERIAL, 0x02, struct rtser_status)
345 
356 #define RTSER_RTIOC_GET_CONTROL \
357  _IOR(RTIOC_TYPE_SERIAL, 0x03, int)
358 
368 #define RTSER_RTIOC_SET_CONTROL \
369  _IOW(RTIOC_TYPE_SERIAL, 0x04, int)
370 
386 #define RTSER_RTIOC_WAIT_EVENT \
387  _IOR(RTIOC_TYPE_SERIAL, 0x05, struct rtser_event)
402 #define RTSER_RTIOC_BREAK_CTL \
403  _IOR(RTIOC_TYPE_SERIAL, 0x06, int)
412 #endif /* !_RTDM_UAPI_SERIAL_H */
uint64_t nanosecs_abs_t
RTDM type for representing absolute dates.
Definition: rtdm.h:43
int64_t nanosecs_rel_t
RTDM type for representing relative intervals.
Definition: rtdm.h:49
struct rtser_status rtser_status_t
Serial device status.
struct rtser_event rtser_event_t
Additional information about serial device events.
struct rtser_config rtser_config_t
Serial device configuration.
Serial device configuration.
Definition: serial.h:201
__s32 baud_rate
baud rate, default RTSER_DEF_BAUD
Definition: serial.h:206
__s32 event_mask
event mask to be used with RTSER_RTIOC_WAIT_EVENT, see RTSER_EVENT_xxx
Definition: serial.h:241
__s32 rs485
enable RS485 mode, see RTSER_RS485_xxx
Definition: serial.h:244
__s32 parity
number of parity bits, see RTSER_xxx_PARITY
Definition: serial.h:209
__s32 timestamp_history
enable timestamp history, see RTSER_xxx_TIMESTAMP_HISTORY
Definition: serial.h:237
__s32 config_mask
mask specifying valid fields, see RTSER_SET_xxx
Definition: serial.h:203
__s32 handshake
handshake mechanisms, see RTSER_xxx_HAND
Definition: serial.h:218
__s32 data_bits
number of data bits, see RTSER_xxx_BITS
Definition: serial.h:212
nanosecs_rel_t rx_timeout
reception timeout, see RTSER_TIMEOUT_xxx for special values
Definition: serial.h:227
__s32 stop_bits
number of stop bits, see RTSER_xxx_STOPB
Definition: serial.h:215
nanosecs_rel_t tx_timeout
transmission timeout, see RTSER_TIMEOUT_xxx for special values
Definition: serial.h:231
nanosecs_rel_t event_timeout
event timeout, see RTSER_TIMEOUT_xxx for special values
Definition: serial.h:234
__s32 fifo_depth
reception FIFO interrupt threshold, see RTSER_FIFO_xxx
Definition: serial.h:221
Additional information about serial device events.
Definition: serial.h:264
__s32 rx_pending
number of pending input characters
Definition: serial.h:269
__s32 events
signalled events, see RTSER_EVENT_xxx
Definition: serial.h:266
nanosecs_abs_t last_timestamp
last interrupt timestamp
Definition: serial.h:272
nanosecs_abs_t rxpend_timestamp
reception timestamp of oldest character in input queue
Definition: serial.h:275
Serial device status.
Definition: serial.h:253
__s32 line_status
line status register, see RTSER_LSR_xxx
Definition: serial.h:255
__s32 modem_status
modem status register, see RTSER_MSR_xxx
Definition: serial.h:258