core: do aligned transfers in bcopy32
[syslinux.git] / com32 / modules / cpuidtest.c
blobcf07f2073fc074006f8067f75e5ff236481b13c5
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;
45 openconsole(&dev_stdcon_r, &dev_stdcon_w);
47 for (;;) {
48 detect_cpu(&cpu);
49 printf("Vendor = %s\n",cpu.vendor);
50 printf("Model = %s\n",cpu.model);
51 printf("Vendor ID = %d\n",cpu.vendor_id);
52 printf("Family = %d\n",cpu.family);
53 printf("Model ID = %d\n",cpu.model_id);
54 printf("Stepping = %d\n",cpu.stepping);
55 printf("Flags = ");
56 if (cpu.flags.fpu) printf("fpu ");
57 if (cpu.flags.vme) printf("vme ");
58 if (cpu.flags.de) printf("de ");
59 if (cpu.flags.pse) printf("pse ");
60 if (cpu.flags.tsc) printf("tsc ");
61 if (cpu.flags.msr) printf("msr ");
62 if (cpu.flags.pae) printf("pae ");
63 if (cpu.flags.mce) printf("mce ");
64 if (cpu.flags.cx8) printf("cx8 ");
65 if (cpu.flags.apic) printf("apic ");
66 if (cpu.flags.sep) printf("sep ");
67 if (cpu.flags.mtrr) printf("mtrr ");
68 if (cpu.flags.pge) printf("pge ");
69 if (cpu.flags.mca) printf("mca ");
70 if (cpu.flags.cmov) printf("cmov ");
71 if (cpu.flags.pat) printf("pat ");
72 if (cpu.flags.pse_36) printf("pse_36 ");
73 if (cpu.flags.psn) printf("psn ");
74 if (cpu.flags.clflsh) printf("clflsh ");
75 if (cpu.flags.dts) printf("dts ");
76 if (cpu.flags.acpi) printf("acpi ");
77 if (cpu.flags.mmx) printf("mmx ");
78 if (cpu.flags.sse) printf("sse ");
79 if (cpu.flags.sse2) printf("sse2 ");
80 if (cpu.flags.ss) printf("ss ");
81 if (cpu.flags.htt) printf("ht ");
82 if (cpu.flags.acc) printf("acc ");
83 if (cpu.flags.syscall) printf("syscall ");
84 if (cpu.flags.mp) printf("mp ");
85 if (cpu.flags.nx) printf("nx ");
86 if (cpu.flags.mmxext) printf("mmxext ");
87 if (cpu.flags.lm) printf("lm ");
88 if (cpu.flags.nowext) printf("3dnowext ");
89 if (cpu.flags.now) printf("3dnow! ");
90 printf("\n");
91 printf("SMP = ");
92 if (cpu.flags.smp) printf("yes\n");
93 else printf("no\n");
94 break;
97 return 0;