28#define QURT_HTHREAD_L1I_PREFETCH 0x1
29#define QURT_HTHREAD_L1D_PREFETCH 0x2
30#define QURT_HTHREAD_L2I_PREFETCH 0x4
31#define QURT_HTHREAD_L2D_PREFETCH 0x8
32#define QURT_HTHREAD_DCFETCH 0x10
36#define QURT_THREAD_ATTR_NAME_MAXLEN 16
37#define QURT_THREAD_ATTR_TCB_PARTITION_RAM 0
38#define QURT_THREAD_ATTR_TCB_PARTITION_TCM 1
39#define QURT_THREAD_ATTR_TCB_PARTITION_DEFAULT QURT_THREAD_ATTR_TCB_PARTITION_RAM
40#define QURT_THREAD_ATTR_PRIORITY_DEFAULT 255
41#define QURT_THREAD_ATTR_ASID_DEFAULT 0
42#define QURT_THREAD_ATTR_AFFINITY_DEFAULT (-1)
43#define QURT_THREAD_ATTR_BUS_PRIO_DEFAULT 255
44#define QURT_THREAD_ATTR_TIMETEST_ID_DEFAULT (-2)
51 unsigned char tcb_partition;
53 unsigned char affinity;
55 unsigned short priority;
57 unsigned char bus_priority;
58 unsigned short timetest_id;
59 unsigned int stack_size;
101 attr->stack_size = 0;
102 attr->stack_addr =
nullptr;
123static inline void qurt_thread_attr_set_stack_size(
qurt_thread_attr_t *attr,
unsigned int stack_size) {
124 attr->stack_size = stack_size;
148static inline void qurt_thread_attr_set_stack_addr(
qurt_thread_attr_t *attr,
void *stack_addr) {
149 attr->stack_addr = stack_addr;
166static inline void qurt_thread_attr_set_priority(
qurt_thread_attr_t *attr,
unsigned short priority) {
167 attr->priority = priority;
203 unsigned int wait_count;
205 unsigned long long int raw;
212 unsigned long long raw;
215 unsigned int n_waiting;
217 unsigned int reserved;
This file declares the routines used by Halide internally in its runtime.
#define QURT_THREAD_ATTR_BUS_PRIO_DEFAULT
#define QURT_THREAD_ATTR_TIMETEST_ID_DEFAULT
#define QURT_THREAD_ATTR_ASID_DEFAULT
#define QURT_THREAD_ATTR_NAME_MAXLEN
#define QURT_THREAD_ATTR_TCB_PARTITION_DEFAULT
Backward compatibility.
#define QURT_THREAD_ATTR_AFFINITY_DEFAULT
#define QURT_THREAD_ATTR_PRIORITY_DEFAULT
int qurt_hvx_get_mode(void)
void qurt_mutex_unlock(qurt_mutex_t *lock)
void qurt_cond_init(qurt_cond_t *cond)
void qurt_cond_wait(qurt_cond_t *cond, qurt_mutex_t *mutex)
unsigned int qurt_mem_pool_t
void qurt_mutex_destroy(qurt_mutex_t *lock)
void qurt_mutex_lock(qurt_mutex_t *lock)
void qurt_cond_signal(qurt_cond_t *cond)
int qurt_thread_set_priority(qurt_thread_t threadid, unsigned short newprio)
int qurt_thread_create(qurt_thread_t *thread_id, qurt_thread_attr_t *attr, void(*entrypoint)(void *), void *arg)
void qurt_mutex_init(qurt_mutex_t *lock)
union qurt_mutex_aligned8 qurt_mutex_t
QuRT mutex type.
void qurt_cond_destroy(qurt_cond_t *cond)
@ QURT_HVX_MODE_64B
HVX mode of 64 bytes.
@ QURT_HVX_MODE_128B
HVX mode of 128 bytes.
int qurt_hvx_unlock(void)
int qurt_thread_join(unsigned int tid, int *status)
Waits for a specified thread to finish.
unsigned int qurt_thread_t
int qurt_hvx_lock(qurt_hvx_mode_t lock_mode)
struct _qurt_thread_attr qurt_thread_attr_t
Thread attributes.
This file defines the class FunctionDAG, which is our representation of a Halide pipeline,...
@ Internal
Not visible externally, similar to 'static' linkage in C.
QuRT condition variable type.