• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • Examples
  • File List
  • Globals

include/rtdm/rtserial.h

Go to the documentation of this file.
00001 
00077 #ifndef _RTSERIAL_H
00078 #define _RTSERIAL_H
00079 
00080 #include <rtdm/rtdm.h>
00081 
00082 #define RTSER_PROFILE_VER               3
00083 
00088 #define RTSER_DEF_BAUD                  9600
00089 
00095 #define RTSER_NO_PARITY                 0x00
00096 #define RTSER_ODD_PARITY                0x01
00097 #define RTSER_EVEN_PARITY               0x03
00098 #define RTSER_DEF_PARITY                RTSER_NO_PARITY
00099 
00105 #define RTSER_5_BITS                    0x00
00106 #define RTSER_6_BITS                    0x01
00107 #define RTSER_7_BITS                    0x02
00108 #define RTSER_8_BITS                    0x03
00109 #define RTSER_DEF_BITS                  RTSER_8_BITS
00110 
00116 #define RTSER_1_STOPB                   0x00
00117 
00118 #define RTSER_1_5_STOPB                 0x01
00119 #define RTSER_2_STOPB                   0x01
00120 #define RTSER_DEF_STOPB                 RTSER_1_STOPB
00121 
00127 #define RTSER_NO_HAND                   0x00
00128 #define RTSER_RTSCTS_HAND               0x01
00129 #define RTSER_DEF_HAND                  RTSER_NO_HAND
00130 
00136 #define RTSER_RS485_DISABLE             0x00
00137 #define RTSER_RS485_ENABLE              0x01
00138 #define RTSER_DEF_RS485                 RTSER_RS485_DISABLE
00139 
00145 #define RTSER_FIFO_DEPTH_1              0x00
00146 #define RTSER_FIFO_DEPTH_4              0x40
00147 #define RTSER_FIFO_DEPTH_8              0x80
00148 #define RTSER_FIFO_DEPTH_14             0xC0
00149 #define RTSER_DEF_FIFO_DEPTH            RTSER_FIFO_DEPTH_1
00150 
00156 #define RTSER_TIMEOUT_INFINITE          RTDM_TIMEOUT_INFINITE
00157 #define RTSER_TIMEOUT_NONE              RTDM_TIMEOUT_NONE
00158 #define RTSER_DEF_TIMEOUT               RTDM_TIMEOUT_INFINITE
00159 
00165 #define RTSER_RX_TIMESTAMP_HISTORY      0x01
00166 #define RTSER_DEF_TIMESTAMP_HISTORY     0x00
00167 
00173 #define RTSER_EVENT_RXPEND              0x01
00174 #define RTSER_EVENT_ERRPEND             0x02
00175 #define RTSER_EVENT_MODEMHI             0x04
00176 #define RTSER_EVENT_MODEMLO             0x08
00177 #define RTSER_EVENT_TXEMPTY             0x10
00178 #define RTSER_DEF_EVENT_MASK            0x00
00179 
00186 #define RTSER_SET_BAUD                  0x0001
00187 #define RTSER_SET_PARITY                0x0002
00188 #define RTSER_SET_DATA_BITS             0x0004
00189 #define RTSER_SET_STOP_BITS             0x0008
00190 #define RTSER_SET_HANDSHAKE             0x0010
00191 #define RTSER_SET_FIFO_DEPTH            0x0020
00192 #define RTSER_SET_TIMEOUT_RX            0x0100
00193 #define RTSER_SET_TIMEOUT_TX            0x0200
00194 #define RTSER_SET_TIMEOUT_EVENT         0x0400
00195 #define RTSER_SET_TIMESTAMP_HISTORY     0x0800
00196 #define RTSER_SET_EVENT_MASK            0x1000
00197 #define RTSER_SET_RS485                 0x2000
00198 
00205 #define RTSER_LSR_DATA                  0x01
00206 #define RTSER_LSR_OVERRUN_ERR           0x02
00207 #define RTSER_LSR_PARITY_ERR            0x04
00208 #define RTSER_LSR_FRAMING_ERR           0x08
00209 #define RTSER_LSR_BREAK_IND             0x10
00210 #define RTSER_LSR_THR_EMTPY             0x20
00211 #define RTSER_LSR_TRANSM_EMPTY          0x40
00212 #define RTSER_LSR_FIFO_ERR              0x80
00213 #define RTSER_SOFT_OVERRUN_ERR          0x0100
00214 
00221 #define RTSER_MSR_DCTS                  0x01
00222 #define RTSER_MSR_DDSR                  0x02
00223 #define RTSER_MSR_TERI                  0x04
00224 #define RTSER_MSR_DDCD                  0x08
00225 #define RTSER_MSR_CTS                   0x10
00226 #define RTSER_MSR_DSR                   0x20
00227 #define RTSER_MSR_RI                    0x40
00228 #define RTSER_MSR_DCD                   0x80
00229 
00236 #define RTSER_MCR_DTR                   0x01
00237 #define RTSER_MCR_RTS                   0x02
00238 #define RTSER_MCR_OUT1                  0x04
00239 #define RTSER_MCR_OUT2                  0x08
00240 #define RTSER_MCR_LOOP                  0x10
00241 
00248 #define RTSER_BREAK_CLR                 0x00
00249 #define RTSER_BREAK_SET                 0x01
00250 
00251 
00255 typedef struct rtser_config {
00257         int             config_mask;
00258 
00260         int             baud_rate;
00261 
00263         int             parity;
00264 
00266         int             data_bits;
00267 
00269         int             stop_bits;
00270 
00272         int             handshake;
00273 
00275         int             fifo_depth;
00276 
00277         int             reserved;
00278 
00281         nanosecs_rel_t  rx_timeout;
00282 
00285         nanosecs_rel_t  tx_timeout;
00286 
00288         nanosecs_rel_t  event_timeout;
00289 
00291         int             timestamp_history;
00292 
00295         int             event_mask;
00296 
00298         int             rs485;
00299 } rtser_config_t;
00300 
00304 typedef struct rtser_status {
00306         int             line_status;
00307 
00309         int             modem_status;
00310 } rtser_status_t;
00311 
00315 typedef struct rtser_event {
00317         int             events;
00318 
00320         int             rx_pending;
00321 
00323         nanosecs_abs_t  last_timestamp;
00324 
00326         nanosecs_abs_t  rxpend_timestamp;
00327 } rtser_event_t;
00328 
00329 
00330 #define RTIOC_TYPE_SERIAL               RTDM_CLASS_SERIAL
00331 
00332 
00336 #define RTDM_SUBCLASS_16550A            0
00337 
00362 #define RTSER_RTIOC_GET_CONFIG  \
00363         _IOR(RTIOC_TYPE_SERIAL, 0x00, struct rtser_config)
00364 
00392 #define RTSER_RTIOC_SET_CONFIG  \
00393         _IOW(RTIOC_TYPE_SERIAL, 0x01, struct rtser_config)
00394 
00418 #define RTSER_RTIOC_GET_STATUS  \
00419         _IOR(RTIOC_TYPE_SERIAL, 0x02, struct rtser_status)
00420 
00439 #define RTSER_RTIOC_GET_CONTROL \
00440         _IOR(RTIOC_TYPE_SERIAL, 0x03, int)
00441 
00459 #define RTSER_RTIOC_SET_CONTROL \
00460         _IOW(RTIOC_TYPE_SERIAL, 0x04, int)
00461 
00484 #define RTSER_RTIOC_WAIT_EVENT  \
00485         _IOR(RTIOC_TYPE_SERIAL, 0x05, struct rtser_event)
00486 
00508 #define RTSER_RTIOC_BREAK_CTL   \
00509         _IOR(RTIOC_TYPE_SERIAL, 0x06, int)
00510 
00520 #endif /* _RTSERIAL_H */

Generated on Wed Jan 23 2013 13:24:01 for Xenomai API by  doxygen 1.7.1