* Forward declaration of enum in C++ requires explicit underlying
type definitions.
* This fixes the issue at:
http://dpdk.org/ml/archives/dev/2015-April/017065.html
include/generic/rte_cpuflags.h:50:6:
error: use of enum ‘rte_cpu_flag_t’ without previous declaration
enum rte_cpu_flag_t;
include/generic/rte_cpuflags.h:55:6:
error: use of enum ‘cpu_register_t’ without previous declaration
enum cpu_register_t;
Signed-off-by: Joongi Kim <joongi@an.kaist.ac.kr>
[Thomas: fix extended to ppc and tile]
#define AT_HWCAP2 26
/* software based registers */
#define AT_HWCAP2 26
/* software based registers */
+enum cpu_register_t __RTE_REGISTER_UNDERLYING_TYPE {
REG_HWCAP = 0,
REG_HWCAP2,
};
REG_HWCAP = 0,
REG_HWCAP2,
};
/**
* Enumeration of all CPU features supported
*/
/**
* Enumeration of all CPU features supported
*/
+enum rte_cpu_flag_t __RTE_CPUFLAG_UNDERLYING_TYPE {
RTE_CPUFLAG_PPC_LE = 0,
RTE_CPUFLAG_TRUE_LE,
RTE_CPUFLAG_PSERIES_PERFMON_COMPAT,
RTE_CPUFLAG_PPC_LE = 0,
RTE_CPUFLAG_TRUE_LE,
RTE_CPUFLAG_PSERIES_PERFMON_COMPAT,
#include "generic/rte_cpuflags.h"
/* software based registers */
#include "generic/rte_cpuflags.h"
/* software based registers */
+enum cpu_register_t __RTE_REGISTER_UNDERLYING_TYPE {
REG_DUMMY = 0
};
/**
* Enumeration of all CPU features supported
*/
REG_DUMMY = 0
};
/**
* Enumeration of all CPU features supported
*/
+enum rte_cpu_flag_t __RTE_CPUFLAG_UNDERLYING_TYPE {
RTE_CPUFLAG_NUMFLAGS /**< This should always be the last! */
};
RTE_CPUFLAG_NUMFLAGS /**< This should always be the last! */
};
#include "generic/rte_cpuflags.h"
#include "generic/rte_cpuflags.h"
+enum rte_cpu_flag_t __RTE_CPUFLAG_UNDERLYING_TYPE {
/* (EAX 01h) ECX features*/
RTE_CPUFLAG_SSE3 = 0, /**< SSE3 */
RTE_CPUFLAG_PCLMULQDQ, /**< PCLMULQDQ */
/* (EAX 01h) ECX features*/
RTE_CPUFLAG_SSE3 = 0, /**< SSE3 */
RTE_CPUFLAG_PCLMULQDQ, /**< PCLMULQDQ */
RTE_CPUFLAG_NUMFLAGS, /**< This should always be the last! */
};
RTE_CPUFLAG_NUMFLAGS, /**< This should always be the last! */
};
+enum cpu_register_t __RTE_REGISTER_UNDERLYING_TYPE {
RTE_REG_EAX = 0,
RTE_REG_EBX,
RTE_REG_ECX,
RTE_REG_EAX = 0,
RTE_REG_EBX,
RTE_REG_ECX,
#include <errno.h>
#include <stdint.h>
#include <errno.h>
#include <stdint.h>
+#ifdef __cplusplus
+#define __RTE_CPUFLAG_UNDERLYING_TYPE : unsigned int
+#define __RTE_REGISTER_UNDERLYING_TYPE : unsigned int
+#else
+#define __RTE_CPUFLAG_UNDERLYING_TYPE
+#define __RTE_REGISTER_UNDERLYING_TYPE
+#endif
+
/**
* Enumeration of all CPU features supported
*/
/**
* Enumeration of all CPU features supported
*/
+enum rte_cpu_flag_t __RTE_CPUFLAG_UNDERLYING_TYPE;
/**
* Enumeration of CPU registers
*/
/**
* Enumeration of CPU registers
*/
+enum cpu_register_t __RTE_REGISTER_UNDERLYING_TYPE;
typedef uint32_t cpuid_registers_t[4];
typedef uint32_t cpuid_registers_t[4];