Xenomai 3.3.2
Loading...
Searching...
No Matches
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
201typedef struct rtser_config {
204
207
209 __s32 parity;
210
213
216
219
222
223 __s32 reserved;
224
228
232
235
238
242
244 __s32 rs485;
245
246 /* anonymous padding for compat support */
247 int: 32;
249
260
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