Sound Open Firmware
Loading...
Searching...
No Matches
schedule.h File Reference
Include dependency graph for schedule.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

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.