API Reference Manual 1.51.0
Loading...
Searching...
No Matches
api/spec/schedule.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright (c) 2013-2018 Linaro Limited
3 * Copyright (c) 2024-2025 Nokia
4 */
5
12#ifndef ODP_API_SPEC_SCHEDULE_H_
13#define ODP_API_SPEC_SCHEDULE_H_
14#include <odp/visibility_begin.h>
15
16#include <odp/api/std_types.h>
17#include <odp/api/event_types.h>
18#include <odp/api/queue_types.h>
20#include <odp/api/thrmask.h>
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
40uint64_t odp_schedule_wait_time(uint64_t ns);
41
85odp_event_t odp_schedule(odp_queue_t *from, uint64_t wait);
86
109int odp_schedule_multi(odp_queue_t *from, uint64_t wait, odp_event_t events[],
110 int num);
111
124int odp_schedule_multi_wait(odp_queue_t *from, odp_event_t events[], int num);
125
139 int num);
140
167
175
191
208
222
238
254
269
284
293
322
334
356 const odp_thrmask_t *mask);
365
383 const odp_thrmask_t *mask,
384 const odp_schedule_group_param_t *param);
385
399
409
422 const odp_thrmask_t *mask);
423
441 const odp_thrmask_t *mask);
442
453 odp_thrmask_t *thrmask);
454
472
481
512void odp_schedule_order_lock(uint32_t lock_index);
513
525void odp_schedule_order_unlock(uint32_t lock_index);
526
546void odp_schedule_order_unlock_lock(uint32_t unlock_index, uint32_t lock_index);
547
563void odp_schedule_order_lock_start(uint32_t lock_index);
564
574void odp_schedule_order_lock_wait(uint32_t lock_index);
575
591
599
604#ifdef __cplusplus
605}
606#endif
607
608#include <odp/visibility_end.h>
609#endif
ODP event API type definitions.
ODP queue.
ODP schedule.
Standard C language types and definitions for ODP.
ODP thread masks.
int odp_schedule_group_thrmask(odp_schedule_group_t group, odp_thrmask_t *thrmask)
Get a schedule group's thrmask.
int odp_schedule_multi_no_wait(odp_queue_t *from, odp_event_t events[], int num)
Schedule, do not wait for events.
void odp_schedule_order_wait(void)
Wait until the currently held scheduling context is the first in order.
int odp_schedule_multi(odp_queue_t *from, uint64_t wait, odp_event_t events[], int num)
Schedule multiple events.
void odp_schedule_order_lock_wait(uint32_t lock_index)
Asynchronous ordered context lock wait Wait for a previously started lock acquire operation to finish...
int odp_schedule_group_t
Scheduler thread group.
void odp_schedule_config_init(odp_schedule_config_t *config)
Initialize schedule configuration options.
int odp_schedule_group_join(odp_schedule_group_t group, const odp_thrmask_t *mask)
Join a schedule group.
void odp_schedule_group_param_init(odp_schedule_group_param_t *param)
Initialize schedule group parameters.
void odp_schedule_order_lock_start(uint32_t lock_index)
Asynchronous ordered context lock Request an ordered context lock to be acquired.
odp_schedule_group_t odp_schedule_group_lookup(const char *name)
Look up a schedule group by name.
int odp_schedule_min_prio(void)
Minimum scheduling priority level.
int odp_schedule_group_destroy(odp_schedule_group_t group)
Schedule group destroy.
void odp_schedule_release_atomic(void)
Release the current atomic context.
int odp_schedule_group_leave(odp_schedule_group_t group, const odp_thrmask_t *mask)
Leave a schedule group.
void odp_schedule_order_unlock(uint32_t lock_index)
Release ordered context lock.
int odp_schedule_default_prio(void)
Default scheduling priority level.
void odp_schedule_pause(void)
Pause scheduling.
int odp_schedule_max_prio(void)
Maximum scheduling priority level.
void odp_schedule_prefetch(int num)
Prefetch events for next schedule call.
int odp_schedule_config(const odp_schedule_config_t *config)
Global schedule configuration.
uint64_t odp_schedule_group_to_u64(odp_schedule_group_t group)
Get printable value for schedule group handle.
int odp_schedule_multi_wait(odp_queue_t *from, odp_event_t events[], int num)
Schedule, wait for events.
void odp_schedule_release_ordered(void)
Release the current ordered context.
uint64_t odp_schedule_wait_time(uint64_t ns)
Schedule wait time.
int odp_schedule_capability(odp_schedule_capability_t *capa)
Query scheduler capabilities.
int odp_schedule_group_info(odp_schedule_group_t group, odp_schedule_group_info_t *info)
Retrieve information about a schedule group.
odp_schedule_group_t odp_schedule_group_create_2(const char *name, const odp_thrmask_t *mask, const odp_schedule_group_param_t *param)
Schedule group create with parameters.
odp_schedule_group_t odp_schedule_group_create(const char *name, const odp_thrmask_t *mask)
Schedule group create.
int odp_schedule_num_prio(void)
Number of scheduling priorities.
odp_event_t odp_schedule(odp_queue_t *from, uint64_t wait)
Schedule an event.
void odp_schedule_print(void)
Print debug info about scheduler.
void odp_schedule_resume(void)
Resume scheduling.
void odp_schedule_order_unlock_lock(uint32_t unlock_index, uint32_t lock_index)
Release existing ordered context lock and acquire a new lock.
void odp_schedule_order_lock(uint32_t lock_index)
Acquire ordered context lock.
Schedule configuration.
Schedule group information.
Schedule group parameters.