Mercurial > flash_v2
diff packages/io/serial/current/include/serialio.h @ 115:6ed91473a1cd ecos-sw-2000-08-21
Merge from eCos master repository on 2000-08-21-22:40:54-BST
| author | jlarmour |
|---|---|
| date | Fri, 25 Aug 2000 17:32:38 +0000 |
| parents | 6512add4f5d6 |
| children | 0c2b7be0d798 |
line wrap: on
line diff
--- a/packages/io/serial/current/include/serialio.h +++ b/packages/io/serial/current/include/serialio.h @@ -116,6 +116,32 @@ typedef struct { cyg_uint32 flags; } cyg_serial_info_t; +// cyg_serial_info_t flags +#define CYGNUM_SERIAL_FLOW_NONE (0) +// receive flow control, send xon/xoff when necessary: +#define CYGNUM_SERIAL_FLOW_XONXOFF_RX (1<<0) +// transmit flow control, act on received xon/xoff: +#define CYGNUM_SERIAL_FLOW_XONXOFF_TX (1<<1) +// receive flow control, send RTS when necessary: +#define CYGNUM_SERIAL_FLOW_RTSCTS_RX (1<<2) +// transmit flow control, act when not CTS: +#define CYGNUM_SERIAL_FLOW_RTSCTS_TX (1<<3) +// receive flow control, send DTR when necessary: +#define CYGNUM_SERIAL_FLOW_DSRDTR_RX (1<<4) +// transmit flow control, act when not DSR: +#define CYGNUM_SERIAL_FLOW_DSRDTR_TX (1<<5) + +// arguments for CYG_IO_SET_CONFIG_SERIAL_FLOW_CONTROL_FORCE +#define CYGNUM_SERIAL_FLOW_THROTTLE_RX 0 +#define CYGNUM_SERIAL_FLOW_RESTART_RX 1 +#define CYGNUM_SERIAL_FLOW_THROTTLE_TX 2 +#define CYGNUM_SERIAL_FLOW_RESTART_TX 3 + +// arguments for CYG_IO_SET_CONFIG_SERIAL_HW_RX_FLOW_THROTTLE +#define CYGNUM_SERIAL_FLOW_HW_UNTHROTTLE 0 +#define CYGNUM_SERIAL_FLOW_HW_THROTTLE 0 +#define CYGNUM_SERIAL_FLOW_HW_UNTHROTTLE 0 + typedef struct { cyg_int32 rx_bufsize; cyg_int32 rx_count; @@ -123,12 +149,33 @@ typedef struct { cyg_int32 tx_count; } cyg_serial_buf_info_t; - #define CYG_SERIAL_INFO_INIT(_baud,_stop,_parity,_word_length,_flags) \ { _baud, _stop, _parity, _word_length, _flags} -// Control flags -#define CYG_SERIAL_FLAGS_RTSCTS 0x0001 +#ifdef CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS + +# define CYGNUM_SERIAL_STATUS_FLOW 0 +# define CYGNUM_SERIAL_STATUS_BREAK 1 +# define CYGNUM_SERIAL_STATUS_FRAMEERR 2 +# define CYGNUM_SERIAL_STATUS_PARITYERR 3 +# define CYGNUM_SERIAL_STATUS_OVERRUNERR 4 +# define CYGNUM_SERIAL_STATUS_CARRIERDETECT 5 +# define CYGNUM_SERIAL_STATUS_RINGINDICATOR 6 + +typedef struct { + cyg_uint32 which; // one of CYGNUM_SERIAL_STATUS_* above + cyg_uint32 value; // and its value +} cyg_serial_line_status_t; + +typedef void (*cyg_serial_line_status_callback_fn_t)( + cyg_serial_line_status_t *s, + CYG_ADDRWORD priv ); +typedef struct { + cyg_serial_line_status_callback_fn_t fn; + CYG_ADDRWORD priv; +} cyg_serial_line_status_callback_t; + +#endif // ifdef CYGOPT_IO_SERIAL_SUPPORT_LINE_STATUS // Default configuration #define CYG_SERIAL_BAUD_DEFAULT CYGNUM_SERIAL_BAUD_38400 @@ -137,6 +184,16 @@ typedef struct { #define CYG_SERIAL_WORD_LENGTH_DEFAULT CYGNUM_SERIAL_WORD_LENGTH_8 #define CYG_SERIAL_FLAGS_DEFAULT 0 +#ifdef CYGDAT_IO_SERIAL_FLOW_CONTROL_DEFAULT_XONXOFF +# define CYG_SERIAL_FLAGS_DEFAULT CYG_SERIAL_FLOW_XONXOFF +#elif defined(CYGDAT_IO_SERIAL_FLOW_CONTROL_DEFAULT_RTSCTS) +# define CYG_SERIAL_FLAGS_DEFAULT CYG_SERIAL_FLOW_RTSCTS +#elif defined(CYGDAT_IO_SERIAL_FLOW_CONTROL_DEFAULT_DSRDTR) +# define CYG_SERIAL_FLAGS_DEFAULT CYG_SERIAL_FLOW_DSRDTR +#else +# define CYG_SERIAL_FLAGS_DEFAULT 0 +#endif + #ifdef __cplusplus } #endif
