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