提交 eddbad22 编写于 作者: S Simon Glass

x86: Add msr read/write functions that use a structure

It is convenient to be able to adjust MSRs with a structure that splits the
two 32-bit halves into separate fields, as they are often dealt with
separately. Add a few functions to support this.
Signed-off-by: NSimon Glass <sjg@chromium.org>
上级 3f70a6f5
......@@ -175,6 +175,25 @@ static inline int wrmsr_safe_regs(u32 regs[8])
return native_wrmsr_safe_regs(regs);
}
typedef struct msr_t {
uint32_t lo;
uint32_t hi;
} msr_t;
static inline struct msr_t msr_read(unsigned msr_num)
{
struct msr_t msr;
rdmsr(msr_num, msr.lo, msr.hi);
return msr;
}
static inline void msr_write(unsigned msr_num, msr_t msr)
{
wrmsr(msr_num, msr.lo, msr.hi);
}
#define rdtscl(low) \
((low) = (u32)__native_read_tsc())
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册