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;
127static inline void qurt_thread_attr_set_stack_size(
qurt_thread_attr_t *attr,
unsigned int stack_size) {
128 attr->stack_size = stack_size;
152static inline void qurt_thread_attr_set_stack_addr(
qurt_thread_attr_t *attr,
void *stack_addr) {
153 attr->stack_addr = stack_addr;
170static 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;
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
unsigned int qurt_mem_pool_t
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)
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.