From c84c1906b78b767902bf9d8f18ae8a21d2f1f114 Mon Sep 17 00:00:00 2001 From: Eric Biederman Date: Thu, 14 Oct 2004 20:13:01 +0000 Subject: - Renamed cpu header files git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1659 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/include/cpu/x86/msr.h | 52 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/include/cpu/x86/msr.h (limited to 'src/include/cpu/x86/msr.h') diff --git a/src/include/cpu/x86/msr.h b/src/include/cpu/x86/msr.h new file mode 100644 index 0000000000..4f481bdf4b --- /dev/null +++ b/src/include/cpu/x86/msr.h @@ -0,0 +1,52 @@ +#ifndef CPU_X86_MSR_H +#define CPU_X86_MSR_H + + +#ifdef __ROMCC__ + +typedef __builtin_msr_t msr_t; + +static msr_t rdmsr(unsigned long index) +{ + return __builtin_rdmsr(index); +} + +static void wrmsr(unsigned long index, msr_t msr) +{ + __builtin_wrmsr(index, msr.lo, msr.hi); +} + +#endif /* __ROMCC__ */ + +#if defined(__GNUC__) && !defined(__ROMCC__) + +typedef struct msr_struct +{ + unsigned lo; + unsigned hi; +} msr_t; + +static inline msr_t rdmsr(unsigned index) +{ + msr_t result; + __asm__ __volatile__ ( + "rdmsr" + : "=a" (result.lo), "=d" (result.hi) + : "c" (index) + ); + return result; +} + +static inline void wrmsr(unsigned index, msr_t msr) +{ + __asm__ __volatile__ ( + "wrmsr" + : /* No outputs */ + : "c" (index), "a" (msr.lo), "d" (msr.hi) + ); +} + +#endif /* __GNUC__ */ + + +#endif /* CPU_X86_MSR_H */ -- cgit v1.2.3