summaryrefslogtreecommitdiff
path: root/include/libcpu/cpuModel.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/libcpu/cpuModel.h')
-rw-r--r--include/libcpu/cpuModel.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/include/libcpu/cpuModel.h b/include/libcpu/cpuModel.h
new file mode 100644
index 0000000000..d17839b7ea
--- /dev/null
+++ b/include/libcpu/cpuModel.h
@@ -0,0 +1,51 @@
+/*
+ * This file contains declaration for variables and code
+ * that may be used to get the Intel Cpu identification
+ * that has been performed by checkCPUtypeSetCr0 function.
+ */
+
+/*
+ * COPYRIGHT (c) 1998 valette@crf.canon.fr
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.org/license/LICENSE.
+ */
+
+#ifndef libcpu_cpuModel_h
+#define libcpu_cpuModel_h
+
+/*
+ * Tell us the machine setup..
+ */
+
+extern char hard_math; /* floating point coprocessor present indicator */
+extern char x86; /* type of cpu (3 = 386, 4 =486, ...) */
+extern char x86_model;
+extern char x86_mask;
+extern int x86_capability; /* cpuid:EDX */
+extern int x86_capability_x; /* cpuid:ECX */
+extern int x86_capability_ebx; /* cpuid:EBX */
+extern int x86_capability_cores; /* cpuid.(EAX=4, ECX=0) - physical cores */
+extern char x86_vendor_id[13];
+extern int have_cpuid;
+extern unsigned char Cx86_step; /* cyrix processor identification */
+
+/* Display this information on console in ascii form */
+extern void printCpuInfo(void);
+
+/* determine if the CPU has a TSC */
+#define x86_has_tsc() \
+ (x86_capability & (1 << 4))
+
+static inline unsigned long long
+rdtsc(void)
+{
+ /* Return the value of the on-chip cycle counter. */
+ unsigned long long result;
+ __asm__ volatile(".byte 0x0F, 0x31" : "=A" (result));
+ return result;
+} /* rdtsc */
+
+
+#endif