yading@10: /* yading@10: * This file is part of MPlayer. yading@10: * yading@10: * MPlayer is free software; you can redistribute it and/or modify yading@10: * it under the terms of the GNU General Public License as published by yading@10: * the Free Software Foundation; either version 2 of the License, or yading@10: * (at your option) any later version. yading@10: * yading@10: * MPlayer is distributed in the hope that it will be useful, yading@10: * but WITHOUT ANY WARRANTY; without even the implied warranty of yading@10: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the yading@10: * GNU General Public License for more details. yading@10: * yading@10: * You should have received a copy of the GNU General Public License along yading@10: * with MPlayer; if not, write to the Free Software Foundation, Inc., yading@10: * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. yading@10: */ yading@10: yading@10: #ifndef MPLAYER_CPUDETECT_H yading@10: #define MPLAYER_CPUDETECT_H yading@10: yading@10: #define CPUTYPE_I386 3 yading@10: #define CPUTYPE_I486 4 yading@10: #define CPUTYPE_I586 5 yading@10: #define CPUTYPE_I686 6 yading@10: yading@10: #include "libavutil/x86_cpu.h" yading@10: yading@10: typedef struct cpucaps_s { yading@10: int cpuType; yading@10: int cpuModel; yading@10: int cpuStepping; yading@10: int hasMMX; yading@10: int hasMMX2; yading@10: int has3DNow; yading@10: int has3DNowExt; yading@10: int hasSSE; yading@10: int hasSSE2; yading@10: int hasSSE3; yading@10: int hasSSSE3; yading@10: int hasSSE4; yading@10: int hasSSE42; yading@10: int hasSSE4a; yading@10: int hasAVX; yading@10: int isX86; yading@10: unsigned cl_size; /* size of cache line */ yading@10: int hasAltiVec; yading@10: int hasTSC; yading@10: } CpuCaps; yading@10: yading@10: extern CpuCaps ff_gCpuCaps; yading@10: yading@10: void ff_do_cpuid(unsigned int ax, unsigned int *p); yading@10: yading@10: void ff_GetCpuCaps(CpuCaps *caps); yading@10: yading@10: /* returned value is malloc()'ed so free() it after use */ yading@10: char *ff_GetCpuFriendlyName(unsigned int regs[], unsigned int regs2[]); yading@10: yading@10: #endif /* MPLAYER_CPUDETECT_H */