25#ifndef HAL_BUFFERED_SERIAL_H
26#define HAL_BUFFERED_SERIAL_H
61#define __buffered_serial_methods \
62 _base_asynchronous_channel_methods
76#define __buffered_serial_data \
77 _base_asynchronous_channel_data \
81 input_queue_t iqueue; \
83 output_queue_t oqueue;
146 uint8_t *ib,
size_t ibsize,
148 uint8_t *ob,
size_t obsize,
225 unsigned int operation,
#define CC_FORCE_INLINE
Enforces a function inline.
bsstate_t
BufferedSerial state machine states.
static CC_FORCE_INLINE size_t __buffered_serial_read_timeout_impl(void *ip, uint8_t *bp, size_t n, sysinterval_t timeout)
static CC_FORCE_INLINE msg_t __buffered_serial_put_impl(void *ip, uint8_t b)
static CC_FORCE_INLINE size_t __buffered_serial_write_impl(void *ip, const uint8_t *bp, size_t n)
static CC_FORCE_INLINE msg_t __buffered_serial_get_timeout_impl(void *ip, sysinterval_t timeout)
#define __buffered_serial_data
BufferedSerial specific data.
static CC_FORCE_INLINE msg_t __buffered_serial_get_impl(void *ip)
static CC_FORCE_INLINE size_t __buffered_serial_read_impl(void *ip, uint8_t *bp, size_t n)
struct hal_buffered_serial BufferedSerial
Structure representing a buffered serial class.
static CC_FORCE_INLINE msg_t __buffered_serial_ctl_impl(void *ip, unsigned int operation, void *arg)
static CC_FORCE_INLINE size_t __buffered_serial_write_timeout_impl(void *ip, const uint8_t *bp, size_t n, sysinterval_t timeout)
msg_t bsRequestDataI(BufferedSerial *bsp)
Handles outgoing data.
static CC_FORCE_INLINE msg_t __buffered_serial_put_timeout_impl(void *ip, uint8_t b, sysinterval_t timeout)
void bsIncomingDataI(BufferedSerial *bsp, uint8_t b)
Handles incoming data.
static CC_FORCE_INLINE void __buffered_serial_objinit_impl(void *ip, const void *vmt, uint8_t *ib, size_t ibsize, qnotify_t inotify, void *iarg, uint8_t *ob, size_t obsize, qnotify_t onotify, void *oarg)
Object initialization implementation.
#define __buffered_serial_methods
BufferedSerial specific methods.
static const struct EFlashDriverVMT vmt
size_t oqWriteTimeout(output_queue_t *oqp, const uint8_t *bp, size_t n, sysinterval_t timeout)
Output queue write with timeout.
void iqObjectInit(input_queue_t *iqp, uint8_t *bp, size_t size, qnotify_t infy, void *link)
Initializes an input queue.
msg_t iqGetTimeout(input_queue_t *iqp, sysinterval_t timeout)
Input queue read with timeout.
void(* qnotify_t)(io_queue_t *qp)
Queue notification callback type.
size_t iqReadTimeout(input_queue_t *iqp, uint8_t *bp, size_t n, sysinterval_t timeout)
Input queue read with timeout.
msg_t oqPutTimeout(output_queue_t *oqp, uint8_t b, sysinterval_t timeout)
Output queue write with timeout.
void oqObjectInit(output_queue_t *oqp, uint8_t *bp, size_t size, qnotify_t onfy, void *link)
Initializes an output queue.
#define HAL_RET_UNKNOWN_CTL
Unknown control code.
#define CHN_CTL_INVALID
Invalid operation code.
#define CHN_CTL_NOP
Does nothing.
int32_t msg_t
Type of a message.
uint32_t sysinterval_t
Type of system time interval.
static void osalEventObjectInit(event_source_t *esp)
Initializes an event source object.
#define osalDbgCheck(c)
Function parameters check.
BufferedSerial virtual methods table.
Buffered serial channel class.
const struct BufferedSerialVMT * vmt
Virtual Methods Table.