|
Sound Open Firmware
|
Data Structures | |
| struct | scheduler_ops |
| Scheduler operations. More... | |
| struct | schedule_data |
| Holds information about scheduler. More... | |
| struct | schedulers |
| Holds list of all registered schedulers. More... | |
Macros | |
| #define | SOF_SCHEDULER_FREE_IRQ_ONLY BIT(0) |
| Scheduler free available flags. | |
Enumerations | |
| enum | { SOF_SCHEDULE_EDF = 0 , SOF_SCHEDULE_LL_TIMER , SOF_SCHEDULE_LL_DMA , SOF_SCHEDULE_DP , SOF_SCHEDULE_TWB , SOF_SCHEDULE_COUNT } |
| Type of scheduler, comes from topology. More... | |
Functions | |
| struct schedulers ** | arch_schedulers_get (void) |
| Retrieves registered schedulers. | |
| struct schedulers ** | arch_user_schedulers_get (void) |
| struct schedulers ** | arch_user_schedulers_get_for_core (int core) |
| static void * | scheduler_list_get_data (struct schedulers *schedulers, uint16_t type) |
| static void * | scheduler_get_data (uint16_t type) |
| Retrieves scheduler's data. | |
| static void * | scheduler_get_user_data (uint16_t type) |
| Retrieves userspace scheduler's data. | |
| static int | schedule_task_running (struct task *task) |
| See scheduler_ops::schedule_task_running. | |
| static int | schedule_task (struct task *task, uint64_t start, uint64_t period) |
| See scheduler_ops::schedule_task. | |
| static int | schedule_task_before (struct task *task, uint64_t start, uint64_t period, struct task *before) |
| See scheduler_ops::schedule_task_before. | |
| static int | schedule_task_after (struct task *task, uint64_t start, uint64_t period, struct task *after) |
| See scheduler_ops::schedule_task_after. | |
| static int | reschedule_task (struct task *task, uint64_t start) |
| See scheduler_ops::reschedule_task. | |
| static int | schedule_task_cancel (struct task *task) |
| See scheduler_ops::schedule_task_cancel. | |
| static int | schedule_task_free (struct task *task) |
| See scheduler_ops::schedule_task_free. | |
| static struct k_thread * | scheduler_init_context (struct task *task) |
| See scheduler_ops::scheduler_init_context. | |
| int | schedule_task_init (struct task *task, const struct sof_uuid_entry *uid, uint16_t type, int16_t priority, enum task_state(*run)(void *data), void *data, uint16_t core, uint32_t flags) |
| Initializes scheduling task. | |
| void | scheduler_init (int type, const struct scheduler_ops *ops, void *data) |
| Initializes scheduler. | |
| void | scheduler_get_task_info (struct scheduler_props *scheduler_props, uint32_t *data_off_size, struct list_item *tasks) |
| Extract scheduler's task information from tasks. | |
| #define SOF_SCHEDULER_FREE_IRQ_ONLY BIT(0) |
Scheduler free available flags.
Free function disables only interrupts
| anonymous enum |
Type of scheduler, comes from topology.
| struct schedulers ** arch_schedulers_get | ( | void | ) |
Retrieves registered schedulers.
| struct schedulers ** arch_user_schedulers_get | ( | void | ) |
| struct schedulers ** arch_user_schedulers_get_for_core | ( | int | core | ) |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
| int schedule_task_init | ( | struct task * | task, |
| const struct sof_uuid_entry * | uid, | ||
| uint16_t | type, | ||
| int16_t | priority, | ||
| enum task_state(* | run )(void *data), | ||
| void * | data, | ||
| uint16_t | core, | ||
| uint32_t | flags ) |
Initializes scheduling task.
| task | Task to be initialized. |
| uid | Statically assigned task uuid. |
| type | SOF_SCHEDULE_ type. |
| priority | Task's priority. |
| run | Pointer to task's execution function. |
| data | Pointer to task's execution data. |
| core | Core on which task should be run. |
| flags | Special scheduling flags. |
|
inlinestatic |
|
inlinestatic |
Retrieves scheduler's data.
| type | SOF_SCHEDULE_ type. |
| void scheduler_get_task_info | ( | struct scheduler_props * | scheduler_props, |
| uint32_t * | data_off_size, | ||
| struct list_item * | tasks ) |
Extract scheduler's task information from tasks.
| scheduler_props | Structure to be filled |
| data_off_size | Pointer to the current size of the scheduler_props, to be updated |
| tasks | Scheduler's task list |
|
inlinestatic |
Retrieves userspace scheduler's data.
| type | SOF_SCHEDULE_ type. |
| void scheduler_init | ( | int | type, |
| const struct scheduler_ops * | ops, | ||
| void * | data ) |
Initializes scheduler.
| type | SOF_SCHEDULE_ type. |
| ops | Pointer to scheduler's operations. |
| data | Scheduler's private data. |
|
inlinestatic |
|
inlinestatic |