|
ChibiOS
19.1.4
|
Threads module macros and structures. More...
Go to the source code of this file.
Data Structures | |
| struct | thread_descriptor_t |
| Type of a thread descriptor. More... | |
Macros | |
Threads queues | |
| #define | _THREADS_QUEUE_DATA(name) {(thread_t *)&name, (thread_t *)&name} |
| Data part of a static threads queue object initializer. More... | |
| #define | _THREADS_QUEUE_DECL(name) threads_queue_t name = _THREADS_QUEUE_DATA(name) |
| Static threads queue object initializer. More... | |
Working Areas | |
| #define | THD_WORKING_AREA_SIZE(n) MEM_ALIGN_NEXT(sizeof(thread_t) + PORT_WA_SIZE(n), PORT_STACK_ALIGN) |
| Calculates the total Working Area size. More... | |
| #define | THD_WORKING_AREA(s, n) PORT_WORKING_AREA(s, n) |
| Static working area allocation. More... | |
| #define | THD_WORKING_AREA_BASE(s) ((stkalign_t *)(s)) |
| Base of a working area casted to the correct type. More... | |
| #define | THD_WORKING_AREA_END(s) |
| End of a working area casted to the correct type. More... | |
Threads abstraction macros | |
| #define | THD_FUNCTION(tname, arg) PORT_THD_FUNCTION(tname, arg) |
| Thread declaration macro. More... | |
Macro Functions | |
| #define | chThdSleepSeconds(sec) chThdSleep(TIME_S2I(sec)) |
| Delays the invoking thread for the specified number of seconds. More... | |
| #define | chThdSleepMilliseconds(msec) chThdSleep(TIME_MS2I(msec)) |
| Delays the invoking thread for the specified number of milliseconds. More... | |
| #define | chThdSleepMicroseconds(usec) chThdSleep(TIME_US2I(usec)) |
| Delays the invoking thread for the specified number of microseconds. More... | |
Typedefs | |
| typedef void(* | tfunc_t) (void *p) |
| Thread function. More... | |
Functions | |
| thread_t * | _thread_init (thread_t *tp, const char *name, tprio_t prio) |
| Initializes a thread structure. More... | |
| void | _thread_memfill (uint8_t *startp, uint8_t *endp, uint8_t v) |
| Memory fill utility. More... | |
| thread_t * | chThdCreateSuspendedI (const thread_descriptor_t *tdp) |
| Creates a new thread into a static memory area. More... | |
| thread_t * | chThdCreateSuspended (const thread_descriptor_t *tdp) |
| Creates a new thread into a static memory area. More... | |
| thread_t * | chThdCreateI (const thread_descriptor_t *tdp) |
| Creates a new thread into a static memory area. More... | |
| thread_t * | chThdCreate (const thread_descriptor_t *tdp) |
| Creates a new thread into a static memory area. More... | |
| thread_t * | chThdCreateStatic (void *wsp, size_t size, tprio_t prio, tfunc_t pf, void *arg) |
| Creates a new thread into a static memory area. More... | |
| thread_t * | chThdStart (thread_t *tp) |
Resumes a thread created with chThdCreateI(). More... | |
| thread_t * | chThdAddRef (thread_t *tp) |
| Adds a reference to a thread object. More... | |
| void | chThdRelease (thread_t *tp) |
| Releases a reference to a thread object. More... | |
| void | chThdExit (msg_t msg) |
| Terminates the current thread. More... | |
| void | chThdExitS (msg_t msg) |
| Terminates the current thread. More... | |
| msg_t | chThdWait (thread_t *tp) |
| Blocks the execution of the invoking thread until the specified thread terminates then the exit code is returned. More... | |
| tprio_t | chThdSetPriority (tprio_t newprio) |
| Changes the running thread priority level then reschedules if necessary. More... | |
| void | chThdTerminate (thread_t *tp) |
| Requests a thread termination. More... | |
| msg_t | chThdSuspendS (thread_reference_t *trp) |
| Sends the current thread sleeping and sets a reference variable. More... | |
| msg_t | chThdSuspendTimeoutS (thread_reference_t *trp, sysinterval_t timeout) |
| Sends the current thread sleeping and sets a reference variable. More... | |
| void | chThdResumeI (thread_reference_t *trp, msg_t msg) |
| Wakes up a thread waiting on a thread reference object. More... | |
| void | chThdResumeS (thread_reference_t *trp, msg_t msg) |
| Wakes up a thread waiting on a thread reference object. More... | |
| void | chThdResume (thread_reference_t *trp, msg_t msg) |
| Wakes up a thread waiting on a thread reference object. More... | |
| msg_t | chThdEnqueueTimeoutS (threads_queue_t *tqp, sysinterval_t timeout) |
| Enqueues the caller thread on a threads queue object. More... | |
| void | chThdDequeueNextI (threads_queue_t *tqp, msg_t msg) |
| Dequeues and wakes up one thread from the threads queue object, if any. More... | |
| void | chThdDequeueAllI (threads_queue_t *tqp, msg_t msg) |
| Dequeues and wakes up all threads from the threads queue object. More... | |
| void | chThdSleep (sysinterval_t time) |
| Suspends the invoking thread for the specified time. More... | |
| void | chThdSleepUntil (systime_t time) |
| Suspends the invoking thread until the system time arrives to the specified value. More... | |
| systime_t | chThdSleepUntilWindowed (systime_t prev, systime_t next) |
| Suspends the invoking thread until the system time arrives to the specified value. More... | |
| void | chThdYield (void) |
| Yields the time slot. More... | |
| static thread_t * | chThdGetSelfX (void) |
Returns a pointer to the current thread_t. More... | |
| static tprio_t | chThdGetPriorityX (void) |
| Returns the current thread priority. More... | |
| static systime_t | chThdGetTicksX (thread_t *tp) |
| Returns the number of ticks consumed by the specified thread. More... | |
| static stkalign_t * | chThdGetWorkingAreaX (thread_t *tp) |
| Returns the working area base of the specified thread. More... | |
| static bool | chThdTerminatedX (thread_t *tp) |
Verifies if the specified thread is in the CH_STATE_FINAL state. More... | |
| static bool | chThdShouldTerminateX (void) |
| Verifies if the current thread has a termination request pending. More... | |
| static thread_t * | chThdStartI (thread_t *tp) |
Resumes a thread created with chThdCreateI(). More... | |
| static void | chThdSleepS (sysinterval_t ticks) |
| Suspends the invoking thread for the specified number of ticks. More... | |
| static void | chThdQueueObjectInit (threads_queue_t *tqp) |
| Initializes a threads queue object. More... | |
| static bool | chThdQueueIsEmptyI (threads_queue_t *tqp) |
Evaluates to true if the specified queue is empty. More... | |
| static void | chThdDoDequeueNextI (threads_queue_t *tqp, msg_t msg) |
| Dequeues and wakes up one thread from the threads queue object. More... | |
Threads module macros and structures.
Definition in file chthreads.h.