DPDK  1.6.0r2
Enumerations | Functions
rte_cpuflags.h File Reference

Enumerations

enum  rte_cpu_flag_t {
  RTE_CPUFLAG_SSE3 = 0, RTE_CPUFLAG_PCLMULQDQ, RTE_CPUFLAG_DTES64, RTE_CPUFLAG_MONITOR,
  RTE_CPUFLAG_DS_CPL, RTE_CPUFLAG_VMX, RTE_CPUFLAG_SMX, RTE_CPUFLAG_EIST,
  RTE_CPUFLAG_TM2, RTE_CPUFLAG_SSSE3, RTE_CPUFLAG_CNXT_ID, RTE_CPUFLAG_FMA,
  RTE_CPUFLAG_CMPXCHG16B, RTE_CPUFLAG_XTPR, RTE_CPUFLAG_PDCM, RTE_CPUFLAG_PCID,
  RTE_CPUFLAG_DCA, RTE_CPUFLAG_SSE4_1, RTE_CPUFLAG_SSE4_2, RTE_CPUFLAG_X2APIC,
  RTE_CPUFLAG_MOVBE, RTE_CPUFLAG_POPCNT, RTE_CPUFLAG_TSC_DEADLINE, RTE_CPUFLAG_AES,
  RTE_CPUFLAG_XSAVE, RTE_CPUFLAG_OSXSAVE, RTE_CPUFLAG_AVX, RTE_CPUFLAG_F16C,
  RTE_CPUFLAG_RDRAND, RTE_CPUFLAG_FPU, RTE_CPUFLAG_VME, RTE_CPUFLAG_DE,
  RTE_CPUFLAG_PSE, RTE_CPUFLAG_TSC, RTE_CPUFLAG_MSR, RTE_CPUFLAG_PAE,
  RTE_CPUFLAG_MCE, RTE_CPUFLAG_CX8, RTE_CPUFLAG_APIC, RTE_CPUFLAG_SEP,
  RTE_CPUFLAG_MTRR, RTE_CPUFLAG_PGE, RTE_CPUFLAG_MCA, RTE_CPUFLAG_CMOV,
  RTE_CPUFLAG_PAT, RTE_CPUFLAG_PSE36, RTE_CPUFLAG_PSN, RTE_CPUFLAG_CLFSH,
  RTE_CPUFLAG_DS, RTE_CPUFLAG_ACPI, RTE_CPUFLAG_MMX, RTE_CPUFLAG_FXSR,
  RTE_CPUFLAG_SSE, RTE_CPUFLAG_SSE2, RTE_CPUFLAG_SS, RTE_CPUFLAG_HTT,
  RTE_CPUFLAG_TM, RTE_CPUFLAG_PBE, RTE_CPUFLAG_DIGTEMP, RTE_CPUFLAG_TRBOBST,
  RTE_CPUFLAG_ARAT, RTE_CPUFLAG_PLN, RTE_CPUFLAG_ECMD, RTE_CPUFLAG_PTM,
  RTE_CPUFLAG_MPERF_APERF_MSR, RTE_CPUFLAG_ACNT2, RTE_CPUFLAG_ENERGY_EFF, RTE_CPUFLAG_FSGSBASE,
  RTE_CPUFLAG_BMI1, RTE_CPUFLAG_HLE, RTE_CPUFLAG_AVX2, RTE_CPUFLAG_SMEP,
  RTE_CPUFLAG_BMI2, RTE_CPUFLAG_ERMS, RTE_CPUFLAG_INVPCID, RTE_CPUFLAG_RTM,
  RTE_CPUFLAG_LAHF_SAHF, RTE_CPUFLAG_LZCNT, RTE_CPUFLAG_SYSCALL, RTE_CPUFLAG_XD,
  RTE_CPUFLAG_1GB_PG, RTE_CPUFLAG_RDTSCP, RTE_CPUFLAG_EM64T, RTE_CPUFLAG_INVTSC,
  RTE_CPUFLAG_NUMFLAGS
}

Functions

int rte_cpu_get_flag_enabled (enum rte_cpu_flag_t flag)
void rte_cpu_check_supported (void)

Detailed Description

Simple API to determine available CPU features at runtime.

Enumeration Type Documentation

Enumeration of all CPU features supported

Enumerator:
RTE_CPUFLAG_SSE3 

SSE3

RTE_CPUFLAG_PCLMULQDQ 

PCLMULQDQ

RTE_CPUFLAG_DTES64 

DTES64

RTE_CPUFLAG_MONITOR 

MONITOR

RTE_CPUFLAG_DS_CPL 

DS_CPL

RTE_CPUFLAG_VMX 

VMX

RTE_CPUFLAG_SMX 

SMX

RTE_CPUFLAG_EIST 

EIST

RTE_CPUFLAG_TM2 

TM2

RTE_CPUFLAG_SSSE3 

SSSE3

RTE_CPUFLAG_CNXT_ID 

CNXT_ID

RTE_CPUFLAG_FMA 

FMA

RTE_CPUFLAG_CMPXCHG16B 

CMPXCHG16B

RTE_CPUFLAG_XTPR 

XTPR

RTE_CPUFLAG_PDCM 

PDCM

RTE_CPUFLAG_PCID 

PCID

RTE_CPUFLAG_DCA 

DCA

RTE_CPUFLAG_SSE4_1 

SSE4_1

RTE_CPUFLAG_SSE4_2 

SSE4_2

RTE_CPUFLAG_X2APIC 

X2APIC

RTE_CPUFLAG_MOVBE 

MOVBE

RTE_CPUFLAG_POPCNT 

POPCNT

RTE_CPUFLAG_TSC_DEADLINE 

TSC_DEADLINE

RTE_CPUFLAG_AES 

AES

RTE_CPUFLAG_XSAVE 

XSAVE

RTE_CPUFLAG_OSXSAVE 

OSXSAVE

RTE_CPUFLAG_AVX 

AVX

RTE_CPUFLAG_F16C 

F16C

RTE_CPUFLAG_RDRAND 

RDRAND

RTE_CPUFLAG_FPU 

FPU

RTE_CPUFLAG_VME 

VME

RTE_CPUFLAG_DE 

DE

RTE_CPUFLAG_PSE 

PSE

RTE_CPUFLAG_TSC 

TSC

RTE_CPUFLAG_MSR 

MSR

RTE_CPUFLAG_PAE 

PAE

RTE_CPUFLAG_MCE 

MCE

RTE_CPUFLAG_CX8 

CX8

RTE_CPUFLAG_APIC 

APIC

RTE_CPUFLAG_SEP 

SEP

RTE_CPUFLAG_MTRR 

MTRR

RTE_CPUFLAG_PGE 

PGE

RTE_CPUFLAG_MCA 

MCA

RTE_CPUFLAG_CMOV 

CMOV

RTE_CPUFLAG_PAT 

PAT

RTE_CPUFLAG_PSE36 

PSE36

RTE_CPUFLAG_PSN 

PSN

RTE_CPUFLAG_CLFSH 

CLFSH

RTE_CPUFLAG_DS 

DS

RTE_CPUFLAG_ACPI 

ACPI

RTE_CPUFLAG_MMX 

MMX

RTE_CPUFLAG_FXSR 

FXSR

RTE_CPUFLAG_SSE 

SSE

RTE_CPUFLAG_SSE2 

SSE2

RTE_CPUFLAG_SS 

SS

RTE_CPUFLAG_HTT 

HTT

RTE_CPUFLAG_TM 

TM

RTE_CPUFLAG_PBE 

PBE

RTE_CPUFLAG_DIGTEMP 

DIGTEMP

RTE_CPUFLAG_TRBOBST 

TRBOBST

RTE_CPUFLAG_ARAT 

ARAT

RTE_CPUFLAG_PLN 

PLN

RTE_CPUFLAG_ECMD 

ECMD

RTE_CPUFLAG_PTM 

PTM

RTE_CPUFLAG_MPERF_APERF_MSR 

MPERF_APERF_MSR

RTE_CPUFLAG_ACNT2 

ACNT2

RTE_CPUFLAG_ENERGY_EFF 

ENERGY_EFF

RTE_CPUFLAG_FSGSBASE 

FSGSBASE

RTE_CPUFLAG_BMI1 

BMI1

RTE_CPUFLAG_HLE 

Hardware Lock elision

RTE_CPUFLAG_AVX2 

AVX2

RTE_CPUFLAG_SMEP 

SMEP

RTE_CPUFLAG_BMI2 

BMI2

RTE_CPUFLAG_ERMS 

ERMS

RTE_CPUFLAG_INVPCID 

INVPCID

RTE_CPUFLAG_RTM 

Transactional memory

RTE_CPUFLAG_LAHF_SAHF 

LAHF_SAHF

RTE_CPUFLAG_LZCNT 

LZCNT

RTE_CPUFLAG_SYSCALL 

SYSCALL

RTE_CPUFLAG_XD 

XD

RTE_CPUFLAG_1GB_PG 

1GB_PG

RTE_CPUFLAG_RDTSCP 

RDTSCP

RTE_CPUFLAG_EM64T 

EM64T

RTE_CPUFLAG_INVTSC 

INVTSC

RTE_CPUFLAG_NUMFLAGS 

This should always be the last!

Function Documentation

void rte_cpu_check_supported ( void  )

This function checks that the currently used CPU supports the CPU features that were specified at compile time. It is called automatically within the EAL, so does not need to be used by applications.

int rte_cpu_get_flag_enabled ( enum rte_cpu_flag_t  flag)

Function for checking a CPU flag availability

Parameters
flagCPU flag to query CPU for
Returns
1 if flag is available 0 if flag is not available -ENOENT if flag is invalid