27#if (HAL_USE_SERIAL == TRUE) || defined(__DOXYGEN__) 
   50static size_t _write(
void *ip, 
const uint8_t *bp, 
size_t n) {
 
 
   56static size_t _read(
void *ip, uint8_t *bp, 
size_t n) {
 
 
   82static size_t _writet(
void *ip, 
const uint8_t *bp, 
size_t n,
 
 
   88static size_t _readt(
void *ip, uint8_t *bp, 
size_t n,
 
 
   94static msg_t _ctl(
void *ip, 
unsigned int operation, 
void *arg) {
 
  106#if defined(SD_LLD_IMPLEMENTS_CTL) 
  108    return sd_lld_control(sdp, operation, arg);
 
 
  154#if !defined(SERIAL_ADVANCED_BUFFERING_SUPPORT) ||                          \ 
  155    (SERIAL_ADVANCED_BUFFERING_SUPPORT == FALSE) ||                         \ 
  194#if defined(SD_LLD_ENHANCED_API) 
 
  360  return _ctl((
void *)sdp, operation, arg);
 
 
static const struct EFlashDriverVMT vmt
 
void iqResetI(input_queue_t *iqp)
Resets an input queue.
 
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.
 
#define iqIsEmptyI(iqp)
Evaluates to true if the specified input queue is empty.
 
msg_t iqPutI(input_queue_t *iqp, uint8_t b)
Input queue write.
 
void oqResetI(output_queue_t *oqp)
Resets an output queue.
 
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.
 
msg_t oqGetI(output_queue_t *oqp)
Output queue read.
 
#define oqIsFullI(oqp)
Evaluates to true if the specified output queue is full.
 
#define HAL_RET_UNKNOWN_CTL
Unknown control code.
 
#define CHN_OUTPUT_EMPTY
Output queue empty.
 
#define CHN_CTL_INVALID
Invalid operation code.
 
#define CHN_INPUT_AVAILABLE
Data available in the input queue.
 
#define CHN_CTL_NOP
Does nothing.
 
#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.
 
void osalOsRescheduleS(void)
Checks if a reschedule is required and performs it.
 
static void osalEventObjectInit(event_source_t *esp)
Initializes an event source object.
 
#define osalDbgAssert(c, remark)
Condition assertion.
 
#define osalDbgCheck(c)
Function parameters check.
 
#define osalDbgCheckClassI()
I-Class state check.
 
static size_t _writet(void *ip, const uint8_t *bp, size_t n, sysinterval_t timeout)
 
static msg_t _get(void *ip)
 
static msg_t _gett(void *ip, sysinterval_t timeout)
 
static msg_t _ctl(void *ip, unsigned int operation, void *arg)
 
static msg_t _put(void *ip, uint8_t b)
 
msg_t sdStart(SerialDriver *sdp, const SerialConfig *config)
Configures and starts the driver.
 
struct hal_serial_driver SerialDriver
Structure representing a serial driver.
 
static size_t _write(void *ip, const uint8_t *bp, size_t n)
 
static msg_t _putt(void *ip, uint8_t b, sysinterval_t timeout)
 
#define SERIAL_BUFFERS_SIZE
Serial buffers size.
 
msg_t sdControl(SerialDriver *sdp, unsigned int operation, void *arg)
Control operation on a serial port.
 
static size_t _readt(void *ip, uint8_t *bp, size_t n, sysinterval_t timeout)
 
bool sdGetWouldBlock(SerialDriver *sdp)
Direct input check on a SerialDriver.
 
#define SD_QUEUE_FULL_ERROR
 
static size_t _read(void *ip, uint8_t *bp, size_t n)
 
void sdIncomingDataI(SerialDriver *sdp, uint8_t b)
Handles incoming data.
 
void sdStop(SerialDriver *sdp)
Stops the driver.
 
void sdObjectInit(SerialDriver *sdp, qnotify_t inotify, qnotify_t onotify)
Initializes a generic serial driver object.
 
struct hal_serial_config SerialConfig
PLATFORM Serial Driver configuration structure.
 
void sd_lld_start(SerialDriver *sdp, const SerialConfig *config)
Low level serial driver configuration and (re)start.
 
void sdInit(void)
Serial Driver initialization.
 
void sd_lld_init(void)
Low level serial driver initialization.
 
bool sdPutWouldBlock(SerialDriver *sdp)
Direct output check on a SerialDriver.
 
void sd_lld_stop(SerialDriver *sdp)
Low level serial driver stop.
 
msg_t sdRequestDataI(SerialDriver *sdp)
Handles outgoing data.
 
#define MSG_OK
Normal wakeup message.
 
uint64_t sysinterval_t
Type of time interval.
 
#define TIME_INFINITE
Infinite interval specification for all functions with a timeout specification.
 
SerialDriver virtual methods table.
 
const struct SerialDriverVMT * vmt
Virtual Methods Table.