Zephyr Project API 3.7.0
A Scalable Open Source RTOS
|
Data Structures | |
struct | interrupt_param |
Macros | |
#define | STACK_SIZE 1024 |
#define | NUM_WORK 4 |
Enumerations | |
enum | { TEST_OFFLOAD_MULTI_JOBS , TEST_OFFLOAD_IDENTICAL_JOBS } |
Functions | |
static | K_THREAD_STACK_DEFINE (wq_stack, 1024) |
static | K_THREAD_STACK_DEFINE (tstack, 1024) |
static void | entry_offload_job (struct k_work *work) |
void | isr_handler (const void *param) |
static void | init_dyn_interrupt (void) |
static void | trigger_offload_interrupt (const bool real_irq, void *work) |
static void | t_running (void *p1, void *p2, void *p3) |
static void | init_env (int real_irq) |
static void | run_test_offload (int case_type, int real_irq) |
ZTEST (interrupt_feature, test_isr_offload_job_multiple) | |
Test interrupt offload work to multiple jobs. | |
ZTEST (interrupt_feature, test_isr_offload_job_identi) | |
Test interrupt offload work to identical jobs. | |
ZTEST (interrupt_feature, test_isr_offload_job) | |
Test interrupt offload work by dynamic interrupt. | |
Variables | |
static struct k_work | offload_work [4] |
static struct k_work_q | wq_queue |
static struct k_thread | tdata |
static struct k_sem | sync_sem |
static struct k_sem | end_sem |
static bool | wait_for_end |
static atomic_t | submit_success |
static atomic_t | offload_job_cnt |
static bool | offload_job_prio_higher |
static volatile int | orig_t_keep_run |
static int | vector_num |
static struct interrupt_param | irq_param |
#define NUM_WORK 4 |
#define STACK_SIZE 1024 |
|
static |
|
static |
|
static |
void isr_handler | ( | const void * | param | ) |
|
static |
|
static |
|
static |
|
static |
|
static |
ZTEST | ( | interrupt_feature | , |
test_isr_offload_job | |||
) |
Test interrupt offload work by dynamic interrupt.
Validate isr can offload workload to work queue, and the offload jobs could execute immediately base on it's priority. We test this by dynamic interrupt.
ZTEST | ( | interrupt_feature | , |
test_isr_offload_job_identi | |||
) |
Test interrupt offload work to identical jobs.
Validate isr can offload workload to work queue, and all the offload jobs use the same thread entry, and:
We test this by irq_offload().
ZTEST | ( | interrupt_feature | , |
test_isr_offload_job_multiple | |||
) |
Test interrupt offload work to multiple jobs.
Validate isr can offload workload to multi work queue, and:
We test this by irq_offload().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |