API Reference Manual  1.46.0
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 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 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 #include <odp/api/std_types.h>
21 #include <odp/api/event_types.h>
22 #include <odp/api/queue_types.h>
23 #include <odp/api/schedule_types.h>
24 #include <odp/api/thrmask.h>
25 
40 uint64_t odp_schedule_wait_time(uint64_t ns);
41 
85 odp_event_t odp_schedule(odp_queue_t *from, uint64_t wait);
86 
109 int odp_schedule_multi(odp_queue_t *from, uint64_t wait, odp_event_t events[],
110  int num);
111 
124 int odp_schedule_multi_wait(odp_queue_t *from, odp_event_t events[], int num);
125 
139  int num);
140 
167 
175 
191 
208 
221 void odp_schedule_prefetch(int num);
222 
234 
246 
260 
270 
279 
308 
320 
342  const odp_thrmask_t *mask);
343 
357 
367 
380  const odp_thrmask_t *mask);
381 
399  const odp_thrmask_t *mask);
400 
411  odp_thrmask_t *thrmask);
412 
430 
439 
470 void odp_schedule_order_lock(uint32_t lock_index);
471 
483 void odp_schedule_order_unlock(uint32_t lock_index);
484 
504 void odp_schedule_order_unlock_lock(uint32_t unlock_index, uint32_t lock_index);
505 
521 void odp_schedule_order_lock_start(uint32_t lock_index);
522 
532 void odp_schedule_order_lock_wait(uint32_t lock_index);
533 
549 
557 
562 #ifdef __cplusplus
563 }
564 #endif
565 
566 #include <odp/visibility_end.h>
567 #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_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(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.