25#ifndef HAL_BUFFERED_SIO_H
26#define HAL_BUFFERED_SIO_H
30#if (HAL_USE_SIO == TRUE) || defined(__DOXYGEN__)
51#define __buffered_sio_driver_methods \
52 __buffered_serial_methods
66#define __buffered_sio_driver_data \
67 __buffered_serial_data \
102#define bsioPutI(bsiop, b) oqPutI(&(bsiop)->oqueue, b)
112#define bsioPut(bsiop, b) oqPut(&(bsiop)->oqueue, b)
122#define bsioPutTimeout(bsiop, b, t) oqPutTimeout(&(bsiop)->oqueue, b, t)
132#define bsioGetI(bsiop) iqGetI(&(bsiop)->iqueue)
142#define bsioGet(bsiop) iqGet(&(bsiop)->iqueue)
152#define bsioGetTimeout(bsiop, t) iqGetTimeout(&(bsiop)->iqueue, t)
162#define bsioWriteI(bsiop, b, n) oqWriteI(&(bsiop)->oqueue, b, n)
172#define bsioWrite(bsiop, b, n) oqWriteTimeout(&(bsiop)->oqueue, b, n, TIME_INFINITE)
183#define bsioWriteTimeout(bsiop, b, n, t) \
184 oqWriteTimeout(&(bsiop)->oqueue, b, n, t)
194#define bsioAsynchronousWrite(bsiop, b, n) \
195 oqWriteTimeout(&(bsiop)->oqueue, b, n, TIME_IMMEDIATE)
205#define bsioReadI(bsiop, b, n) iqReadI(&(bsiop)->iqueue, b, n, TIME_INFINITE)
215#define bsioRead(bsiop, b, n) iqReadTimeout(&(bsiop)->iqueue, b, n, TIME_INFINITE)
226#define bsioReadTimeout(bsiop, b, n, t) iqReadTimeout(&(bsiop)->iqueue, b, n, t)
236#define bsioAsynchronousRead(bsiop, b, n) \
237 iqReadTimeout(&(bsiop)->iqueue, b, n, TIME_IMMEDIATE)
248 uint8_t *ib,
size_t ibsize,
249 uint8_t *ob,
size_t obsize);
#define __buffered_sio_driver_data
SerialDriver specific data.
struct hal_buffered_siol_driver BufferedSIODriver
Buffered SIO driver class.
SIOConfig BufferedSIOConfig
Type of a buffered SIO configuration.
void bsioObjectInit(BufferedSIODriver *bsiop, SIODriver *siop, uint8_t *ib, size_t ibsize, uint8_t *ob, size_t obsize)
Initializes a generic serial driver object.
void bsioStop(BufferedSIODriver *bsiop)
Stops the driver.
#define __buffered_sio_driver_methods
BufferedSIODriver specific methods.
msg_t bsioStart(BufferedSIODriver *bsiop, const BufferedSIOConfig *config)
Configures and starts the driver.
struct hal_sio_config SIOConfig
Type of structure representing a SIO configuration.
struct hal_sio_driver SIODriver
Type of structure representing a SIO driver.
BufferedSIODriver virtual methods table.
Buffered SIO driver class.
const struct BufferedSIODriverVMT * vmt
Virtual Methods Table.