Man Linux: Main Page and Category List

NAME

       cpu_capabilities  -  Contains  the capability flags of the CPU. Allegro
       game programming library.

SYNOPSIS

       #include <allegro.h>

       extern int cpu_capabilities;

DESCRIPTION

       Contains CPU flags  indicating  what  features  are  available  on  the
       current CPU. The flags can be any combination of these:

          CPU_ID       - Indicates that the "cpuid" instruction is
                         available. If this is set, then all Allegro CPU
                         variables are 100% reliable, otherwise there
                         may be some mistakes.
          CPU_FPU      - An FPU is available.
          CPU_IA64     - Running on Intel 64 bit CPU
          CPU_AMD64    - Running on AMD 64 bit CPU
          CPU_MMX      - Intel MMX  instruction set is available.
          CPU_MMXPLUS  - Intel MMX+ instruction set is available.
          CPU_SSE      - Intel SSE  instruction set is available.
          CPU_SSE2     - Intel SSE2 instruction set is available.
          CPU_SSE3     - Intel SSE3 instruction set is available.
          CPU_3DNOW    - AMD 3DNow! instruction set is available.
          CPU_ENH3DNOW - AMD Enhanced 3DNow! instruction set is
                         available.
          CPU_CMOV     - Pentium Pro "cmov" instruction is available.

       You  can check for multiple features by OR-ing the flags together.  For
       example, to check if the CPU has an FPU and MMX instructions available,
       you'd do:

          if ((cpu_capabilities & (CPU_FPU | CPU_MMX)) ==
              (CPU_FPU | CPU_MMX)) {
             printf("CPU has both an FPU and MMX instructions!\n");
          }

       You  can read this variable after you have called check_cpu() (which is
       automatically called by allegro_init()).

SEE ALSO

       check_cpu(3alleg),       cpu_vendor(3alleg),        cpu_family(3alleg),
       cpu_model(3alleg), cpu_capabilities(3alleg), allegro_init(3alleg)