API Reference Manual  1.46.0
api/spec/std_types.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) 2021 ARM Limited
4  * Copyright (c) 2021-2024 Nokia
5  */
6 
14 #ifndef ODP_API_SPEC_STD_TYPES_H_
15 #define ODP_API_SPEC_STD_TYPES_H_
16 #include <odp/visibility_begin.h>
17 /* uint64_t, uint32_t, etc */
18 #include <stdint.h>
19 #include <odp/api/align.h>
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
46 typedef uint32_t odp_percent_t;
47 
49 typedef uint16_t odp_una_u16_t ODP_ALIGNED(1);
50 
52 typedef uint32_t odp_una_u32_t ODP_ALIGNED(1);
53 
55 typedef uint64_t odp_una_u64_t ODP_ALIGNED(1);
56 
65 typedef struct ODP_ALIGNED(16) odp_u128_s {
67  union {
68  #ifdef __SIZEOF_INT128__
70  __uint128_t u128;
71  #endif
73  uint64_t u64[2];
75  uint32_t u32[4];
77  uint16_t u16[8];
79  uint8_t u8[16];
80  };
82 
91 typedef struct odp_fract_u64_t {
93  uint64_t integer;
94 
96  uint64_t numer;
97 
100  uint64_t denom;
101 
103 
111 typedef enum odp_support_t {
124 
126 
128 typedef union odp_feature_t {
130  uint32_t all_feat;
131 
133  struct {
135  uint32_t cls:1;
136 
138  uint32_t compress:1;
139 
141  uint32_t crypto:1;
142 
144  uint32_t dma:1;
145 
147  uint32_t ipsec:1;
148 
150  uint32_t ml:1;
151 
153  uint32_t schedule:1;
154 
156  uint32_t stash:1;
157 
159  uint32_t time:1;
160 
162  uint32_t timer:1;
163 
165  uint32_t tm:1;
166  } feat;
167 
169 
174 #ifdef __cplusplus
175 }
176 #endif
177 
178 #include <odp/visibility_end.h>
179 #endif
ODP alignments.
#define ODP_ALIGNED(x)
Defines type/struct/variable alignment in bytes.
union odp_feature_t odp_feature_t
Definition of ODP features.
uint64_t odp_una_u64_t
Unaligned uint64_t type.
odp_support_t
ODP support.
uint32_t odp_percent_t
Percentage type.
struct odp_u128_s odp_u128_t
128-bit unsigned integer structure
uint16_t odp_una_u16_t
Unaligned uint16_t type.
struct odp_fract_u64_t odp_fract_u64_t
Unsigned 64 bit fractional number.
uint32_t odp_una_u32_t
Unaligned uint32_t type.
@ ODP_SUPPORT_PREFERRED
Feature is supported and preferred.
@ ODP_SUPPORT_YES
Feature is supported.
@ ODP_SUPPORT_NO
Feature is not supported.
Unsigned 64 bit fractional number.
uint64_t integer
Integer part.
uint64_t denom
Denominator of the fraction part.
uint64_t numer
Numerator of the fraction part.
128-bit unsigned integer structure
Definition of ODP features.
uint32_t tm
Traffic Manager APIs, e.g., odp_tm_xxx()
uint32_t stash
Stash APIs, e.g., odp_stash_xxx()
uint32_t crypto
Crypto APIs, e.g., odp_crypto_xxx()
uint32_t ipsec
IPsec APIs, e.g., odp_ipsec_xxx()
uint32_t all_feat
All features.
uint32_t dma
DMA APIs, e.g., odp_dma_xxx()
uint32_t timer
Timer APIs, e.g., odp_timer_xxx(), odp_timeout_xxx()
uint32_t cls
Classifier APIs, e.g., odp_cls_xxx(), odp_cos_xxx()
uint32_t ml
Machine Learning APIs, e.g., odp_ml_xxx()
uint32_t time
Time APIs, e.g., odp_time_xxx()
uint32_t schedule
Scheduler APIs, e.g., odp_schedule_xxx()
struct odp_feature_t::@148 feat
Individual feature bits.
uint32_t compress
Compression APIs, e.g., odp_comp_xxx()