lib: work around unnamed structs/unions
Exported header files used by applications should allow the strictest compiler flags. Language extensions used in many places must be explicitly marked to avoid warnings and compilation failures. Unnamed structs/unions are allowed since C11, however many compiler versions do not use this mode by default. This commit prevents the following errors: error: ISO C99 doesn't support unnamed structs/unions error: struct has no named members Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
This commit is contained in:
parent
8d4b8c87f2
commit
79d6f5fc58
@ -48,6 +48,7 @@ extern "C" {
|
||||
#include <rte_mbuf.h>
|
||||
#include <rte_memory.h>
|
||||
#include <rte_mempool.h>
|
||||
#include <rte_common.h>
|
||||
|
||||
#include "rte_crypto_sym.h"
|
||||
|
||||
@ -111,6 +112,7 @@ struct rte_crypto_op {
|
||||
void *opaque_data;
|
||||
/**< Opaque pointer for user data */
|
||||
|
||||
RTE_STD_C11
|
||||
union {
|
||||
struct rte_crypto_sym_op *sym;
|
||||
/**< Symmetric operation parameters */
|
||||
|
@ -51,6 +51,7 @@ extern "C" {
|
||||
#include <rte_mbuf.h>
|
||||
#include <rte_memory.h>
|
||||
#include <rte_mempool.h>
|
||||
#include <rte_common.h>
|
||||
|
||||
|
||||
/** Symmetric Cipher Algorithms */
|
||||
@ -333,6 +334,7 @@ struct rte_crypto_sym_xform {
|
||||
/**< next xform in chain */
|
||||
enum rte_crypto_sym_xform_type type
|
||||
; /**< xform type */
|
||||
RTE_STD_C11
|
||||
union {
|
||||
struct rte_crypto_auth_xform auth;
|
||||
/**< Authentication / hash xform */
|
||||
@ -371,6 +373,7 @@ struct rte_crypto_sym_op {
|
||||
|
||||
enum rte_crypto_sym_op_sess_type sess_type;
|
||||
|
||||
RTE_STD_C11
|
||||
union {
|
||||
struct rte_cryptodev_sym_session *session;
|
||||
/**< Handle for the initialised session context */
|
||||
|
@ -48,6 +48,7 @@ extern "C" {
|
||||
#include "rte_kvargs.h"
|
||||
#include "rte_crypto.h"
|
||||
#include "rte_dev.h"
|
||||
#include <rte_common.h>
|
||||
|
||||
#define CRYPTODEV_NAME_NULL_PMD cryptodev_null_pmd
|
||||
/**< Null crypto PMD device name */
|
||||
@ -104,6 +105,7 @@ extern const char **rte_cyptodev_names;
|
||||
struct rte_cryptodev_symmetric_capability {
|
||||
enum rte_crypto_sym_xform_type xform_type;
|
||||
/**< Transform type : Authentication / Cipher */
|
||||
RTE_STD_C11
|
||||
union {
|
||||
struct {
|
||||
enum rte_crypto_auth_algorithm algo;
|
||||
@ -177,6 +179,7 @@ struct rte_cryptodev_capabilities {
|
||||
enum rte_crypto_op_type op;
|
||||
/**< Operation type */
|
||||
|
||||
RTE_STD_C11
|
||||
union {
|
||||
struct rte_cryptodev_symmetric_capability sym;
|
||||
/**< Symmetric operation capability parameters */
|
||||
@ -751,6 +754,7 @@ rte_cryptodev_enqueue_burst(uint8_t dev_id, uint16_t qp_id,
|
||||
|
||||
/** Cryptodev symmetric crypto session */
|
||||
struct rte_cryptodev_sym_session {
|
||||
RTE_STD_C11
|
||||
struct {
|
||||
uint8_t dev_id;
|
||||
/**< Device Id */
|
||||
|
@ -52,6 +52,7 @@ extern "C" {
|
||||
#include <rte_mbuf.h>
|
||||
#include <rte_mempool.h>
|
||||
#include <rte_log.h>
|
||||
#include <rte_common.h>
|
||||
|
||||
#include "rte_crypto.h"
|
||||
#include "rte_cryptodev.h"
|
||||
@ -65,6 +66,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
struct rte_cryptodev_session {
|
||||
RTE_STD_C11
|
||||
struct {
|
||||
uint8_t dev_id;
|
||||
enum rte_cryptodev_type type;
|
||||
|
@ -40,6 +40,7 @@ extern "C" {
|
||||
#include "generic/rte_cycles.h"
|
||||
|
||||
#include <rte_byteorder.h>
|
||||
#include <rte_common.h>
|
||||
|
||||
/**
|
||||
* Read the time base register.
|
||||
@ -52,6 +53,7 @@ rte_rdtsc(void)
|
||||
{
|
||||
union {
|
||||
uint64_t tsc_64;
|
||||
RTE_STD_C11
|
||||
struct {
|
||||
#if RTE_BYTE_ORDER == RTE_BIG_ENDIAN
|
||||
uint32_t hi_32;
|
||||
|
@ -40,6 +40,8 @@
|
||||
#ifndef _RTE_ATOMIC_I686_H_
|
||||
#define _RTE_ATOMIC_I686_H_
|
||||
|
||||
#include <rte_common.h>
|
||||
|
||||
/*------------------------- 64 bit atomic operations -------------------------*/
|
||||
|
||||
#ifndef RTE_FORCE_INTRINSICS
|
||||
@ -47,6 +49,7 @@ static inline int
|
||||
rte_atomic64_cmpset(volatile uint64_t *dst, uint64_t exp, uint64_t src)
|
||||
{
|
||||
uint8_t res;
|
||||
RTE_STD_C11
|
||||
union {
|
||||
struct {
|
||||
uint32_t l32;
|
||||
|
@ -75,12 +75,14 @@ extern "C" {
|
||||
extern int rte_cycles_vmware_tsc_map;
|
||||
#include <rte_branch_prediction.h>
|
||||
#endif
|
||||
#include <rte_common.h>
|
||||
|
||||
static inline uint64_t
|
||||
rte_rdtsc(void)
|
||||
{
|
||||
union {
|
||||
uint64_t tsc_64;
|
||||
RTE_STD_C11
|
||||
struct {
|
||||
uint32_t lo_32;
|
||||
uint32_t hi_32;
|
||||
|
@ -59,6 +59,13 @@ extern "C" {
|
||||
#define asm __asm__
|
||||
#endif
|
||||
|
||||
/** C extension macro for environments lacking C11 features. */
|
||||
#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 201112L
|
||||
#define RTE_STD_C11 __extension__
|
||||
#else
|
||||
#define RTE_STD_C11
|
||||
#endif
|
||||
|
||||
#ifdef RTE_ARCH_STRICT_ALIGN
|
||||
typedef uint64_t unaligned_uint64_t __attribute__ ((aligned(1)));
|
||||
typedef uint32_t unaligned_uint32_t __attribute__ ((aligned(1)));
|
||||
|
@ -76,6 +76,7 @@ struct rte_devargs {
|
||||
TAILQ_ENTRY(rte_devargs) next;
|
||||
/** Type of device. */
|
||||
enum rte_devtype type;
|
||||
RTE_STD_C11
|
||||
union {
|
||||
/** Used if type is RTE_DEVTYPE_*_PCI. */
|
||||
struct {
|
||||
|
@ -34,6 +34,8 @@
|
||||
#ifndef _RTE_INTERRUPTS_H_
|
||||
#define _RTE_INTERRUPTS_H_
|
||||
|
||||
#include <rte_common.h>
|
||||
|
||||
/**
|
||||
* @file
|
||||
*
|
||||
|
@ -104,6 +104,7 @@ typedef uint64_t phys_addr_t; /**< Physical address definition. */
|
||||
*/
|
||||
struct rte_memseg {
|
||||
phys_addr_t phys_addr; /**< Start physical address. */
|
||||
RTE_STD_C11
|
||||
union {
|
||||
void *addr; /**< Start virtual address. */
|
||||
uint64_t addr_64; /**< Makes sure addr is always 64 bits */
|
||||
|
@ -53,6 +53,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <rte_memory.h>
|
||||
#include <rte_common.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@ -78,6 +79,7 @@ struct rte_memzone {
|
||||
char name[RTE_MEMZONE_NAMESIZE]; /**< Name of the memory zone. */
|
||||
|
||||
phys_addr_t phys_addr; /**< Start physical address. */
|
||||
RTE_STD_C11
|
||||
union {
|
||||
void *addr; /**< Start virtual address. */
|
||||
uint64_t addr_64; /**< Makes sure addr is always 64-bits */
|
||||
|
@ -82,6 +82,7 @@ struct rte_epoll_event {
|
||||
|
||||
/** Handle for interrupts. */
|
||||
struct rte_intr_handle {
|
||||
RTE_STD_C11
|
||||
union {
|
||||
int vfio_dev_fd; /**< VFIO device file descriptor */
|
||||
int uio_cfg_fd; /**< UIO config file descriptor
|
||||
|
@ -61,6 +61,9 @@
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/if.h>
|
||||
#define RTE_STD_C11
|
||||
#else
|
||||
#include <rte_common.h>
|
||||
#endif
|
||||
|
||||
/**
|
||||
@ -85,6 +88,7 @@ enum rte_kni_req_id {
|
||||
*/
|
||||
struct rte_kni_request {
|
||||
uint32_t req_id; /**< Request id */
|
||||
RTE_STD_C11
|
||||
union {
|
||||
uint32_t new_mtu; /**< New MTU */
|
||||
uint8_t if_up; /**< 1: interface up, 0: interface down */
|
||||
|
@ -54,6 +54,7 @@ extern "C" {
|
||||
#include <stdint.h>
|
||||
#include <rte_byteorder.h>
|
||||
#include <rte_ip.h>
|
||||
#include <rte_common.h>
|
||||
|
||||
#ifdef __SSE3__
|
||||
#include <rte_vect.h>
|
||||
@ -102,6 +103,7 @@ static const __m128i rte_thash_ipv6_bswap_mask = {
|
||||
struct rte_ipv4_tuple {
|
||||
uint32_t src_addr;
|
||||
uint32_t dst_addr;
|
||||
RTE_STD_C11
|
||||
union {
|
||||
struct {
|
||||
uint16_t dport;
|
||||
@ -119,6 +121,7 @@ struct rte_ipv4_tuple {
|
||||
struct rte_ipv6_tuple {
|
||||
uint8_t src_addr[16];
|
||||
uint8_t dst_addr[16];
|
||||
RTE_STD_C11
|
||||
union {
|
||||
struct {
|
||||
uint16_t dport;
|
||||
|
@ -100,6 +100,7 @@ struct rte_lpm_tbl_entry_v20 {
|
||||
* a group index pointing to a tbl8 structure (tbl24 only, when
|
||||
* valid_group is set)
|
||||
*/
|
||||
RTE_STD_C11
|
||||
union {
|
||||
uint8_t next_hop;
|
||||
uint8_t group_idx;
|
||||
|
@ -787,6 +787,7 @@ struct rte_mbuf {
|
||||
* or non-atomic) is controlled by the CONFIG_RTE_MBUF_REFCNT_ATOMIC
|
||||
* config option.
|
||||
*/
|
||||
RTE_STD_C11
|
||||
union {
|
||||
rte_atomic16_t refcnt_atomic; /**< Atomically accessed refcnt */
|
||||
uint16_t refcnt; /**< Non-atomically accessed refcnt */
|
||||
@ -806,6 +807,7 @@ struct rte_mbuf {
|
||||
* would have RTE_PTYPE_L2_ETHER and not RTE_PTYPE_L2_VLAN because the
|
||||
* vlan is stripped from the data.
|
||||
*/
|
||||
RTE_STD_C11
|
||||
union {
|
||||
uint32_t packet_type; /**< L2/L3/L4 and tunnel information. */
|
||||
struct {
|
||||
@ -827,6 +829,7 @@ struct rte_mbuf {
|
||||
union {
|
||||
uint32_t rss; /**< RSS hash result if RSS enabled */
|
||||
struct {
|
||||
RTE_STD_C11
|
||||
union {
|
||||
struct {
|
||||
uint16_t hash;
|
||||
@ -854,6 +857,7 @@ struct rte_mbuf {
|
||||
/* second cache line - fields only used in slow path or on TX */
|
||||
MARKER cacheline1 __rte_cache_min_aligned;
|
||||
|
||||
RTE_STD_C11
|
||||
union {
|
||||
void *userdata; /**< Can be used for external metadata */
|
||||
uint64_t udata64; /**< Allow 8-byte userdata on 32-bit */
|
||||
@ -863,6 +867,7 @@ struct rte_mbuf {
|
||||
struct rte_mbuf *next; /**< Next segment of scattered packet. */
|
||||
|
||||
/* fields to support TX offloads */
|
||||
RTE_STD_C11
|
||||
union {
|
||||
uint64_t tx_offload; /**< combined for easy fetch */
|
||||
__extension__
|
||||
|
@ -75,6 +75,7 @@
|
||||
#include <rte_branch_prediction.h>
|
||||
#include <rte_ring.h>
|
||||
#include <rte_memcpy.h>
|
||||
#include <rte_common.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@ -216,6 +217,7 @@ struct rte_mempool {
|
||||
* RTE_MEMPOOL_NAMESIZE next time the ABI changes
|
||||
*/
|
||||
char name[RTE_MEMZONE_NAMESIZE]; /**< Name of mempool. */
|
||||
RTE_STD_C11
|
||||
union {
|
||||
void *pool_data; /**< Ring or pool to store objects. */
|
||||
uint64_t pool_id; /**< External mempool identifier. */
|
||||
|
@ -87,6 +87,7 @@ extern "C" {
|
||||
|
||||
#include <rte_port.h>
|
||||
#include <rte_table.h>
|
||||
#include <rte_common.h>
|
||||
|
||||
struct rte_mbuf;
|
||||
|
||||
@ -244,6 +245,7 @@ struct rte_pipeline_table_entry {
|
||||
/** Reserved action */
|
||||
enum rte_pipeline_action action;
|
||||
|
||||
RTE_STD_C11
|
||||
union {
|
||||
/** Output port ID (meta-data for "Send packet to output port"
|
||||
action) */
|
||||
|
@ -66,6 +66,7 @@
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
#include <rte_common.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@ -91,6 +92,7 @@ enum rte_timer_type {
|
||||
* config) and an owner (the id of the lcore that owns the timer).
|
||||
*/
|
||||
union rte_timer_status {
|
||||
RTE_STD_C11
|
||||
struct {
|
||||
uint16_t state; /**< Stop, pending, running, config. */
|
||||
int16_t owner; /**< The lcore that owns the timer. */
|
||||
|
Loading…
Reference in New Issue
Block a user