API Reference Manual  1.47.0
api/spec/schedule_types.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright (c) 2015-2018 Linaro Limited
3  * Copyright (c) 2023-2025 Nokia
4  */
5 
12 #ifndef ODP_API_SPEC_SCHEDULE_TYPES_H_
13 #define ODP_API_SPEC_SCHEDULE_TYPES_H_
14 #include <odp/visibility_begin.h>
15 
17 #include <odp/api/std_types.h>
18 #include <odp/api/thrmask.h>
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
176 
178 typedef struct odp_schedule_param_t {
183 
188 
193 
197  uint32_t lock_count;
199 
206 
211  uint32_t max_groups;
212 
214  uint32_t max_prios;
215 
218  uint32_t max_queues;
219 
224  uint32_t max_queue_size;
225 
232  uint32_t max_flow_id;
233 
237 
241 
245 
248 
250 
260 typedef struct odp_cache_stash_region_t {
262  struct {
268  uint32_t offset;
269 
275  uint32_t len;
276 
277  } l2;
278 
280  struct {
286  uint32_t offset;
287 
293  uint32_t len;
294 
295  } l3;
296 
298 
304 typedef struct odp_cache_stash_config_t {
306  union {
308  struct {
310  uint32_t event_metadata_l2 : 1;
311 
313  uint32_t event_metadata_l3 : 1;
314 
316  uint32_t event_data_l2 : 1;
317 
319  uint32_t event_data_l3 : 1;
320 
322  uint32_t event_user_area_l2 : 1;
323 
325  uint32_t event_user_area_l3 : 1;
326 
328  uint32_t queue_context_l2 : 1;
329 
331  uint32_t queue_context_l3 : 1;
332 
333  };
334 
340  uint32_t all;
341 
343 
346 
349 
352 
355 
357 
364 
367 
369 
445  struct {
453 
460  struct {
467 
472  uint32_t num;
473 
474  };
475 
477 
479 
483 typedef struct odp_schedule_config_t {
488  uint32_t num_queues;
489 
495  uint32_t queue_size;
496 
514  uint32_t max_flow_id;
515 
521  struct {
528 
535 
542 
545 
548 
551 
553 
555 
560  const char *name;
563 
568 #ifdef __cplusplus
569 }
570 #endif
571 
572 #include <odp/visibility_end.h>
573 #endif
ODP event vector API type definitions.
Standard C language types and definitions for ODP.
ODP thread masks.
int odp_schedule_sync_t
Scheduler synchronization method.
struct odp_cache_stash_prio_config_t odp_cache_stash_prio_config_t
Priority specific cache stashing configuration.
int odp_schedule_prio_t
Scheduling priority level.
int odp_schedule_group_t
Scheduler thread group.
struct odp_cache_stash_region_t odp_cache_stash_region_t
Region specific cache stashing configuration.
struct odp_schedule_group_param_t odp_schedule_group_param_t
Schedule group parameters.
struct odp_schedule_config_t odp_schedule_config_t
Schedule configuration.
struct odp_schedule_param_t odp_schedule_param_t
Scheduler parameters.
struct odp_schedule_capability_t odp_schedule_capability_t
Scheduler capabilities.
struct odp_cache_stash_config_t odp_cache_stash_config_t
Cache stashing configuration.
struct odp_schedule_group_info_t odp_schedule_group_info_t
Schedule group information.
bool odp_bool_t
Boolean type.
odp_support_t
ODP support.
Cache stashing configuration.
uint32_t event_data_l2
Enable/disable event_data L2 cache stashing.
uint32_t queue_context_l2
Enable/disable queue_context L2 cache stashing.
uint32_t event_metadata_l3
Enable/disable event_metadata L3 cache stashing.
uint32_t event_metadata_l2
Enable/disable event_metadata L2 cache stashing.
uint32_t queue_context_l3
Enable/disable queue_context L3 cache stashing.
union odp_cache_stash_config_t::@157 regions
Region specific configuration toggle.
odp_cache_stash_region_t event_user_area
Cache stashing for event user area.
uint32_t event_data_l3
Enable/disable event_data L3 cache stashing.
odp_cache_stash_region_t event_data
Cache stashing for event data.
uint32_t all
All bits of the bit field structure.
uint32_t event_user_area_l2
Enable/disable event_user_area L2 cache stashing.
odp_cache_stash_region_t event_metadata
Cache stashing for event metadata.
odp_cache_stash_region_t queue_context
Cache stashing for queue context region.
uint32_t event_user_area_l3
Enable/disable event_user_area L3 cache stashing.
Priority specific cache stashing configuration.
odp_cache_stash_config_t config
Cache stashing configuration.
odp_schedule_prio_t prio
Priority level for applying this cache stashing configuration to.
Region specific cache stashing configuration.
struct odp_cache_stash_region_t::@156 l3
L3 cache stashing.
uint32_t len
Length in bytes to cache.
struct odp_cache_stash_region_t::@155 l2
L2 cache stashing.
uint32_t offset
Byte offset into a region to start caching from.
Event aggregator capabilities.
uint32_t max_flow_id
Maximum flow ID per queue.
odp_support_t order_wait
Order wait support.
uint32_t max_groups
Maximum number of scheduling groups.
uint32_t max_queues
Maximum number of scheduled (ODP_BLOCKING) queues of the default size.
odp_support_t waitfree_queues
Wait-free (ODP_NONBLOCKING_WF) queues support.
odp_support_t lockfree_queues
Lock-free (ODP_NONBLOCKING_LF) queues support.
uint32_t max_queue_size
Maximum number of events a scheduled (ODP_BLOCKING) queue can store simultaneously.
uint32_t max_ordered_locks
Maximum number of ordered locks per queue.
uint32_t max_prios
Number of scheduling priorities.
odp_event_aggr_capability_t aggr
Event aggregator capabilities for scheduled queues.
Schedule configuration.
odp_bool_t worker
ODP_SCHED_GROUP_WORKER.
uint32_t num_queues
Maximum number of scheduled queues to be supported.
odp_bool_t control
ODP_SCHED_GROUP_CONTROL.
odp_schedule_group_param_t control_param
Parameters for ODP_SCHED_GROUP_CONTROL schedule group.
odp_schedule_group_param_t all_param
Parameters for ODP_SCHED_GROUP_ALL schedule group.
struct odp_schedule_config_t::@163 sched_group
Enable/disable predefined scheduling groups.
odp_bool_t all
ODP_SCHED_GROUP_ALL.
uint32_t queue_size
Maximum number of events required to be stored simultaneously in scheduled queue.
uint32_t max_flow_id
Maximum flow ID per queue.
odp_schedule_group_param_t worker_param
Parameters for ODP_SCHED_GROUP_WORKER schedule group.
Schedule group information.
const char * name
Schedule group name.
odp_thrmask_t thrmask
Thread mask of the schedule group.
Schedule group parameters.
struct odp_schedule_group_param_t::@160 cache_stash_hints
Group specific cache stashing hints.
odp_cache_stash_config_t common
Common group specific cache stashing hints.
const odp_cache_stash_prio_config_t * prio
Pointer to 'num' entries of priority specific configuration.
uint32_t num
Number of entries in 'prio' array.
Scheduler parameters.
odp_schedule_group_t group
Thread group.
odp_schedule_prio_t prio
Priority level.
uint32_t lock_count
Ordered lock count for this queue.
odp_schedule_sync_t sync
Synchronization method.