ChibiOS  21.6.0
chschd.h File Reference

Scheduler macros and structures. More...

Go to the source code of this file.

Macros

#define firstprio(rlp)   ((rlp)->next->prio)
 Returns the priority of the first thread on the given ready list. More...
 
#define __sch_get_currthread()   __instance_get_currthread(currcore)
 Current thread pointer get macro. More...
 
Wakeup status codes
#define MSG_OK   (msg_t)0
 Normal wakeup message.
More...
 
#define MSG_TIMEOUT   (msg_t)-1
 Wakeup caused by a timeout condition.
More...
 
#define MSG_RESET   (msg_t)-2
 Wakeup caused by a reset condition.
More...
 
Priority constants
#define NOPRIO   (tprio_t)0
 Ready list header priority.
More...
 
#define IDLEPRIO   (tprio_t)1
 Idle priority.
More...
 
#define LOWPRIO   (tprio_t)2
 Lowest priority.
More...
 
#define NORMALPRIO   (tprio_t)128
 Normal priority.
More...
 
#define HIGHPRIO   (tprio_t)255
 Highest priority.
More...
 
Thread states
#define CH_STATE_READY   (tstate_t)0
 Waiting on the ready list.
More...
 
#define CH_STATE_CURRENT   (tstate_t)1
 Currently running. More...
 
#define CH_STATE_WTSTART   (tstate_t)2
 Just created.
More...
 
#define CH_STATE_SUSPENDED   (tstate_t)3
 Suspended state.
More...
 
#define CH_STATE_QUEUED   (tstate_t)4
 On a queue.
More...
 
#define CH_STATE_WTSEM   (tstate_t)5
 On a semaphore.
More...
 
#define CH_STATE_WTMTX   (tstate_t)6
 On a mutex.
More...
 
#define CH_STATE_WTCOND   (tstate_t)7
 On a cond.variable. More...
 
#define CH_STATE_SLEEPING   (tstate_t)8
 Sleeping.
More...
 
#define CH_STATE_WTEXIT   (tstate_t)9
 Waiting a thread.
More...
 
#define CH_STATE_WTOREVT   (tstate_t)10
 One event.
More...
 
#define CH_STATE_WTANDEVT   (tstate_t)11
 Several events.
More...
 
#define CH_STATE_SNDMSGQ   (tstate_t)12
 Sending a message, in queue.
More...
 
#define CH_STATE_SNDMSG   (tstate_t)13
 Sent a message, waiting answer.
More...
 
#define CH_STATE_WTMSG   (tstate_t)14
 Waiting for a message.
More...
 
#define CH_STATE_FINAL   (tstate_t)15
 Thread terminated. More...
 
#define CH_STATE_NAMES
 Thread states as array of strings. More...
 
Thread flags and attributes
#define CH_FLAG_MODE_MASK   (tmode_t)3U
 Thread memory mode mask.
More...
 
#define CH_FLAG_MODE_STATIC   (tmode_t)0U
 Static thread.
More...
 
#define CH_FLAG_MODE_HEAP   (tmode_t)1U
 Thread allocated from a Memory Heap.
More...
 
#define CH_FLAG_MODE_MPOOL   (tmode_t)2U
 Thread allocated from a Memory Pool.
More...
 
#define CH_FLAG_TERMINATE   (tmode_t)4U
 Termination requested flag.
More...
 

Functions

thread_tchSchReadyI (thread_t *tp)
 Inserts a thread in the Ready List placing it behind its peers. More...
 
void chSchGoSleepS (tstate_t newstate)
 Puts the current thread to sleep into the specified state. More...
 
msg_t chSchGoSleepTimeoutS (tstate_t newstate, sysinterval_t timeout)
 Puts the current thread to sleep into the specified state with timeout specification. More...
 
void chSchWakeupS (thread_t *ntp, msg_t msg)
 Wakes up a thread. More...
 
void chSchRescheduleS (void)
 Performs a reschedule if a higher priority thread is runnable. More...
 
bool chSchIsPreemptionRequired (void)
 Evaluates if preemption is required. More...
 
void chSchDoPreemption (void)
 Switches to the first thread on the runnable queue. More...
 
void chSchPreemption (void)
 All-in-one preemption code. More...
 
void chSchDoYieldS (void)
 Yields the time slot. More...
 
thread_tchSchSelectFirstI (void)
 Makes runnable the fist thread in the ready list, does not reschedule internally. More...
 
void ch_sch_prio_insert (ch_queue_t *qp, ch_queue_t *tp)
 Inserts a thread into a priority ordered queue. More...
 

Detailed Description

Scheduler macros and structures.

Definition in file chschd.h.