Sound Open Firmware
Loading...
Searching...
No Matches
ll_schedule_domain_ops Struct Reference

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.
 

Detailed Description

Low-Latency schedule domain operations table.

Implements driver-level primitives for timer and DMA scheduling domains.

Field Documentation

◆ domain_clear

void(* ll_schedule_domain_ops::domain_clear) (struct ll_schedule_domain *domain)

Clear scheduled domain interrupt / tick timer.

Parameters
[in,out]domainTarget scheduling domain.

◆ domain_disable

void(* ll_schedule_domain_ops::domain_disable) (struct ll_schedule_domain *domain, int core)

Disable domain interrupts/triggers on the specified core.

Parameters
[in,out]domainTarget scheduling domain.
[in]coreCore index to disable.

◆ domain_enable

void(* ll_schedule_domain_ops::domain_enable) (struct ll_schedule_domain *domain, int core)

Enable domain interrupts/triggers on the specified core.

Parameters
[in,out]domainTarget scheduling domain.
[in]coreCore index to enable.

◆ domain_is_pending

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.

Parameters
[in]domainTarget scheduling domain.
[in]taskTask to check.
[out]compPointer to associated component device, if any.
Returns
true if work is pending, false otherwise.

◆ domain_register

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.

Parameters
[in,out]domainTarget scheduling domain.
[in,out]taskTask being registered.
[in]handlerDomain tick handler callback.
[in,out]argContext argument passed to tick handler.
Returns
0 on success, negative error code on failure.

◆ domain_set

void(* ll_schedule_domain_ops::domain_set) (struct ll_schedule_domain *domain, uint64_t start)

Set the next tick timestamp for the domain.

Parameters
[in,out]domainTarget scheduling domain.
[in]startNext execution start timestamp in clock ticks.

◆ domain_task_cancel

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.

Parameters
[in,out]domainTarget scheduling domain.
[in,out]taskTask being cancelled.

◆ domain_unregister

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.

Parameters
[in,out]domainTarget scheduling domain.
[in,out]taskTask being unregistered.
[in]num_tasksCurrent total task count.
Returns
0 on success, negative error code on failure.

The documentation for this struct was generated from the following file: