43#define CHN_CTL_INVALID 0
45#define CHN_CTL_TX_WAIT 2
51#define _base_channel_methods \
52 _base_sequential_stream_methods \
54 msg_t (*putt)(void *instance, uint8_t b, sysinterval_t time); \
56 msg_t (*gett)(void *instance, sysinterval_t time); \
58 size_t (*writet)(void *instance, const uint8_t *bp, \
59 size_t n, sysinterval_t time); \
61 size_t (*readt)(void *instance, uint8_t *bp, size_t n, \
62 sysinterval_t time); \
64 msg_t (*ctl)(void *instance, unsigned int operation, void *arg);
71#define _base_channel_data \
72 _base_sequential_stream_data
118#define chnPutTimeout(ip, b, time) ((ip)->vmt->putt(ip, b, time))
137#define chnGetTimeout(ip, time) ((ip)->vmt->gett(ip, time))
152#define chnWrite(ip, bp, n) streamWrite(ip, bp, n)
170#define chnWriteTimeout(ip, bp, n, time) ((ip)->vmt->writet(ip, bp, n, time))
185#define chnRead(ip, bp, n) streamRead(ip, bp, n)
203#define chnReadTimeout(ip, bp, n, time) ((ip)->vmt->readt(ip, bp, n, time))
219#define chnControl(ip, operation, arg) ((ip)->vmt->ctl(ip, operation, arg))
227#define CHN_NO_ERROR (eventflags_t)0
229#define CHN_CONNECTED (eventflags_t)1
231#define CHN_DISCONNECTED (eventflags_t)2
233#define CHN_INPUT_AVAILABLE (eventflags_t)4
235#define CHN_OUTPUT_EMPTY (eventflags_t)8
237#define CHN_TRANSMISSION_END (eventflags_t)16
239#define CHN_PARITY_ERROR (eventflags_t)32
241#define CHN_FRAMING_ERROR (eventflags_t)64
243#define CHN_NOISE_ERROR (eventflags_t)128
245#define CHN_OVERRUN_ERROR (eventflags_t)256
247#define CHN_IDLE_DETECTED (eventflags_t)512
249#define CHN_BREAK_DETECTED (eventflags_t)1024
251#define CHN_BUFFER_FULL_ERROR (eventflags_t)2048
257#define _base_asynchronous_channel_methods \
258 _base_channel_methods \
263#define _base_asynchronous_channel_data \
266 event_source_t event;
304#define chnGetEventSource(ip) (&((ip)->event))
318#define chnAddFlagsI(ip, flags) { \
319 osalEventBroadcastFlagsI(&(ip)->event, flags); \
#define _base_asynchronous_channel_data
BaseAsynchronousChannel specific data.
#define _base_channel_data
BaseChannel specific data.
#define _base_asynchronous_channel_methods
BaseAsynchronousChannel specific methods.
#define _base_channel_methods
BaseChannel specific methods.
Base asynchronous channel class.
const struct BaseAsynchronousChannelVMT * vmt
Virtual Methods Table.
BaseAsynchronousChannel virtual methods table.
const struct BaseChannelVMT * vmt
Virtual Methods Table.
BaseChannel virtual methods table.