blob: 2dd1fe13a37b36aacfeca12733178f62a89ba309 [file] [log] [blame]
Paul Gortmakere6830142016-07-13 20:18:57 -04001#include <linux/types.h>
2#include <linux/export.h>
Borislav Petkov99f925c2015-11-23 11:12:21 +01003
4unsigned int x86_family(unsigned int sig)
5{
6 unsigned int x86;
7
8 x86 = (sig >> 8) & 0xf;
9
10 if (x86 == 0xf)
11 x86 += (sig >> 20) & 0xff;
12
13 return x86;
14}
15EXPORT_SYMBOL_GPL(x86_family);
16
17unsigned int x86_model(unsigned int sig)
18{
19 unsigned int fam, model;
20
Jia Zhangb3991512018-01-01 09:52:10 +080021 fam = x86_family(sig);
Borislav Petkov99f925c2015-11-23 11:12:21 +010022
23 model = (sig >> 4) & 0xf;
24
25 if (fam >= 0x6)
26 model += ((sig >> 16) & 0xf) << 4;
27
28 return model;
29}
30EXPORT_SYMBOL_GPL(x86_model);
31
32unsigned int x86_stepping(unsigned int sig)
33{
34 return sig & 0xf;
35}
36EXPORT_SYMBOL_GPL(x86_stepping);