27#if (HAL_USE_SIO == TRUE) || defined(__DOXYGEN__)
52 msg =
oqGetI(&bsiop->oqueue);
57 sioPutX(bsiop->siop, (uint_fast16_t)msg);
177 uint8_t *ib,
size_t ibsize,
178 uint8_t *ob,
size_t obsize) {
181 ib, ibsize, NULL, NULL,
184 siop->
arg = (
void *)bsiop;
206 msg =
sioStart(bsiop->siop, config);
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)
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 size_t __buffered_serial_write_timeout_impl(void *ip, const uint8_t *bp, size_t n, sysinterval_t timeout)
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.
static msg_t __bsio_putt(void *ip, uint8_t b, sysinterval_t timeout)
static void __bsio_onotify(io_queue_t *qp)
static void __bsio_push_data(BufferedSIODriver *bsiop)
static msg_t __bsio_gett(void *ip, sysinterval_t timeout)
struct hal_buffered_siol_driver BufferedSIODriver
Buffered SIO driver class.
static size_t __bsio_writet(void *ip, const uint8_t *bp, size_t n, sysinterval_t timeout)
SIOConfig BufferedSIOConfig
Type of a buffered SIO configuration.
static msg_t __bsio_get(void *ip)
static void __bsio_default_cb(SIODriver *siop)
static size_t __bsio_read(void *ip, uint8_t *bp, size_t n)
static size_t __bsio_readt(void *ip, uint8_t *bp, size_t n, sysinterval_t timeout)
void bsioObjectInit(BufferedSIODriver *bsiop, SIODriver *siop, uint8_t *ib, size_t ibsize, uint8_t *ob, size_t obsize)
Initializes a generic serial driver object.
static void __bsio_pop_data(BufferedSIODriver *bsiop)
void bsioStop(BufferedSIODriver *bsiop)
Stops the driver.
static size_t __bsio_write(void *ip, const uint8_t *bp, size_t n)
msg_t bsioStart(BufferedSIODriver *bsiop, const BufferedSIOConfig *config)
Configures and starts the driver.
static msg_t __bsio_put(void *ip, uint8_t b)
static msg_t __bsio_ctl(void *ip, unsigned int operation, void *arg)
static const struct EFlashDriverVMT vmt
void iqResetI(input_queue_t *iqp)
Resets an input queue.
void oqResetI(output_queue_t *oqp)
Resets an output queue.
msg_t oqGetI(output_queue_t *oqp)
Output queue read.
struct io_queue io_queue_t
Type of a generic I/O queue structure.
#define CHN_OUTPUT_EMPTY
Output queue empty.
#define chnAddFlagsI(ip, flags)
Adds status flags to the listeners's flags mask.
static void osalSysLock(void)
Enters a critical zone from thread context.
static void osalSysUnlock(void)
Leaves a critical zone from thread context.
static void osalSysLockFromISR(void)
Enters a critical zone from ISR context.
void osalOsRescheduleS(void)
Checks if a reschedule is required and performs it.
static void osalSysUnlockFromISR(void)
Leaves a critical zone from ISR context.
#define osalDbgAssert(c, remark)
Condition assertion.
#define osalDbgCheck(c)
Function parameters check.
#define sioPutX(siop, data)
Pushes one frame into the TX FIFO.
#define sioGetX(siop)
Returns one frame from the RX FIFO.
struct hal_sio_driver SIODriver
Type of structure representing a SIO driver.
#define sioSetCallbackX(siop, f)
Associates a callback to the SIO instance.
#define sioWriteEnableFlagsX(siop, mask)
Writes the enabled events mask.
#define sioIsTXFullX(siop)
Determines the state of the TX FIFO.
msg_t sioStart(SIODriver *siop, const SIOConfig *config)
Configures and activates the SIO peripheral.
#define sioGetAndClearEventsX(siop)
Get and clears SIO event flags.
#define sioControlX(siop, operation, arg)
Control operation on a serial port.
eventflags_t sioevents_t
Type of event flags.
void sioStop(SIODriver *siop)
Deactivates the SIO peripheral.
#define sioIsRXEmptyX(siop)
Determines the state of the RX FIFO.
#define SIO_EV_ALL_EVENTS
#define MSG_OK
Normal wakeup message.
uint64_t sysinterval_t
Type of time interval.
Buffered SIO Driver macros and structures.
BufferedSIODriver virtual methods table.
void * q_link
Application defined field.