X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=sidebyside;f=lib%2Flibrte_eal%2Fcommon%2Finclude%2Fgeneric%2Frte_cpuflags.h;h=c1da357cd48047551bebff020bcc9e2477e566e5;hb=954d6cf5741e2a3efb7f97852833a1ee0a1f165a;hp=a04e0211fc8af19450e545236ee1d4280b44aceb;hpb=9e46f6c5d8823a7ac0ca17371d266ed0697158ad;p=dpdk.git diff --git a/lib/librte_eal/common/include/generic/rte_cpuflags.h b/lib/librte_eal/common/include/generic/rte_cpuflags.h index a04e0211fc..c1da357cd4 100644 --- a/lib/librte_eal/common/include/generic/rte_cpuflags.h +++ b/lib/librte_eal/common/include/generic/rte_cpuflags.h @@ -39,10 +39,7 @@ * Architecture specific API to determine available CPU features at runtime. */ -#include -#include #include -#include /** * Enumeration of all CPU features supported @@ -50,41 +47,16 @@ enum rte_cpu_flag_t; /** - * Enumeration of CPU registers - */ -enum cpu_register_t; - -typedef uint32_t cpuid_registers_t[4]; - -#define CPU_FLAG_NAME_MAX_LEN 64 - -/** - * Struct to hold a processor feature entry - */ -struct feature_entry { - uint32_t leaf; /**< cpuid leaf */ - uint32_t subleaf; /**< cpuid subleaf */ - uint32_t reg; /**< cpuid register */ - uint32_t bit; /**< cpuid register bit */ - char name[CPU_FLAG_NAME_MAX_LEN]; /**< String for printing */ -}; - -#define FEAT_DEF(name, leaf, subleaf, reg, bit) \ - [RTE_CPUFLAG_##name] = {leaf, subleaf, reg, bit, #name }, - -/** - * An array that holds feature entries - */ -static const struct feature_entry cpu_feature_table[]; - -/** - * Execute CPUID instruction and get contents of a specific register + * Get name of CPU flag * - * This function, when compiled with GCC, will generate architecture-neutral - * code, as per GCC manual. + * @param feature + * CPU flag ID + * @return + * flag name + * NULL if flag ID is invalid */ -static inline void -rte_cpu_get_features(uint32_t leaf, uint32_t subleaf, cpuid_registers_t out); +const char * +rte_cpu_get_flag_name(enum rte_cpu_flag_t feature); /** * Function for checking a CPU flag availability @@ -96,7 +68,7 @@ rte_cpu_get_features(uint32_t leaf, uint32_t subleaf, cpuid_registers_t out); * 0 if flag is not available * -ENOENT if flag is invalid */ -static inline int +int rte_cpu_get_flag_enabled(enum rte_cpu_flag_t feature); /**