API Reference Manual  1.45.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  */
4 
11 #ifndef ODP_API_SPEC_SCHEDULE_H_
12 #define ODP_API_SPEC_SCHEDULE_H_
13 #include <odp/visibility_begin.h>
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 #include <odp/api/std_types.h>
20 #include <odp/api/event_types.h>
21 #include <odp/api/queue_types.h>
22 #include <odp/api/schedule_types.h>
23 #include <odp/api/thrmask.h>
24 
39 uint64_t odp_schedule_wait_time(uint64_t ns);
40 
84 odp_event_t odp_schedule(odp_queue_t *from, uint64_t wait);
85 
108 int odp_schedule_multi(odp_queue_t *from, uint64_t wait, odp_event_t events[],
109  int num);
110 
123 int odp_schedule_multi_wait(odp_queue_t *from, odp_event_t events[], int num);
124 
138  int num);
139 
166 
174 
190 
207 
220 void odp_schedule_prefetch(int num);
221 
233 
245 
259 
269 
278 
307 
319 
341  const odp_thrmask_t *mask);
342 
356 
366 
379  const odp_thrmask_t *mask);
380 
398  const odp_thrmask_t *mask);
399 
410  odp_thrmask_t *thrmask);
411 
429 
460 void odp_schedule_order_lock(uint32_t lock_index);
461 
473 void odp_schedule_order_unlock(uint32_t lock_index);
474 
494 void odp_schedule_order_unlock_lock(uint32_t unlock_index, uint32_t lock_index);
495 
511 void odp_schedule_order_lock_start(uint32_t lock_index);
512 
522 void odp_schedule_order_lock_wait(uint32_t lock_index);
523 
539 
547 
552 #ifdef __cplusplus
553 }
554 #endif
555 
556 #include <odp/visibility_end.h>
557 #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.
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.