|
IntrOS
|
event queues (unsigned values) More...
Macros | |
| #define | OS_EVQ_BUFFER(buf, limit) |
| define event queue data buffer | |
| #define | OS_EVQ(evq, limit) |
| define and initialize an event queue object | |
| #define | static_EVQ(evq, limit) |
| static alias of OS_EVQ() | |
| #define | EVQ_INIT(limit) |
| create and initialize an event queue object | |
| #define | EVQ_CREATE(limit) |
| create and initialize an event queue object | |
| #define | EVQ_NEW EVQ_CREATE |
| alias of EVQ_CREATE() | |
Functions | |
| void | evq_init (evq_t *evq, unsigned *data, size_t bufsize) |
| initialize an event queue object | |
| void | evq_reset (evq_t *evq) |
| reset the event queue object and wake up all waiting tasks with 'E_STOPPED' event value | |
| void | evq_kill (evq_t *evq) |
| alias of evq_reset() | |
| int | evq_take (evq_t *evq, unsigned *event) |
| try to transfer event value from the event queue object, don't wait if the event queue object is empty | |
| int | evq_tryWait (evq_t *evq, unsigned *event) |
| alias of evq_take() | |
| int | evq_takeAsync (evq_t *evq, unsigned *event) |
| Async alias of evq_take(). | |
| int | evq_waitFor (evq_t *evq, unsigned *event, cnt_t delay) |
| try to transfer event value from the event queue object, wait for given duration of time while the event queue object is empty | |
| int | evq_waitUntil (evq_t *evq, unsigned *event, cnt_t time) |
| try to transfer event value from the event queue object, wait until given timepoint while the event queue object is empty | |
| int | evq_wait (evq_t *evq, unsigned *event) |
| try to transfer event value from the event queue object, wait indefinitely while the event queue object is empty | |
| int | evq_waitAsync (evq_t *evq, unsigned *event) |
| Async alias of evq_wait(). | |
| int | evq_give (evq_t *evq, unsigned event) |
| try to transfer event value to the event queue object, don't wait if the event queue object is full | |
| int | evq_giveAsync (evq_t *evq, unsigned event) |
| Async alias of evq_give(). | |
| int | evq_sendFor (evq_t *evq, unsigned event, cnt_t delay) |
| try to transfer event value to the event queue object, wait for given duration of time while the event queue object is full | |
| int | evq_sendUntil (evq_t *evq, unsigned event, cnt_t time) |
| try to transfer event value to the event queue object, wait until given timepoint while the event queue object is full | |
| int | evq_send (evq_t *evq, unsigned event) |
| try to transfer event value to the event queue object, wait indefinitely while the event queue object is full | |
| int | evq_sendAsync (evq_t *evq, unsigned event) |
| Async alias of evq_send(). | |
| void | evq_push (evq_t *evq, unsigned event) |
| transfer event value to the event queue object, remove the oldest event value if the event queue object is full | |
| unsigned | evq_count (evq_t *evq) |
| return the amount of data contained in the event queue | |
| unsigned | evq_space (evq_t *evq) |
| return the amount of free space in the event queue | |
| unsigned | evq_limit (evq_t *evq) |
| return the size of the event queue | |
event queues (unsigned values)
| #define OS_EVQ_BUFFER | ( | buf, | |
| limit ) |
define event queue data buffer
| buf | name of the buffer (passed to the init function) |
| limit | size of a queue (max number of stored events) |
| #define OS_EVQ | ( | evq, | |
| limit ) |
define and initialize an event queue object
| evq | name of a pointer to event queue object |
| limit | size of a queue (max number of stored events) |
| #define static_EVQ | ( | evq, | |
| limit ) |
static alias of OS_EVQ()
| #define EVQ_INIT | ( | limit | ) |
create and initialize an event queue object
| limit | size of a queue (max number of stored events) |
| #define EVQ_CREATE | ( | limit | ) |
create and initialize an event queue object
| limit | size of a queue (max number of stored events) |
| void evq_init | ( | evq_t * | evq, |
| unsigned * | data, | ||
| size_t | bufsize ) |
initialize an event queue object
| evq | pointer to event queue object |
| data | event queue data buffer |
| bufsize | size of the data buffer (in bytes) |
| void evq_reset | ( | evq_t * | evq | ) |
reset the event queue object and wake up all waiting tasks with 'E_STOPPED' event value
| evq | pointer to event queue object |
| int evq_take | ( | evq_t * | evq, |
| unsigned * | event ) |
try to transfer event value from the event queue object, don't wait if the event queue object is empty
| evq | pointer to event queue object |
| event | pointer to store event value |
| E_SUCCESS | event value was successfully transferred from the event queue object |
| E_TIMEOUT | event queue object is empty, try again |
| int evq_waitFor | ( | evq_t * | evq, |
| unsigned * | event, | ||
| cnt_t | delay ) |
try to transfer event value from the event queue object, wait for given duration of time while the event queue object is empty
| evq | pointer to event queue object |
| event | pointer to store event value |
| delay | duration of time (maximum number of ticks to wait while the event queue object is empty)
|
| int evq_waitUntil | ( | evq_t * | evq, |
| unsigned * | event, | ||
| cnt_t | time ) |
try to transfer event value from the event queue object, wait until given timepoint while the event queue object is empty
| evq | pointer to event queue object |
| event | pointer to store event value |
| time | timepoint value |
|
inline |
try to transfer event value from the event queue object, wait indefinitely while the event queue object is empty
| evq | pointer to event queue object |
| event | pointer to store event value |
| E_SUCCESS | event value was successfully transferred from the event queue object |
| E_STOPPED | event queue object was reseted (unavailable for async version) |
| int evq_give | ( | evq_t * | evq, |
| unsigned | event ) |
try to transfer event value to the event queue object, don't wait if the event queue object is full
| evq | pointer to event queue object |
| event | event value |
| E_SUCCESS | event value was successfully transferred to the event queue object |
| E_TIMEOUT | event queue object is full, try again |
| int evq_sendFor | ( | evq_t * | evq, |
| unsigned | event, | ||
| cnt_t | delay ) |
try to transfer event value to the event queue object, wait for given duration of time while the event queue object is full
| evq | pointer to event queue object |
| event | event value |
| delay | duration of time (maximum number of ticks to wait while the event queue object is full)
|
| int evq_sendUntil | ( | evq_t * | evq, |
| unsigned | event, | ||
| cnt_t | time ) |
try to transfer event value to the event queue object, wait until given timepoint while the event queue object is full
| evq | pointer to event queue object |
| event | event value |
| time | timepoint value |
|
inline |
try to transfer event value to the event queue object, wait indefinitely while the event queue object is full
| evq | pointer to event queue object |
| event | event value |
| E_SUCCESS | event value was successfully transferred to the event queue object |
| E_STOPPED | event queue object was reseted (unavailable for async version) |
| void evq_push | ( | evq_t * | evq, |
| unsigned | event ) |
transfer event value to the event queue object, remove the oldest event value if the event queue object is full
| evq | pointer to event queue object |
| event | event value |
| unsigned evq_count | ( | evq_t * | evq | ) |
return the amount of data contained in the event queue
| evq | pointer to event queue object |
| unsigned evq_space | ( | evq_t * | evq | ) |
return the amount of free space in the event queue
| evq | pointer to event queue object |
| unsigned evq_limit | ( | evq_t * | evq | ) |
return the size of the event queue
| evq | pointer to event queue object |