30 #define QURT_HTHREAD_L1I_PREFETCH 0x1 31 #define QURT_HTHREAD_L1D_PREFETCH 0x2 32 #define QURT_HTHREAD_L2I_PREFETCH 0x4 33 #define QURT_HTHREAD_L2D_PREFETCH 0x8 34 #define QURT_HTHREAD_DCFETCH 0x10 38 #define QURT_THREAD_ATTR_NAME_MAXLEN 16 39 #define QURT_THREAD_ATTR_TCB_PARTITION_RAM 0 40 #define QURT_THREAD_ATTR_TCB_PARTITION_TCM 1 41 #define QURT_THREAD_ATTR_TCB_PARTITION_DEFAULT QURT_THREAD_ATTR_TCB_PARTITION_RAM 42 #define QURT_THREAD_ATTR_PRIORITY_DEFAULT 255 43 #define QURT_THREAD_ATTR_ASID_DEFAULT 0 44 #define QURT_THREAD_ATTR_AFFINITY_DEFAULT (-1) 45 #define QURT_THREAD_ATTR_BUS_PRIO_DEFAULT 255 46 #define QURT_THREAD_ATTR_TIMETEST_ID_DEFAULT (-2) 55 unsigned char tcb_partition;
57 unsigned char affinity;
59 unsigned short priority;
61 unsigned char bus_priority;
62 unsigned short timetest_id;
63 unsigned int stack_size;
105 attr->stack_size = 0;
106 attr->stack_addr =
nullptr;
127 static inline void qurt_thread_attr_set_stack_size(
qurt_thread_attr_t *attr,
unsigned int stack_size) {
128 attr->stack_size = stack_size;
152 static inline void qurt_thread_attr_set_stack_addr(
qurt_thread_attr_t *attr,
void *stack_addr) {
153 attr->stack_addr = stack_addr;
170 static inline void qurt_thread_attr_set_priority(
qurt_thread_attr_t *attr,
unsigned short priority) {
171 attr->priority = priority;
207 unsigned int wait_count;
209 unsigned long long int raw;
216 unsigned long long raw;
219 unsigned int n_waiting;
221 unsigned int reserved;
void qurt_mutex_lock(qurt_mutex_t *lock)
void qurt_cond_init(qurt_cond_t *cond)
void qurt_mutex_unlock(qurt_mutex_t *lock)
struct _qurt_thread_attr qurt_thread_attr_t
Thread attributes.
unsigned int qurt_thread_t
void qurt_cond_wait(qurt_cond_t *cond, qurt_mutex_t *mutex)
#define QURT_THREAD_ATTR_TCB_PARTITION_DEFAULT
Backward compatibility.
#define QURT_THREAD_ATTR_BUS_PRIO_DEFAULT
union qurt_mutex_aligned8 qurt_mutex_t
QuRT mutex type.
This file defines the class FunctionDAG, which is our representation of a Halide pipeline, and contains methods to using Halide's bounds tools to query properties of it.
int qurt_thread_join(unsigned int tid, int *status)
Waits for a specified thread to finish.
#define QURT_THREAD_ATTR_AFFINITY_DEFAULT
This file declares the routines used by Halide internally in its runtime.
unsigned int qurt_mem_pool_t
#define QURT_THREAD_ATTR_ASID_DEFAULT
Not visible externally, similar to 'static' linkage in C.
void qurt_cond_destroy(qurt_cond_t *cond)
#define QURT_THREAD_ATTR_NAME_MAXLEN
int qurt_thread_set_priority(qurt_thread_t threadid, unsigned short newprio)
int qurt_hvx_get_mode(void)
#define QURT_THREAD_ATTR_TIMETEST_ID_DEFAULT
void qurt_mutex_init(qurt_mutex_t *lock)
int qurt_hvx_unlock(void)
void qurt_mutex_destroy(qurt_mutex_t *lock)
int qurt_thread_create(qurt_thread_t *thread_id, qurt_thread_attr_t *attr, void(*entrypoint)(void *), void *arg)
void qurt_cond_signal(qurt_cond_t *cond)
int qurt_hvx_lock(qurt_hvx_mode_t lock_mode)
#define QURT_THREAD_ATTR_PRIORITY_DEFAULT
QuRT condition variable type.