yading@10
|
1 /*
|
yading@10
|
2 * This file is part of MPlayer.
|
yading@10
|
3 *
|
yading@10
|
4 * MPlayer is free software; you can redistribute it and/or modify
|
yading@10
|
5 * it under the terms of the GNU General Public License as published by
|
yading@10
|
6 * the Free Software Foundation; either version 2 of the License, or
|
yading@10
|
7 * (at your option) any later version.
|
yading@10
|
8 *
|
yading@10
|
9 * MPlayer is distributed in the hope that it will be useful,
|
yading@10
|
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
yading@10
|
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
yading@10
|
12 * GNU General Public License for more details.
|
yading@10
|
13 *
|
yading@10
|
14 * You should have received a copy of the GNU General Public License along
|
yading@10
|
15 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
|
yading@10
|
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
yading@10
|
17 */
|
yading@10
|
18
|
yading@10
|
19 #ifndef MPLAYER_CPUDETECT_H
|
yading@10
|
20 #define MPLAYER_CPUDETECT_H
|
yading@10
|
21
|
yading@10
|
22 #define CPUTYPE_I386 3
|
yading@10
|
23 #define CPUTYPE_I486 4
|
yading@10
|
24 #define CPUTYPE_I586 5
|
yading@10
|
25 #define CPUTYPE_I686 6
|
yading@10
|
26
|
yading@10
|
27 #include "libavutil/x86_cpu.h"
|
yading@10
|
28
|
yading@10
|
29 typedef struct cpucaps_s {
|
yading@10
|
30 int cpuType;
|
yading@10
|
31 int cpuModel;
|
yading@10
|
32 int cpuStepping;
|
yading@10
|
33 int hasMMX;
|
yading@10
|
34 int hasMMX2;
|
yading@10
|
35 int has3DNow;
|
yading@10
|
36 int has3DNowExt;
|
yading@10
|
37 int hasSSE;
|
yading@10
|
38 int hasSSE2;
|
yading@10
|
39 int hasSSE3;
|
yading@10
|
40 int hasSSSE3;
|
yading@10
|
41 int hasSSE4;
|
yading@10
|
42 int hasSSE42;
|
yading@10
|
43 int hasSSE4a;
|
yading@10
|
44 int hasAVX;
|
yading@10
|
45 int isX86;
|
yading@10
|
46 unsigned cl_size; /* size of cache line */
|
yading@10
|
47 int hasAltiVec;
|
yading@10
|
48 int hasTSC;
|
yading@10
|
49 } CpuCaps;
|
yading@10
|
50
|
yading@10
|
51 extern CpuCaps ff_gCpuCaps;
|
yading@10
|
52
|
yading@10
|
53 void ff_do_cpuid(unsigned int ax, unsigned int *p);
|
yading@10
|
54
|
yading@10
|
55 void ff_GetCpuCaps(CpuCaps *caps);
|
yading@10
|
56
|
yading@10
|
57 /* returned value is malloc()'ed so free() it after use */
|
yading@10
|
58 char *ff_GetCpuFriendlyName(unsigned int regs[], unsigned int regs2[]);
|
yading@10
|
59
|
yading@10
|
60 #endif /* MPLAYER_CPUDETECT_H */
|