eal: move CPU flag functions out of headers
[dpdk.git] / lib / librte_eal / common / include / generic / rte_cpuflags.h
index a04e021..c1da357 100644 (file)
  * Architecture specific API to determine available CPU features at runtime.
  */
 
-#include <stdlib.h>
-#include <stdio.h>
 #include <errno.h>
-#include <stdint.h>
 
 /**
  * Enumeration of all CPU features supported
 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);
 
 /**