aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/osal/chibios/osal.c
diff options
context:
space:
mode:
Diffstat (limited to 'os/hal/osal/chibios/osal.c')
-rw-r--r--os/hal/osal/chibios/osal.c149
1 files changed, 0 insertions, 149 deletions
diff --git a/os/hal/osal/chibios/osal.c b/os/hal/osal/chibios/osal.c
index da3746eaf..d46840e91 100644
--- a/os/hal/osal/chibios/osal.c
+++ b/os/hal/osal/chibios/osal.c
@@ -84,153 +84,4 @@ void osalSysHalt(const char *reason) {
chSysHalt();
}
-/**
- * @brief Sends the current thread sleeping and sets a reference variable.
- * @note This function must reschedule, it can only be called from thread
- * context.
- *
- * @param[in] trp a pointer to a thread reference object
- * @return The wake up message.
- *
- * @sclass
- */
-msg_t osalThreadSuspendS(thread_reference_t *trp) {
-
- chDbgAssert(*trp == NULL, "not NULL");
-
- *trp = (thread_reference_t)chThdGetSelfX();
- chSchGoSleepS(CH_STATE_SUSPENDED);
- return chThdGetSelfX()->p_msg;
-}
-
-/**
- * @brief Wakes up a thread waiting on a thread reference object.
- * @note This function must not reschedule because it can be called from
- * ISR context.
- *
- * @param[in] trp a pointer to a thread reference object
- * @param[in] msg the message code
- *
- * @iclass
- */
-void osalThreadResumeI(thread_reference_t *trp, msg_t msg) {
-
- if (*trp != NULL) {
-
- chDbgAssert((*trp)->p_state == CH_STATE_SUSPENDED,
- "not THD_STATE_SUSPENDED");
-
- (*trp)->p_u.rdymsg = msg;
- chSchReadyI((thread_t *)*trp);
- *trp = NULL;
- }
-}
-
-/**
- * @brief Wakes up a thread waiting on a thread reference object.
- * @note This function must reschedule, it can only be called from thread
- * context.
- *
- * @param[in] trp a pointer to a thread reference object
- * @param[in] msg the message code
- *
- * @iclass
- */
-void osalThreadResumeS(thread_reference_t *trp, msg_t msg) {
-
- if (*trp != NULL) {
- thread_t *tp = (thread_t *)*trp;
-
- chDbgAssert(tp->p_state == CH_STATE_SUSPENDED, "not THD_STATE_SUSPENDED");
-
- *trp = NULL;
- chSchWakeupS(tp, msg);
- }
-}
-
-/**
- * @brief Enqueues the caller thread.
- * @details The caller thread is enqueued and put to sleep until it is
- * 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
- * handled as follow:
- * - @a TIME_INFINITE the thread enters an infinite sleep
- * state.
- * - @a TIME_IMMEDIATE the thread is not enqueued and
- * the function returns @p MSG_TIMEOUT as if a timeout
- * occurred.
- * .
- * @return The message from @p osalQueueWakeupOneI() or
- * @p osalQueueWakeupAllI() functions.
- * @retval RDY_TIMEOUT if the thread has not been dequeued within the
- * specified timeout or if the function has been
- * invoked with @p TIME_IMMEDIATE as timeout
- * specification.
- *
- * @sclass
- */
-msg_t osalQueueGoSleepTimeoutS(threads_queue_t *tqp, systime_t time) {
-
- void wakeup(void *p) {
- thread_t *tp = (thread_t *)p;
-
- chSysUnlockFromISR();
- tp->p_u.rdymsg = RDY_TIMEOUT;
- chSchReadyI(queue_dequeue(tp));
- chSysUnlockFromISR();
- }
-
- if (TIME_IMMEDIATE == time)
- return MSG_TIMEOUT;
-
- queue_insert(currp, tqp);
- if (TIME_INFINITE == time)
- chSchGoSleepS(CH_STATE_SUSPENDED);
- else {
- virtual_timer_t vt;
-
- chVTDoSetI(&vt, time, wakeup, currp);
- chSchGoSleepS(CH_STATE_SUSPENDED);
- if (chVTIsArmedI(&vt))
- chVTDoResetI(&vt);
- }
- return currp->p_u.rdymsg;
-}
-
-/**
- * @brief Dequeues and wakes up one thread from the queue, if any.
- *
- * @param[in] tqp pointer to the threads queue object
- * @param[in] msg the message code
- *
- * @iclass
- */
-void osalQueueWakeupOneI(threads_queue_t *tqp, msg_t msg) {
-
- if (queue_notempty(tqp)) {
- thread_t *tp = queue_fifo_remove(tqp);
- tp->p_u.rdymsg = msg;
- chSchReadyI(tp);
- }
-}
-
-/**
- * @brief Dequeues and wakes up all threads from the queue.
- *
- * @param[in] tqp pointer to the threads queue object
- * @param[in] msg the message code
- *
- * @iclass
- */
-void osalQueueWakeupAllI(threads_queue_t *tqp, msg_t msg) {
-
- while (queue_notempty(tqp)) {
- thread_t *tp = queue_fifo_remove(tqp);
- tp->p_u.rdymsg = msg;
- chSchReadyI(tp);
- }
-}
-
/** @} */