git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/rt5_dev_point1@10822 35acf78f-673a-0410-8e92-d51de3d6d3f4

This commit is contained in:
Giovanni Di Sirio 2017-10-15 06:51:20 +00:00
parent cb72582805
commit a47f5705d3
19 changed files with 185 additions and 99 deletions

View File

@ -284,14 +284,14 @@ extern "C" {
uint8_t *ibqGetEmptyBufferI(input_buffers_queue_t *ibqp);
void ibqPostFullBufferI(input_buffers_queue_t *ibqp, size_t size);
msg_t ibqGetFullBufferTimeout(input_buffers_queue_t *ibqp,
systime_t timeout);
sysinterval_t timeout);
msg_t ibqGetFullBufferTimeoutS(input_buffers_queue_t *ibqp,
systime_t timeout);
sysinterval_t timeout);
void ibqReleaseEmptyBuffer(input_buffers_queue_t *ibqp);
void ibqReleaseEmptyBufferS(input_buffers_queue_t *ibqp);
msg_t ibqGetTimeout(input_buffers_queue_t *ibqp, systime_t timeout);
msg_t ibqGetTimeout(input_buffers_queue_t *ibqp, sysinterval_t timeout);
size_t ibqReadTimeout(input_buffers_queue_t *ibqp, uint8_t *bp,
size_t n, systime_t timeout);
size_t n, sysinterval_t timeout);
void obqObjectInit(output_buffers_queue_t *obqp, bool suspended, uint8_t *bp,
size_t size, size_t n, bqnotify_t onfy, void *link);
void obqResetI(output_buffers_queue_t *obqp);
@ -299,15 +299,15 @@ extern "C" {
size_t *sizep);
void obqReleaseEmptyBufferI(output_buffers_queue_t *obqp);
msg_t obqGetEmptyBufferTimeout(output_buffers_queue_t *obqp,
systime_t timeout);
sysinterval_t timeout);
msg_t obqGetEmptyBufferTimeoutS(output_buffers_queue_t *obqp,
systime_t timeout);
sysinterval_t timeout);
void obqPostFullBuffer(output_buffers_queue_t *obqp, size_t size);
void obqPostFullBufferS(output_buffers_queue_t *obqp, size_t size);
msg_t obqPutTimeout(output_buffers_queue_t *obqp, uint8_t b,
systime_t timeout);
sysinterval_t timeout);
size_t obqWriteTimeout(output_buffers_queue_t *obqp, const uint8_t *bp,
size_t n, systime_t timeout);
size_t n, sysinterval_t timeout);
bool obqTryFlushI(output_buffers_queue_t *obqp);
void obqFlush(output_buffers_queue_t *obqp);
#ifdef __cplusplus

View File

@ -152,11 +152,11 @@ extern "C" {
msg_t canTransmitTimeout(CANDriver *canp,
canmbx_t mailbox,
const CANTxFrame *ctfp,
systime_t timeout);
sysinterval_t timeout);
msg_t canReceiveTimeout(CANDriver *canp,
canmbx_t mailbox,
CANRxFrame *crfp,
systime_t timeout);
sysinterval_t timeout);
#if CAN_USE_SLEEP_MODE
void canSleep(CANDriver *canp);
void canWakeup(CANDriver *canp);

View File

@ -51,14 +51,15 @@
#define _base_channel_methods \
_base_sequential_stream_methods \
/* Channel put method with timeout specification.*/ \
msg_t (*putt)(void *instance, uint8_t b, systime_t time); \
msg_t (*putt)(void *instance, uint8_t b, sysinterval_t time); \
/* Channel get method with timeout specification.*/ \
msg_t (*gett)(void *instance, systime_t time); \
msg_t (*gett)(void *instance, sysinterval_t time); \
/* Channel write method with timeout specification.*/ \
size_t (*writet)(void *instance, const uint8_t *bp, \
size_t n, systime_t time); \
size_t n, sysinterval_t time); \
/* Channel read method with timeout specification.*/ \
size_t (*readt)(void *instance, uint8_t *bp, size_t n, systime_t time); \
size_t (*readt)(void *instance, uint8_t *bp, size_t n, \
sysinterval_t time); \
/* Channel put method with timeout specification.*/ \
msg_t (*ctl)(void *instance, unsigned int operation, void *arg);

View File

@ -145,11 +145,11 @@ extern "C" {
i2caddr_t addr,
const uint8_t *txbuf, size_t txbytes,
uint8_t *rxbuf, size_t rxbytes,
systime_t timeout);
sysinterval_t timeout);
msg_t i2cMasterReceiveTimeout(I2CDriver *i2cp,
i2caddr_t addr,
uint8_t *rxbuf, size_t rxbytes,
systime_t timeout);
sysinterval_t timeout);
#if I2C_USE_MUTUAL_EXCLUSION == TRUE
void i2cAcquireBus(I2CDriver *i2cp);
void i2cReleaseBus(I2CDriver *i2cp);

View File

@ -184,11 +184,11 @@ extern "C" {
void macSetAddress(MACDriver *macp, const uint8_t *p);
msg_t macWaitTransmitDescriptor(MACDriver *macp,
MACTransmitDescriptor *tdp,
systime_t timeout);
sysinterval_t timeout);
void macReleaseTransmitDescriptor(MACTransmitDescriptor *tdp);
msg_t macWaitReceiveDescriptor(MACDriver *macp,
MACReceiveDescriptor *rdp,
systime_t timeout);
sysinterval_t timeout);
void macReleaseReceiveDescriptor(MACReceiveDescriptor *rdp);
bool macPollLinkStatus(MACDriver *macp);
#ifdef __cplusplus

View File

@ -1006,8 +1006,9 @@ extern "C" {
void palSetLineCallbackI(ioline_t line, palcallback_t cb, void *arg);
#endif /* PAL_USE_CALLBACKS */
#if PAL_USE_WAIT || defined(__DOXYGEN__)
msg_t palWaitPadTimeoutS(ioportid_t port, iopadid_t pad, systime_t timeout);
msg_t palWaitLineTimeoutS(ioline_t line, systime_t timeout);
msg_t palWaitPadTimeoutS(ioportid_t port, iopadid_t pad,
sysinterval_t timeout);
msg_t palWaitLineTimeoutS(ioline_t line, sysinterval_t timeout);
#endif /* PAL_USE_WAIT */
#ifdef __cplusplus
}

View File

@ -278,17 +278,17 @@ extern "C" {
qnotify_t infy, void *link);
void iqResetI(input_queue_t *iqp);
msg_t iqPutI(input_queue_t *iqp, uint8_t b);
msg_t iqGetTimeout(input_queue_t *iqp, systime_t timeout);
msg_t iqGetTimeout(input_queue_t *iqp, sysinterval_t timeout);
size_t iqReadTimeout(input_queue_t *iqp, uint8_t *bp,
size_t n, systime_t timeout);
size_t n, sysinterval_t timeout);
void oqObjectInit(output_queue_t *oqp, uint8_t *bp, size_t size,
qnotify_t onfy, void *link);
void oqResetI(output_queue_t *oqp);
msg_t oqPutTimeout(output_queue_t *oqp, uint8_t b, systime_t timeout);
msg_t oqPutTimeout(output_queue_t *oqp, uint8_t b, sysinterval_t timeout);
msg_t oqGetI(output_queue_t *oqp);
size_t oqWriteTimeout(output_queue_t *oqp, const uint8_t *bp,
size_t n, systime_t timeout);
size_t n, sysinterval_t timeout);
#ifdef __cplusplus
}
#endif

View File

@ -359,11 +359,11 @@ extern "C" {
size_t uartStopReceiveI(UARTDriver *uartp);
#if UART_USE_WAIT == TRUE
msg_t uartSendTimeout(UARTDriver *uartp, size_t *np,
const void *txbuf, systime_t timeout);
const void *txbuf, sysinterval_t timeout);
msg_t uartSendFullTimeout(UARTDriver *uartp, size_t *np,
const void *txbuf, systime_t timeout);
const void *txbuf, sysinterval_t timeout);
msg_t uartReceiveTimeout(UARTDriver *uartp, size_t *np,
void *rxbuf, systime_t timeout);
void *rxbuf, sysinterval_t timeout);
#endif
#if UART_USE_MUTUAL_EXCLUSION == TRUE
void uartAcquireBus(UARTDriver *uartp);

View File

@ -875,8 +875,9 @@ static inline void osalEventBroadcastFlags(event_source_t *esp,
osalDbgCheck(esp != NULL);
chSysLock();
osalEventBroadcastFlagsI(esp, flags);
chSchRescheduleS();
esp->flags |= flags;
if (esp->cb != NULL) {
esp->cb(esp);
chSysUnlock();
}

View File

@ -67,8 +67,8 @@
* @name Special time constants
* @{
*/
#define TIME_IMMEDIATE ((systime_t)0)
#define TIME_INFINITE ((systime_t)-1)
#define TIME_IMMEDIATE ((sysinterval_t)0)
#define TIME_INFINITE ((sysinterval_t)-1)
/** @} */
#endif
@ -148,6 +148,13 @@ typedef int32_t msg_t;
typedef uint32_t systime_t;
#endif
#if 0
/**
* @brief Type of system time counter.
*/
typedef uint32_t sysinterval_t;
#endif
#if 0
/**
* @brief Type of realtime counter.
@ -179,14 +186,15 @@ typedef uint32_t eventflags_t;
* API and are implementation-dependent.
*/
typedef struct {
volatile eventflags_t flags; /**< @brief Flags stored into the
object. */
volatile eventflags_t flags; /**< @brief Stored event flags. */
eventcallback_t cb; /**< @brief Event source callback. */
void *param; /**< @brief User defined field. */
} event_source_t;
#endif
/**
* @brief Type of a mutex.
* @note If the OS does not support mutexes or there is no OS then them
* @note If the OS does not support mutexes or there is no OS then the
* mechanism can be simulated.
*/
#if CH_CFG_USE_MUTEXES || defined(__DOXYGEN__)
@ -304,36 +312,36 @@ typedef struct {
* @details Converts from seconds to system ticks number.
* @note The result is rounded upward to the next tick boundary.
*
* @param[in] sec number of seconds
* @param[in] secs number of seconds
* @return The number of ticks.
*
* @api
*/
#define OSAL_S2ST(sec) S2ST(sec)
#define OSAL_S2I(secs) TIME_S2I(secs)
/**
* @brief Milliseconds to system ticks.
* @details Converts from milliseconds to system ticks number.
* @note The result is rounded upward to the next tick boundary.
*
* @param[in] msec number of milliseconds
* @param[in] msecs number of milliseconds
* @return The number of ticks.
*
* @api
*/
#define OSAL_MS2ST(msec) TIME_MS2I(msec)
#define OSAL_MS2I(msecs) TIME_MS2I(msecs)
/**
* @brief Microseconds to system ticks.
* @details Converts from microseconds to system ticks number.
* @note The result is rounded upward to the next tick boundary.
*
* @param[in] usec number of microseconds
* @param[in] usecs number of microseconds
* @return The number of ticks.
*
* @api
*/
#define OSAL_US2ST(usec) TIME_US2I(usec)
#define OSAL_US2I(usecs) TIME_US2I(usecs)
/** @} */
/**
@ -392,11 +400,11 @@ typedef struct {
* system tick clock.
* @note The maximum specifiable value is implementation dependent.
*
* @param[in] sec time in seconds, must be different from zero
* @param[in] secs time in seconds, must be different from zero
*
* @api
*/
#define osalThreadSleepSeconds(sec) osalThreadSleep(OSAL_S2ST(sec))
#define osalThreadSleepSeconds(secs) osalThreadSleep(OSAL_S2I(secs))
/**
* @brief Delays the invoking thread for the specified number of
@ -405,11 +413,11 @@ typedef struct {
* system tick clock.
* @note The maximum specifiable value is implementation dependent.
*
* @param[in] msec time in milliseconds, must be different from zero
* @param[in] msecs time in milliseconds, must be different from zero
*
* @api
*/
#define osalThreadSleepMilliseconds(msec) osalThreadSleep(OSAL_MS2ST(msec))
#define osalThreadSleepMilliseconds(msecs) osalThreadSleep(OSAL_MS2I(msecs))
/**
* @brief Delays the invoking thread for the specified number of
@ -418,11 +426,11 @@ typedef struct {
* system tick clock.
* @note The maximum specifiable value is implementation dependent.
*
* @param[in] usec time in microseconds, must be different from zero
* @param[in] usecs time in microseconds, must be different from zero
*
* @api
*/
#define osalThreadSleepMicroseconds(usec) osalThreadSleep(OSAL_US2ST(usec))
#define osalThreadSleepMicroseconds(usecs) osalThreadSleep(OSAL_US2I(usecs))
/** @} */
/*===========================================================================*/
@ -618,6 +626,35 @@ static inline systime_t osalOsGetSystemTimeX(void) {
return chVTGetSystemTimeX();
}
/**
* @brief Adds an interval to a system time returning a system time.
*
* @param[in] systime base system time
* @param[in] interval interval to be added
* @return The new system time.
*
* @xclass
*/
static inline systime_t osalTimeAddX(systime_t systime,
sysinterval_t interval) {
return chTimeAddX(systime, interval);
}
/**
* @brief Subtracts two system times returning an interval.
*
* @param[in] start first system time
* @param[in] end second system time
* @return The interval representing the time difference.
*
* @xclass
*/
static inline sysinterval_t osalTimeDiffX(systime_t start, systime_t end) {
return chTimeDiffX(start, end);
}
/**
* @brief Checks if the specified time is within the specified time window.
* @note When start==end then the function returns always true because the
@ -632,9 +669,9 @@ static inline systime_t osalOsGetSystemTimeX(void) {
*
* @xclass
*/
static inline bool osalOsIsTimeWithinX(systime_t time,
systime_t start,
systime_t end) {
static inline bool osalTimeIsInRangeX(systime_t time,
systime_t start,
systime_t end) {
return chTimeIsInRangeX(time, start, end);
}
@ -642,7 +679,7 @@ static inline bool osalOsIsTimeWithinX(systime_t time,
/**
* @brief Suspends the invoking thread for the specified time.
*
* @param[in] time the delay in system ticks, the special values are
* @param[in] delay the delay in system ticks, the special values are
* handled as follow:
* - @a TIME_INFINITE is allowed but interpreted as a
* normal time specification.
@ -651,15 +688,15 @@ static inline bool osalOsIsTimeWithinX(systime_t time,
*
* @sclass
*/
static inline void osalThreadSleepS(systime_t time) {
static inline void osalThreadSleepS(sysinterval_t delay) {
chThdSleepS(time);
chThdSleepS(delay);
}
/**
* @brief Suspends the invoking thread for the specified time.
*
* @param[in] time the delay in system ticks, the special values are
* @param[in] delay the delay in system ticks, the special values are
* handled as follow:
* - @a TIME_INFINITE is allowed but interpreted as a
* normal time specification.
@ -668,9 +705,9 @@ static inline void osalThreadSleepS(systime_t time) {
*
* @api
*/
static inline void osalThreadSleep(systime_t time) {
static inline void osalThreadSleep(sysinterval_t delay) {
chThdSleep(time);
chThdSleep(delay);
}
/**
@ -708,7 +745,7 @@ static inline msg_t osalThreadSuspendS(thread_reference_t *trp) {
* @sclass
*/
static inline msg_t osalThreadSuspendTimeoutS(thread_reference_t *trp,
systime_t timeout) {
sysinterval_t timeout) {
return chThdSuspendTimeoutS(trp, timeout);
}
@ -761,7 +798,7 @@ static inline void osalThreadQueueObjectInit(threads_queue_t *tqp) {
* dequeued or the specified timeouts expires.
*
* @param[in] tqp pointer to the threads queue object
* @param[in] time the timeout in system ticks, the special values are
* @param[in] timeout the timeout in system ticks, the special values are
* handled as follow:
* - @a TIME_INFINITE the thread enters an infinite sleep
* state.
@ -779,9 +816,9 @@ static inline void osalThreadQueueObjectInit(threads_queue_t *tqp) {
* @sclass
*/
static inline msg_t osalThreadEnqueueTimeoutS(threads_queue_t *tqp,
systime_t time) {
sysinterval_t timeout) {
return chThdEnqueueTimeoutS(tqp, time);
return chThdEnqueueTimeoutS(tqp, timeout);
}
/**
@ -823,9 +860,13 @@ static inline void osalEventObjectInit(event_source_t *esp) {
chEvtObjectInit(esp);
}
#else
static inline void osalEventObjectInit(event_source_t *esp) {
static inline void osalEventObjectInit(osal_event_source_t *esp) {
osalDbgCheck(esp != NULL);
esp->flags = 0;
esp->cb = NULL;
esp->param = NULL;
}
#endif
@ -847,7 +888,12 @@ static inline void osalEventBroadcastFlagsI(event_source_t *esp,
static inline void osalEventBroadcastFlagsI(event_source_t *esp,
eventflags_t flags) {
osalDbgCheck(esp != NULL);
esp->flags |= flags;
if (esp->cb != NULL) {
esp->cb(esp);
}
}
#endif
@ -868,12 +914,42 @@ static inline void osalEventBroadcastFlags(event_source_t *esp,
#else
static inline void osalEventBroadcastFlags(event_source_t *esp,
eventflags_t flags) {
osalDbgCheck(esp != NULL);
osalSysLock();
esp->flags |= flags;
if (esp->cb != NULL) {
esp->cb(esp);
osalSysUnlock();
}
#endif
#if !CH_CFG_USE_EVENTS || defined(__DOXYGEN__)
/**
* @brief Event callback setup.
* @note The callback is invoked from ISR context and can
* only invoke I-Class functions. The callback is meant
* to wakeup the task that will handle the event by
* calling @p osalEventGetAndClearFlagsI().
*
* @param[in] esp pointer to the event flags object
* @param[in] cb pointer to the callback function
* @param[in] param parameter to be passed to the callback function
*
* @api
*/
static inline void osalEventSetCallback(event_source_t *esp,
eventcallback_t cb,
void *param) {
osalDbgCheck(esp != NULL);
esp->cb = cb;
esp->param = param;
}
#endif
/**
* @brief Initializes s @p mutex_t object.
*

View File

@ -188,7 +188,7 @@ void ibqPostFullBufferI(input_buffers_queue_t *ibqp, size_t size) {
* @api
*/
msg_t ibqGetFullBufferTimeout(input_buffers_queue_t *ibqp,
systime_t timeout) {
sysinterval_t timeout) {
msg_t msg;
osalSysLock();
@ -220,7 +220,7 @@ msg_t ibqGetFullBufferTimeout(input_buffers_queue_t *ibqp,
* @sclass
*/
msg_t ibqGetFullBufferTimeoutS(input_buffers_queue_t *ibqp,
systime_t timeout) {
sysinterval_t timeout) {
osalDbgCheckClassS();
@ -306,7 +306,7 @@ void ibqReleaseEmptyBuffer(input_buffers_queue_t *ibqp) {
*
* @api
*/
msg_t ibqGetTimeout(input_buffers_queue_t *ibqp, systime_t timeout) {
msg_t ibqGetTimeout(input_buffers_queue_t *ibqp, sysinterval_t timeout) {
msg_t msg;
osalSysLock();
@ -356,9 +356,9 @@ msg_t ibqGetTimeout(input_buffers_queue_t *ibqp, systime_t timeout) {
* @api
*/
size_t ibqReadTimeout(input_buffers_queue_t *ibqp, uint8_t *bp,
size_t n, systime_t timeout) {
size_t n, sysinterval_t timeout) {
size_t r = 0;
systime_t deadline;
sysinterval_t deadline;
osalDbgCheck(n > 0U);
@ -380,7 +380,7 @@ size_t ibqReadTimeout(input_buffers_queue_t *ibqp, uint8_t *bp,
msg = ibqGetFullBufferTimeoutS(ibqp, timeout);
}
else {
systime_t next_timeout = deadline - osalOsGetSystemTimeX();
sysinterval_t next_timeout = deadline - osalOsGetSystemTimeX();
/* Handling the case where the system time went past the deadline,
in this case next becomes a very high number because the system
@ -562,7 +562,7 @@ void obqReleaseEmptyBufferI(output_buffers_queue_t *obqp) {
* @api
*/
msg_t obqGetEmptyBufferTimeout(output_buffers_queue_t *obqp,
systime_t timeout) {
sysinterval_t timeout) {
msg_t msg;
osalSysLock();
@ -594,7 +594,7 @@ msg_t obqGetEmptyBufferTimeout(output_buffers_queue_t *obqp,
* @sclass
*/
msg_t obqGetEmptyBufferTimeoutS(output_buffers_queue_t *obqp,
systime_t timeout) {
sysinterval_t timeout) {
osalDbgCheckClassS();
@ -688,7 +688,7 @@ void obqPostFullBufferS(output_buffers_queue_t *obqp, size_t size) {
* @api
*/
msg_t obqPutTimeout(output_buffers_queue_t *obqp, uint8_t b,
systime_t timeout) {
sysinterval_t timeout) {
msg_t msg;
osalSysLock();
@ -738,9 +738,9 @@ msg_t obqPutTimeout(output_buffers_queue_t *obqp, uint8_t b,
* @api
*/
size_t obqWriteTimeout(output_buffers_queue_t *obqp, const uint8_t *bp,
size_t n, systime_t timeout) {
size_t n, sysinterval_t timeout) {
size_t w = 0;
systime_t deadline;
sysinterval_t deadline;
osalDbgCheck(n > 0U);
@ -762,7 +762,7 @@ size_t obqWriteTimeout(output_buffers_queue_t *obqp, const uint8_t *bp,
msg = obqGetEmptyBufferTimeoutS(obqp, timeout);
}
else {
systime_t next_timeout = deadline - osalOsGetSystemTimeX();
sysinterval_t next_timeout = deadline - osalOsGetSystemTimeX();
/* Handling the case where the system time went past the deadline,
in this case next becomes a very high number because the system

View File

@ -233,7 +233,7 @@ bool canTryReceiveI(CANDriver *canp,
msg_t canTransmitTimeout(CANDriver *canp,
canmbx_t mailbox,
const CANTxFrame *ctfp,
systime_t timeout) {
sysinterval_t timeout) {
osalDbgCheck((canp != NULL) && (ctfp != NULL) &&
(mailbox <= (canmbx_t)CAN_TX_MAILBOXES));
@ -281,7 +281,7 @@ msg_t canTransmitTimeout(CANDriver *canp,
msg_t canReceiveTimeout(CANDriver *canp,
canmbx_t mailbox,
CANRxFrame *crfp,
systime_t timeout) {
sysinterval_t timeout) {
osalDbgCheck((canp != NULL) && (crfp != NULL) &&
(mailbox <= (canmbx_t)CAN_RX_MAILBOXES));

View File

@ -173,7 +173,7 @@ msg_t i2cMasterTransmitTimeout(I2CDriver *i2cp,
size_t txbytes,
uint8_t *rxbuf,
size_t rxbytes,
systime_t timeout) {
sysinterval_t timeout) {
msg_t rdymsg;
osalDbgCheck((i2cp != NULL) && (addr != 0U) &&
@ -222,7 +222,7 @@ msg_t i2cMasterReceiveTimeout(I2CDriver *i2cp,
i2caddr_t addr,
uint8_t *rxbuf,
size_t rxbytes,
systime_t timeout){
sysinterval_t timeout) {
msg_t rdymsg;

View File

@ -149,7 +149,7 @@ void macStop(MACDriver *macp) {
*/
msg_t macWaitTransmitDescriptor(MACDriver *macp,
MACTransmitDescriptor *tdp,
systime_t timeout) {
sysinterval_t timeout) {
msg_t msg;
systime_t now;
@ -157,7 +157,7 @@ msg_t macWaitTransmitDescriptor(MACDriver *macp,
osalDbgAssert(macp->state == MAC_ACTIVE, "not active");
while (((msg = mac_lld_get_transmit_descriptor(macp, tdp)) != MSG_OK) &&
(timeout > (systime_t)0)) {
(timeout > (sysinterval_t)0)) {
osalSysLock();
now = osalOsGetSystemTimeX();
msg = osalThreadEnqueueTimeoutS(&macp->tdqueue, timeout);
@ -209,7 +209,7 @@ void macReleaseTransmitDescriptor(MACTransmitDescriptor *tdp) {
*/
msg_t macWaitReceiveDescriptor(MACDriver *macp,
MACReceiveDescriptor *rdp,
systime_t timeout) {
sysinterval_t timeout) {
msg_t msg;
systime_t now;
@ -217,7 +217,7 @@ msg_t macWaitReceiveDescriptor(MACDriver *macp,
osalDbgAssert(macp->state == MAC_ACTIVE, "not active");
while (((msg = mac_lld_get_receive_descriptor(macp, rdp)) != MSG_OK) &&
(timeout > (systime_t)0)) {
(timeout > (sysinterval_t)0)) {
osalSysLock();
now = osalOsGetSystemTimeX();
msg = osalThreadEnqueueTimeoutS(&macp->rdqueue, timeout);

View File

@ -167,7 +167,9 @@ void palSetLineCallbackI(ioline_t line, palcallback_t cb, void *arg) {
*
* @sclass
*/
msg_t palWaitPadTimeoutS(ioportid_t port, iopadid_t pad, systime_t timeout) {
msg_t palWaitPadTimeoutS(ioportid_t port,
iopadid_t pad,
sysinterval_t timeout) {
palevent_t *pep = pal_lld_get_pad_event(port, pad);
return osalThreadEnqueueTimeoutS(&pep->threads, timeout);
@ -186,7 +188,8 @@ msg_t palWaitPadTimeoutS(ioportid_t port, iopadid_t pad, systime_t timeout) {
*
* @sclass
*/
msg_t palWaitLineTimeoutS(ioline_t line, systime_t timeout) {
msg_t palWaitLineTimeoutS(ioline_t line,
sysinterval_t timeout) {
palevent_t *pep = pal_lld_get_line_event(line);
return osalThreadEnqueueTimeoutS(&pep->threads, timeout);

View File

@ -138,7 +138,7 @@ msg_t iqPutI(input_queue_t *iqp, uint8_t b) {
*
* @api
*/
msg_t iqGetTimeout(input_queue_t *iqp, systime_t timeout) {
msg_t iqGetTimeout(input_queue_t *iqp, sysinterval_t timeout) {
uint8_t b;
osalSysLock();
@ -194,7 +194,7 @@ msg_t iqGetTimeout(input_queue_t *iqp, systime_t timeout) {
* @api
*/
size_t iqReadTimeout(input_queue_t *iqp, uint8_t *bp,
size_t n, systime_t timeout) {
size_t n, sysinterval_t timeout) {
systime_t deadline;
qnotify_t nfy = iqp->q_notify;
size_t r = 0;
@ -219,7 +219,7 @@ size_t iqReadTimeout(input_queue_t *iqp, uint8_t *bp,
msg = osalThreadEnqueueTimeoutS(&iqp->q_waiting, timeout);
}
else {
systime_t next_timeout = deadline - osalOsGetSystemTimeX();
sysinterval_t next_timeout = deadline - osalOsGetSystemTimeX();
/* Handling the case where the system time went past the deadline,
in this case next becomes a very high number because the system
@ -334,7 +334,7 @@ void oqResetI(output_queue_t *oqp) {
*
* @api
*/
msg_t oqPutTimeout(output_queue_t *oqp, uint8_t b, systime_t timeout) {
msg_t oqPutTimeout(output_queue_t *oqp, uint8_t b, sysinterval_t timeout) {
osalSysLock();
@ -419,7 +419,7 @@ msg_t oqGetI(output_queue_t *oqp) {
* @api
*/
size_t oqWriteTimeout(output_queue_t *oqp, const uint8_t *bp,
size_t n, systime_t timeout) {
size_t n, sysinterval_t timeout) {
systime_t deadline;
qnotify_t nfy = oqp->q_notify;
size_t w = 0;
@ -443,7 +443,7 @@ size_t oqWriteTimeout(output_queue_t *oqp, const uint8_t *bp,
msg = osalThreadEnqueueTimeoutS(&oqp->q_waiting, timeout);
}
else {
systime_t next_timeout = deadline - osalOsGetSystemTimeX();
sysinterval_t next_timeout = deadline - osalOsGetSystemTimeX();
/* Handling the case where the system time went past the deadline,
in this case next becomes a very high number because the system

View File

@ -69,22 +69,24 @@ static msg_t _get(void *ip) {
return iqGetTimeout(&((SerialDriver *)ip)->iqueue, TIME_INFINITE);
}
static msg_t _putt(void *ip, uint8_t b, systime_t timeout) {
static msg_t _putt(void *ip, uint8_t b, sysinterval_t timeout) {
return oqPutTimeout(&((SerialDriver *)ip)->oqueue, b, timeout);
}
static msg_t _gett(void *ip, systime_t timeout) {
static msg_t _gett(void *ip, sysinterval_t timeout) {
return iqGetTimeout(&((SerialDriver *)ip)->iqueue, timeout);
}
static size_t _writet(void *ip, const uint8_t *bp, size_t n, systime_t timeout) {
static size_t _writet(void *ip, const uint8_t *bp, size_t n,
sysinterval_t timeout) {
return oqWriteTimeout(&((SerialDriver *)ip)->oqueue, bp, n, timeout);
}
static size_t _readt(void *ip, uint8_t *bp, size_t n, systime_t timeout) {
static size_t _readt(void *ip, uint8_t *bp, size_t n,
sysinterval_t timeout) {
return iqReadTimeout(&((SerialDriver *)ip)->iqueue, bp, n, timeout);
}

View File

@ -104,22 +104,24 @@ static msg_t _get(void *ip) {
return ibqGetTimeout(&((SerialUSBDriver *)ip)->ibqueue, TIME_INFINITE);
}
static msg_t _putt(void *ip, uint8_t b, systime_t timeout) {
static msg_t _putt(void *ip, uint8_t b, sysinterval_t timeout) {
return obqPutTimeout(&((SerialUSBDriver *)ip)->obqueue, b, timeout);
}
static msg_t _gett(void *ip, systime_t timeout) {
static msg_t _gett(void *ip, sysinterval_t timeout) {
return ibqGetTimeout(&((SerialUSBDriver *)ip)->ibqueue, timeout);
}
static size_t _writet(void *ip, const uint8_t *bp, size_t n, systime_t timeout) {
static size_t _writet(void *ip, const uint8_t *bp, size_t n,
sysinterval_t timeout) {
return obqWriteTimeout(&((SerialUSBDriver *)ip)->obqueue, bp, n, timeout);
}
static size_t _readt(void *ip, uint8_t *bp, size_t n, systime_t timeout) {
static size_t _readt(void *ip, uint8_t *bp, size_t n,
sysinterval_t timeout) {
return ibqReadTimeout(&((SerialUSBDriver *)ip)->ibqueue, bp, n, timeout);
}

View File

@ -367,7 +367,7 @@ size_t uartStopReceiveI(UARTDriver *uartp) {
* @api
*/
msg_t uartSendTimeout(UARTDriver *uartp, size_t *np,
const void *txbuf, systime_t timeout) {
const void *txbuf, sysinterval_t timeout) {
msg_t msg;
osalDbgCheck((uartp != NULL) && (*np > 0U) && (txbuf != NULL));
@ -412,7 +412,7 @@ msg_t uartSendTimeout(UARTDriver *uartp, size_t *np,
* @api
*/
msg_t uartSendFullTimeout(UARTDriver *uartp, size_t *np,
const void *txbuf, systime_t timeout) {
const void *txbuf, sysinterval_t timeout) {
msg_t msg;
osalDbgCheck((uartp != NULL) && (*np > 0U) && (txbuf != NULL));
@ -459,7 +459,7 @@ msg_t uartSendFullTimeout(UARTDriver *uartp, size_t *np,
* @api
*/
msg_t uartReceiveTimeout(UARTDriver *uartp, size_t *np,
void *rxbuf, systime_t timeout) {
void *rxbuf, sysinterval_t timeout) {
msg_t msg;
osalDbgCheck((uartp != NULL) && (*np > 0U) && (rxbuf != NULL));