Adding upstream version 6.02~pre8+dfsg.
[syslinux-debian/hramrach.git] / com32 / modules / cpuidtest.c
blobd00256fa105776eb00afd697e86494e533563a0c
1 /* ----------------------------------------------------------------------- *
3 * Copyright 2006 Erwan Velu - All Rights Reserved
5 * Permission is hereby granted, free of charge, to any person
6 * obtaining a copy of this software and associated documentation
7 * files (the "Software"), to deal in the Software without
8 * restriction, including without limitation the rights to use,
9 * copy, modify, merge, publish, distribute, sublicense, and/or
10 * sell copies of the Software, and to permit persons to whom
11 * the Software is furnished to do so, subject to the following
12 * conditions:
14 * The above copyright notice and this permission notice shall
15 * be included in all copies or substantial portions of the Software.
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
19 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
21 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24 * OTHER DEALINGS IN THE SOFTWARE.
26 * -----------------------------------------------------------------------
30 * cpuidtest.c
32 * A CPUID demo program using libcom32
35 #include <string.h>
36 #include <stdio.h>
37 #include <console.h>
38 #include "cpuid.h"
40 char display_line;
42 int main(void)
44 s_cpu cpu;
46 for (;;) {
47 detect_cpu(&cpu);
48 printf("Vendor = %s\n", cpu.vendor);
49 printf("Model = %s\n", cpu.model);
50 printf("Vendor ID = %d\n", cpu.vendor_id);
51 printf("Family = %d\n", cpu.family);
52 printf("Model ID = %d\n", cpu.model_id);
53 printf("Stepping = %d\n", cpu.stepping);
54 printf("Flags = ");
55 if (cpu.flags.fpu)
56 printf("fpu ");
57 if (cpu.flags.vme)
58 printf("vme ");
59 if (cpu.flags.de)
60 printf("de ");
61 if (cpu.flags.pse)
62 printf("pse ");
63 if (cpu.flags.tsc)
64 printf("tsc ");
65 if (cpu.flags.msr)
66 printf("msr ");
67 if (cpu.flags.pae)
68 printf("pae ");
69 if (cpu.flags.mce)
70 printf("mce ");
71 if (cpu.flags.cx8)
72 printf("cx8 ");
73 if (cpu.flags.apic)
74 printf("apic ");
75 if (cpu.flags.sep)
76 printf("sep ");
77 if (cpu.flags.mtrr)
78 printf("mtrr ");
79 if (cpu.flags.pge)
80 printf("pge ");
81 if (cpu.flags.mca)
82 printf("mca ");
83 if (cpu.flags.cmov)
84 printf("cmov ");
85 if (cpu.flags.pat)
86 printf("pat ");
87 if (cpu.flags.pse_36)
88 printf("pse_36 ");
89 if (cpu.flags.psn)
90 printf("psn ");
91 if (cpu.flags.clflsh)
92 printf("clflsh ");
93 if (cpu.flags.dts)
94 printf("dts ");
95 if (cpu.flags.acpi)
96 printf("acpi ");
97 if (cpu.flags.mmx)
98 printf("mmx ");
99 if (cpu.flags.sse)
100 printf("sse ");
101 if (cpu.flags.sse2)
102 printf("sse2 ");
103 if (cpu.flags.ss)
104 printf("ss ");
105 if (cpu.flags.htt)
106 printf("ht ");
107 if (cpu.flags.acc)
108 printf("acc ");
109 if (cpu.flags.syscall)
110 printf("syscall ");
111 if (cpu.flags.mp)
112 printf("mp ");
113 if (cpu.flags.nx)
114 printf("nx ");
115 if (cpu.flags.mmxext)
116 printf("mmxext ");
117 if (cpu.flags.lm)
118 printf("lm ");
119 if (cpu.flags.nowext)
120 printf("3dnowext ");
121 if (cpu.flags.now)
122 printf("3dnow! ");
123 if (cpu.flags.vmx)
124 printf("vmx ");
125 if (cpu.flags.svm)
126 printf("svm ");
127 printf("\n");
128 printf("SMP = ");
129 if (cpu.flags.smp)
130 printf("yes\n");
131 else
132 printf("no\n");
133 break;
136 return 0;