API Reference Manual  1.45.1
api/spec/queue_types.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright (c) 2018 Linaro Limited
3  */
4 
11 #ifndef ODP_API_SPEC_QUEUE_TYPES_H_
12 #define ODP_API_SPEC_QUEUE_TYPES_H_
13 #include <odp/visibility_begin.h>
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 #include <odp/api/schedule_types.h>
20 
43 typedef enum odp_queue_type_t {
49 
57 
61 typedef enum odp_queue_op_mode_t {
68 
76 
86 
88 
117 typedef enum odp_nonblocking_t {
122 
128 
134 
136 
153 typedef enum odp_queue_order_t {
159 
165 
167 
171 typedef struct odp_queue_capability_t {
175  uint32_t max_queues;
176 
178  struct {
181  uint32_t max_num;
182 
187  uint32_t max_size;
188 
192  struct {
195  uint32_t max_num;
196 
199  uint32_t max_size;
200 
202 
206  struct {
209  uint32_t max_num;
210 
213  uint32_t max_size;
214 
216 
217  } plain;
218 
220 
224 typedef struct odp_queue_param_t {
230 
237 
250 
256 
262 
269 
277  void *context;
278 
284  uint32_t context_len;
285 
292  uint32_t size;
293 
295 
300 typedef struct odp_queue_info_t {
301  const char *name;
304 
309 #ifdef __cplusplus
310 }
311 #endif
312 
313 #include <odp/visibility_end.h>
314 #endif
ODP schedule.
odp_nonblocking_t
Non-blocking level.
struct odp_queue_info_t odp_queue_info_t
Queue information Retrieve information about a queue with odp_queue_info()
odp_queue_type_t
Queue type.
struct odp_queue_param_t odp_queue_param_t
ODP Queue parameters.
odp_queue_op_mode_t
Queue operation mode.
odp_queue_order_t
Original event order maintenance options.
struct odp_queue_capability_t odp_queue_capability_t
Queue capabilities.
@ ODP_NONBLOCKING_WF
Non-blocking and wait-free implementation.
@ ODP_BLOCKING
Blocking implementation.
@ ODP_NONBLOCKING_LF
Non-blocking and lock-free implementation.
@ ODP_QUEUE_TYPE_SCHED
Scheduled queue.
@ ODP_QUEUE_TYPE_PLAIN
Plain queue.
@ ODP_QUEUE_OP_MT
Multithread safe operation.
@ ODP_QUEUE_OP_DISABLED
Disabled.
@ ODP_QUEUE_OP_MT_UNSAFE
Not multithread safe operation.
@ ODP_QUEUE_ORDER_KEEP
Keep original event order.
@ ODP_QUEUE_ORDER_IGNORE
Ignore original event order.
uint32_t max_size
Maximum number of events a plain (ODP_BLOCKING) queue can store simultaneously.
uint32_t max_num
Maximum number of plain (ODP_BLOCKING) queues of the default size.
struct odp_queue_capability_t::@137 plain
Plain queue capabilities.
struct odp_queue_capability_t::@137::@139 waitfree
Wait-free (ODP_NONBLOCKING_WF) implementation capabilities.
struct odp_queue_capability_t::@137::@138 lockfree
Lock-free (ODP_NONBLOCKING_LF) implementation capabilities.
uint32_t max_queues
Maximum number of event queues of any type (default size).
Queue information Retrieve information about a queue with odp_queue_info()
odp_queue_param_t param
queue parameters
const char * name
queue name
ODP Queue parameters.
odp_schedule_param_t sched
Scheduler parameters.
odp_queue_order_t order
Original event order maintenance.
odp_queue_op_mode_t enq_mode
Enqueue mode.
uint32_t size
Queue size.
odp_queue_type_t type
Queue type.
uint32_t context_len
Queue context data length.
void * context
Queue context pointer.
odp_queue_op_mode_t deq_mode
Dequeue mode.
odp_nonblocking_t nonblocking
Non-blocking level.
Scheduler parameters.