1#ifndef HTP_CTX_H
 2#define HTP_CTX_H
 3
 4#include "hex-dma.h"
 5#include "worker-pool.h"
 6
 7#include <assert.h>
 8#include <dspqueue.h>
 9#include <stdatomic.h>
10#include <stdint.h>
11
12#define HTP_MAX_NTHREADS 10
13
14// Main context for htp DSP backend
15struct htp_context {
16    dspqueue_t            queue;
17    dma_queue *           dma[HTP_MAX_NTHREADS];
18    worker_pool_context_t worker_pool;
19    uint32_t              n_threads;
20
21    int thread_id;
22    int thread_prio;
23
24    uint8_t * vtcm_base;
25    size_t    vtcm_size;
26    uint32_t  vtcm_rctx;
27
28    atomic_bool vtcm_valid;
29    atomic_bool vtcm_inuse;
30    atomic_bool vtcm_needs_release;
31
32    uint32_t opmask;
33};
34
35#endif /* HTP_CTX_H */