.\" Generated by the Allegro makedoc utility .TH cpu_capabilities 3alleg4 "version 4.4.3" "Allegro" "Allegro manual" .SH NAME cpu_capabilities \- Contains the capability flags of the CPU. Allegro game programming library.\& .SH SYNOPSIS .B #include .sp .B extern int cpu_capabilities; .SH DESCRIPTION Contains CPU flags indicating what features are available on the current CPU. The flags can be any combination of these: .nf 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. .fi 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: .nf if ((cpu_capabilities & (CPU_FPU | CPU_MMX)) == (CPU_FPU | CPU_MMX)) { printf("CPU has both an FPU and MMX instructions!\\n"); } .fi You can read this variable after you have called check_cpu() (which is automatically called by allegro_init()). .SH SEE ALSO .BR check_cpu (3alleg4), .BR cpu_vendor (3alleg4), .BR cpu_family (3alleg4), .BR cpu_model (3alleg4), .BR cpu_capabilities (3alleg4), .BR allegro_init (3alleg4)