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
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 * -----------------------------------------------------------------------
32 * A CPUID demo program using libcom32
45 openconsole(&dev_stdcon_r
, &dev_stdcon_w
);
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
);
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! ");
92 if (cpu
.flags
.smp
) printf("yes\n");