|
Sound Open Firmware
|
Low-Latency schedule domain operations table. More...
#include <src/include/sof/schedule/ll_schedule_domain.h>
Data Fields | |
| int(* | domain_register )(struct ll_schedule_domain *domain, struct task *task, void(*handler)(void *arg), void *arg) |
| Register a real-time task with the domain. | |
| int(* | domain_unregister )(struct ll_schedule_domain *domain, struct task *task, uint32_t num_tasks) |
| Unregister a task from the domain. | |
| void(* | domain_enable )(struct ll_schedule_domain *domain, int core) |
| Enable domain interrupts/triggers on the specified core. | |
| void(* | domain_disable )(struct ll_schedule_domain *domain, int core) |
| Disable domain interrupts/triggers on the specified core. | |
| void(* | domain_set )(struct ll_schedule_domain *domain, uint64_t start) |
| Set the next tick timestamp for the domain. | |
| void(* | domain_clear )(struct ll_schedule_domain *domain) |
| Clear scheduled domain interrupt / tick timer. | |
| bool(* | domain_is_pending )(struct ll_schedule_domain *domain, struct task *task, struct comp_dev **comp) |
| Query whether a task in the domain has pending execution work. | |
| void(* | domain_task_cancel )(struct ll_schedule_domain *domain, struct task *task) |
| Notification hook invoked when a task within the domain is cancelled. | |
Low-Latency schedule domain operations table.
Implements driver-level primitives for timer and DMA scheduling domains.
| void(* ll_schedule_domain_ops::domain_clear) (struct ll_schedule_domain *domain) |
Clear scheduled domain interrupt / tick timer.
| [in,out] | domain | Target scheduling domain. |
| void(* ll_schedule_domain_ops::domain_disable) (struct ll_schedule_domain *domain, int core) |
Disable domain interrupts/triggers on the specified core.
| [in,out] | domain | Target scheduling domain. |
| [in] | core | Core index to disable. |
| void(* ll_schedule_domain_ops::domain_enable) (struct ll_schedule_domain *domain, int core) |
Enable domain interrupts/triggers on the specified core.
| [in,out] | domain | Target scheduling domain. |
| [in] | core | Core index to enable. |
| bool(* ll_schedule_domain_ops::domain_is_pending) (struct ll_schedule_domain *domain, struct task *task, struct comp_dev **comp) |
Query whether a task in the domain has pending execution work.
| [in] | domain | Target scheduling domain. |
| [in] | task | Task to check. |
| [out] | comp | Pointer to associated component device, if any. |
| int(* ll_schedule_domain_ops::domain_register) (struct ll_schedule_domain *domain, struct task *task, void(*handler)(void *arg), void *arg) |
Register a real-time task with the domain.
| [in,out] | domain | Target scheduling domain. |
| [in,out] | task | Task being registered. |
| [in] | handler | Domain tick handler callback. |
| [in,out] | arg | Context argument passed to tick handler. |
| void(* ll_schedule_domain_ops::domain_set) (struct ll_schedule_domain *domain, uint64_t start) |
Set the next tick timestamp for the domain.
| [in,out] | domain | Target scheduling domain. |
| [in] | start | Next execution start timestamp in clock ticks. |
| void(* ll_schedule_domain_ops::domain_task_cancel) (struct ll_schedule_domain *domain, struct task *task) |
Notification hook invoked when a task within the domain is cancelled.
| [in,out] | domain | Target scheduling domain. |
| [in,out] | task | Task being cancelled. |
| int(* ll_schedule_domain_ops::domain_unregister) (struct ll_schedule_domain *domain, struct task *task, uint32_t num_tasks) |
Unregister a task from the domain.
| [in,out] | domain | Target scheduling domain. |
| [in,out] | task | Task being unregistered. |
| [in] | num_tasks | Current total task count. |