NetBurner Real-Time Operating System API. More...
#include <predef.h>
#include <constants.h>
#include <basictypes.h>
#include <nbrtoscpu.h>
Go to the source code of this file.
Classes | |
class | TickTimeout |
TickTimeouts are used to facilitate sequential function calls with timeout parameters that need to index from an initial start time and be proof against TimeTick rollover. More... | |
class | OS_SEM |
Semaphores are used to control access to shared resource critical section, or to communicate between tasks. More... | |
class | OS_MBOX |
Mailboxes are used to communicate between tasks. More... | |
class | OS_Q |
A queue functions as a fixed size FIFO for communication between tasks. More... | |
class | OS_FIFO |
A FIFO is used to pass structures from one task to another. Note: Structures to be passed must have an unused (void *) pointer as its first element. This precludes passing C++ objects with virtual member functions. More... | |
class | OS_CRIT |
An OS_CRIT object is used to establish critical sections of code that can only be run by one task at a time. Tasks that try to claim a critical section which is currently claimed by another task will stop and wait for that task to leave the critical section before continuing execution. More... | |
class | OS_FLAGS |
An OS_FLAGS object is used to set, clear, and pend on a set of flags that is held and maintained by the object. More... | |
class | OSLockObj |
A simple wrapper class that helps use OS locks effectively. More... | |
class | OSCriticalSectionObj |
A simple wrapper class that helps utilize OS_CRIT objects more effectively. More... | |
class | OSLockAndCritObj |
A simple wrapper class that helps utilize OS_CRIT objects to lock tasks and enter critical sections more effectively. More... | |
class | OSSpinCrit |
A simple wrapper class that uses an OS_CRIT object to try and claim a critical section, and will continue the attempt until it is able to do so. More... | |
Macros | |
#define | OS_STAT_RDY 0x00 |
Ready to run. | |
#define | OS_STAT_MBOX 0x01 |
Pending on mailbox. | |
#define | OS_STAT_SEM 0x02 |
Pending on semaphore. | |
#define | OS_STAT_Q 0x04 |
Pending on queue. | |
#define | OS_STAT_FIFO 0x08 |
Pending on FIFO. | |
#define | OS_STAT_CRIT 0x10 |
Pending on Critical Section. | |
#define | OS_STAT_DELAY 0x20 |
Reserved. | |
#define | OS_STAT_RES4 0x40 |
Reserved. | |
#define | OS_STAT_RES5 0x80 |
Reserved. | |
#define | OS_NO_ERR 0 |
No Error. | |
#define | OS_TIMEOUT 10 |
Timeout. | |
#define | OS_MBOX_FULL 20 |
Mailbox Full. | |
#define | WAIT_FOREVER 0 |
#define | OSSimpleTaskCreatewName(x, p, n) |
Functions | |
void | OSFlagSet (OS_FLAGS *flags, uint32_t bits_to_set) |
This function sets the corresponding bits asserted in bits_to_set of an OS_FLAGS object pointed to by *flags . More... | |
void | OSFlagClear (OS_FLAGS *flags, uint32_t bits_to_clr) |
This function clears the bits asserted in bits_to_clr of an OS_FLAGS object pointed to by *flags.. More... | |
uint8_t | OSFlagPendAny (OS_FLAGS *flags, uint32_t bit_mask, uint16_t timeout) |
This function waits a number of time ticks specified by timeout until any of the flags indicated by bit_mask are set. More... | |
uint8_t | OSFlagPendAnyNoWait (OS_FLAGS *flags, uint32_t bit_mask) |
This function immediately checks to see if any of the flag bits indicated by bit_mask are set; it does not wait. More... | |
uint8_t | OSFlagPendAll (OS_FLAGS *flags, uint32_t bit_mask, uint16_t timeout) |
This function waits a number of time ticks specified by timeout until all the flags indicated by bit_mask are set. More... | |
uint8_t | OSFlagPendAllNoWait (OS_FLAGS *flags, uint32_t bit_mask) |
This function immediately checks to see if all the flag bits indicated by bit_mask are set; it does not wait. More... | |
uint32_t | OSFlagState (OS_FLAGS *flags) |
This function returns the current values of the flags stored in the OS_FLAGS object structure. More... | |
uint8_t | OSTaskCreatewName (void(*task)(void *dptr), void *data, void *pstktop, void *pstkbot, uint8_t prio, const char *name) |
void | OSTimeDly (uint32_t to_count) |
Delay the task until the specified value of the system timer ticks. The number of system ticks per second is defined by the constant: TICKS_PER_SECOND in <nburn_install>/nbrtos/include/constants.h . The default value is 20 ticks per second. More... | |
void | OSTaskDelete (void) |
This function deletes the current calling task, but we do not recommend the use of this function because it can cause memory leaks. More... | |
uint8_t | OSChangePrio (uint32_t newp) |
This function changes the priority of the calling task. More... | |
void | OSLock (void) |
Calling the OSLock function will prevent the OS from changing tasks. More... | |
void | OSUnlock (void) |
This function unlocks the OS. More... | |
uint8_t | OSSemInit (OS_SEM *psem, long value) |
Initializes a semaphore. More... | |
uint8_t | OSSemPost (OS_SEM *psem) |
Increases the value of the semaphore by one. Note: If any higher priority tasks were waiting on the semaphore - it releases them. More... | |
uint8_t | OSSemPend (OS_SEM *psem, uint16_t timeout) |
Wait timeout ticks for the value of the semaphore to be non zero. Note: A timeout value of 0 (zero) waits forever. More... | |
uint8_t | OSSemPendNoWait (OS_SEM *psem) |
OSSemPendNoWait() is identical to OSSemPend(), but it does not wait. More... | |
uint8_t | OSMboxInit (OS_MBOX *pmbox, void *msg) |
This function is used to initialize an OS_MBOX structure. More... | |
uint8_t | OSMboxPost (OS_MBOX *pmbox, void *msg) |
This function posts a message to a Mail box. More... | |
void * | OSMboxPend (OS_MBOX *pmbox, uint16_t timeout, uint8_t *err) |
Wait timeout ticks for some other task to post to the Mailbox. More... | |
void * | OSMboxPendNoWait (OS_MBOX *pmbox, uint8_t *err) |
OSMboxPendNoWait() is identical to OSMboxPend(), but it does not wait. More... | |
uint8_t | OSQInit (OS_Q *pq, void **start, uint8_t size) |
A queue functions as a fixed size FIFO for communication between tasks. This function initializes an OS_Q structure. More... | |
uint8_t | OSQPost (OS_Q *pq, void *msg) |
This function posts a message to a Queue. More... | |
uint8_t | OSQPostFirst (OS_Q *pq, void *msg) |
This function posts a message like OSQPost , but posts the message at the head of the queue. More... | |
uint8_t | OSQPostUnique (OS_Q *pq, void *msg) |
This function posts a message like OSQPost , but only if the message isn't already in the queue The function performs a brute force check to see if the message is already in the queue. More... | |
uint8_t | OSQPostUniqueFirst (OS_Q *pq, void *msg) |
This function posts a message like OSQPostFirst , but only if the message isn't already in the queue The function performs a brute force check to see if the message is already in the queue. More... | |
void * | OSQPend (OS_Q *pq, uint16_t timeout, uint8_t *err) |
Wait timeout ticks for another task to post to the queue. More... | |
void * | OSQPendNoWait (OS_Q *pq, uint8_t *err) |
OSQPendNoWait() is identical to the OSQPend() function but it does not wait. More... | |
uint8_t | OSFifoInit (OS_FIFO *pFifo) |
Initialize a FIFO, which is used to pass structures from one task to another. More... | |
uint8_t | OSFifoPost (OS_FIFO *pFifo, OS_FIFO_EL *pToPost) |
This function posts to a FIFO. More... | |
uint8_t | OSFifoPostFirst (OS_FIFO *pFifo, OS_FIFO_EL *pToPost) |
This function is identical to OSFifoPost(), but the element posted is put at the beginning of the FIFO list. More... | |
OS_FIFO_EL * | OSFifoPend (OS_FIFO *pFifo, uint16_t timeout) |
This function pends on a FIFO. More... | |
OS_FIFO_EL * | OSFifoPendNoWait (OS_FIFO *pFifo) |
This function is identical to the OSFifoPen() function, but it does not wait. More... | |
uint8_t | OSCritInit (OS_CRIT *pCrit) |
This function initializes the critical section. More... | |
uint8_t | OSCritEnter (OS_CRIT *pCrit, uint16_t timeout) |
This function tries to enter or claim the critical section. More... | |
uint8_t | OSCritEnterNoWait (OS_CRIT *pCrit) |
This function tries to enter or claim the critical section. More... | |
uint8_t | OSCritLeave (OS_CRIT *pCrit) |
This function releases the critical section. More... | |
void | OSChangeTaskDly (uint16_t task_prio, uint32_t to_count) |
This function allows the User to modify the timeout delay for a task that is waiting. More... | |
void | OSDumpTCBStacks (void) |
This function dumps information about the UCOS stacks and tasks to stdout. This function is useful for debugging. Note: This function is only valid when NBRTOS_STACKCHECK is defined. More... | |
void | OSDumpTasks (void) |
This function dumps the state and call stack for every task to stdout. This function is useful for debugging. Note: This function is only valid when NBRTOS_STACKCHECK is defined. More... | |
void | ShowTaskList (void) |
This functions dumps the current RTOS task states to stdio. More... | |
NetBurner Real-Time Operating System API.