CoreFlow 1.0.0
A modern orchestration and execution runtime
|
The Internal Operating System Abstraction Layer API. More...
Classes | |
struct | vx_value_set_t |
The data object for queues. More... | |
struct | vx_queue_t |
The queue object. More... | |
struct | vx_threadpool_worker_t |
The structure given to each threadpool worker during execution. More... | |
struct | vx_threadpool_t |
The threadpool tracking structure. More... | |
struct | vx_work_t |
The work item to distribute across the threadpools. More... | |
class | coreflow::Osal |
OS Abstraction Layer Utility Class. More... | |
Typedefs | |
typedef vx_size | vx_value_t |
A thread return value. | |
typedef vx_value_t(* | vx_thread_f) (void *arg) |
A thread function pointer. | |
typedef vx_bool(* | vx_threadpool_f) (struct vx_threadpool_worker_t *worker) |
The function pointer to the worker function. | |
Functions | |
static vx_bool | coreflow::Osal::createSem (vx_sem_t *sem, vx_uint32 count) |
Creates a semaphore object and sets to a given count. | |
static void | coreflow::Osal::destroySem (vx_sem_t *sem) |
Releases a semaphore object. | |
static vx_bool | coreflow::Osal::semPost (vx_sem_t *sem) |
Posts a semaphore object. | |
static vx_bool | coreflow::Osal::semWait (vx_sem_t *sem) |
Waits on a semaphore object. | |
static vx_bool | coreflow::Osal::semTryWait (vx_sem_t *sem) |
Tries to wait on a semaphore object. | |
static vx_bool | coreflow::Osal::joinThread (vx_thread_t thread, vx_value_t *value) |
Joins a thread. | |
static vx_thread_t | coreflow::Osal::createThread (vx_thread_f func, void *arg) |
Creates a thread. | |
static void | coreflow::Osal::sleepThread (vx_uint32 milliseconds) |
Sleeps the current thread for a given number of milliseconds. | |
static vx_bool | coreflow::Osal::initEvent (vx_internal_event_t *e, vx_bool autoreset) |
Initializes an event. | |
static vx_bool | coreflow::Osal::waitEvent (vx_internal_event_t *e, vx_uint32 timeout) |
Waits on an event. | |
static vx_bool | coreflow::Osal::setEvent (vx_internal_event_t *e) |
Sets an event. | |
static vx_bool | coreflow::Osal::resetEvent (vx_internal_event_t *e) |
Resets an event. | |
static vx_bool | coreflow::Osal::waitEventInternal (vx_internal_event_t *e, vx_uint32 ms) |
Wait on an internal event. | |
static vx_bool | coreflow::Osal::deinitEvent (vx_internal_event_t *e) |
Deinitializes an event. | |
static vx_threadpool_t * | coreflow::Osal::createThreadpool (vx_uint32 numThreads, vx_uint32 numWorkItems, vx_size sizeWorkItem, vx_threadpool_f worker, void *arg) |
Create and allocate thread pool. | |
static vx_bool | coreflow::Osal::issueThreadpool (vx_threadpool_t *pool, vx_value_set_t workitems[], uint32_t numWorkItems) |
Start and issue tasks to thread pool. | |
static vx_bool | coreflow::Osal::completeThreadpool (vx_threadpool_t *pool, vx_bool blocking) |
Complete and join thread pool. | |
static vx_value_t | coreflow::Osal::workerThreadpool (void *arg) |
Launch worker thread pool. | |
static void | coreflow::Osal::destroyThreadpool (vx_threadpool_t **ppool) |
Destroy thread pool. | |
static void | coreflow::Osal::startCapture (vx_perf_t *perf) |
Starts the performance capture. | |
static void | coreflow::Osal::stopCapture (vx_perf_t *perf) |
Stops the performance capture. | |
static vx_float32 | coreflow::Osal::timeToMS (vx_uint64 c) |
Converts a vx_uint64 to a float in milliseconds. | |
static void | coreflow::Osal::initPerf (vx_perf_t *perf) |
Initializes the performance information. | |
static void | coreflow::Osal::printPerf (vx_perf_t *perf) |
Prints the performance information. | |
static void | coreflow::Osal::initQueue (vx_queue_t *q) |
Initializes the queue. | |
static vx_queue_t * | coreflow::Osal::createQueue () |
Creates a queue object. | |
vx_queue_t * | coreflow::Osal::createQueue (vx_uint32 numItems, vx_size itemSize) |
Creates a queue object of specific size. | |
static vx_bool | coreflow::Osal::readQueue (vx_queue_t *q, vx_value_set_t **data) |
Reads from a queue object. | |
static vx_bool | coreflow::Osal::writeQueue (vx_queue_t *q, vx_value_set_t *data) |
Writes to a queue object. | |
static void | coreflow::Osal::popQueue (vx_queue_t *q) |
Pops a queue object. | |
static void | coreflow::Osal::destroyQueue (vx_queue_t **pq) |
Destroys a queue object. | |
static void | coreflow::Osal::deinitQueue (vx_queue_t *q) |
Deinitializes a queue object. | |
static void | coreflow::Osal::printQueue (vx_queue_t *q) |
Print the queue object. | |
static vx_module_handle_t | coreflow::Osal::loadModule (vx_char *name) |
Loads a module. | |
static void | coreflow::Osal::unloadModule (vx_module_handle_t mod) |
Unloads a module. | |
static vx_symbol_t | coreflow::Osal::getSymbol (vx_module_handle_t mod, const vx_char *name) |
Gets a symbol from a module. | |
The Internal Operating System Abstraction Layer API.
typedef vx_value_t(* vx_thread_f) (void *arg) |
#include <vx_internal.h>
A thread function pointer.
typedef vx_bool(* vx_threadpool_f) (struct vx_threadpool_worker_t *worker) |
#include <vx_internal.h>
The function pointer to the worker function.
[in] | worker | The per-thread worker data structure. |
false_e | Indicates that the worker failed to process data or had some other error. |
typedef vx_size vx_value_t |
#include <vx_internal.h>
A thread return value.
|
static |
#include <vx_osal.h>
Complete and join thread pool.
[in] | pool | The pointer to the thread pool. |
[in] | blocking | The flag to block until all threads are done. |
|
static |
vx_queue_t * coreflow::Osal::createQueue | ( | vx_uint32 | numItems, |
vx_size | itemSize ) |
#include <vx_osal.h>
Creates a queue object of specific size.
[in] | numItems | The number of items in the queue. |
[in] | itemSize | The size of each item in the queue. |
#include <vx_osal.h>
Creates a semaphore object and sets to a given count.
[in] | sem | The pointer to the semaphore object. |
[in] | count | The count to set the semaphore to. |
|
static |
#include <vx_osal.h>
Creates a thread.
[in] | func | The function to run in the thread. |
[in] | arg | The argument to pass to the function. |
|
static |
#include <vx_osal.h>
Create and allocate thread pool.
[in] | numThreads | The number of threads in the pool. |
[in] | numWorkItems | The number of work items in the pool. |
[in] | sizeWorkItem | The size of each work item. |
[in] | worker | The worker function. |
[in] | arg | The argument to pass to the worker function. |
|
static |
#include <vx_osal.h>
Deinitializes an event.
[in] | e | The pointer to the event object. |
|
static |
|
static |
|
static |
#include <vx_osal.h>
Releases a semaphore object.
[in] | sem | The pointer to the semaphore object. |
|
static |
|
static |
#include <vx_osal.h>
Gets a symbol from a module.
[in] | mod | The handle to the module. |
[in] | name | The name of the symbol. |
#include <vx_osal.h>
Initializes an event.
[in] | e | The pointer to the event object. |
[in] | autoreset | The flag to autoreset the event. |
|
static |
#include <vx_osal.h>
Initializes the performance information.
[in] | perf | The pointer to the performance information. |
|
static |
|
static |
#include <vx_osal.h>
Start and issue tasks to thread pool.
[in] | pool | The pointer to the thread pool. |
[in] | workitems | The work items to issue. |
[in] | numWorkItems | The number of work items to issue. |
|
static |
#include <vx_osal.h>
Joins a thread.
[in] | thread | The thread to join. |
[out] | value | The return value of the thread. |
|
static |
#include <vx_osal.h>
Loads a module.
[in] | name | The name of the module. |
|
static |
|
static |
#include <vx_osal.h>
Prints the performance information.
[in] | perf | The pointer to the performance information. |
|
static |
|
static |
#include <vx_osal.h>
Reads from a queue object.
[in] | q | The pointer to the queue object. |
[out] | data | The pointer to the data read. |
|
static |
#include <vx_osal.h>
Resets an event.
[in] | e | The pointer to the event object. |
|
static |
#include <vx_osal.h>
Posts a semaphore object.
[in] | sem | The pointer to the semaphore object. |
|
static |
#include <vx_osal.h>
Tries to wait on a semaphore object.
[in] | sem | The pointer to the semaphore object. |
|
static |
#include <vx_osal.h>
Waits on a semaphore object.
[in] | sem | The pointer to the semaphore object. |
|
static |
#include <vx_osal.h>
Sets an event.
[in] | e | The pointer to the event object. |
|
static |
#include <vx_osal.h>
Sleeps the current thread for a given number of milliseconds.
[in] | milliseconds | The number of milliseconds to sleep. |
|
static |
#include <vx_osal.h>
Starts the performance capture.
[in] | perf | The pointer to the performance information. |
|
static |
#include <vx_osal.h>
Stops the performance capture.
[in] | perf | The pointer to the performance information. |
|
static |
|
static |
#include <vx_osal.h>
Waits on an event.
[in] | e | The pointer to the event object. |
[in] | timeout | The timeout in milliseconds. |
|
static |
#include <vx_osal.h>
Launch worker thread pool.
arg | The argument to pass to the worker function. |
|
static |
#include <vx_osal.h>
Writes to a queue object.
[in] | q | The pointer to the queue object. |
[in] | data | The pointer to the data to write. |