mirror of
https://xff.cz/git/u-boot/
synced 2025-10-27 08:33:10 +01:00
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: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -175,6 +175,25 @@ static inline int wrmsr_safe_regs(u32 regs[8])
|
|||||||
return native_wrmsr_safe_regs(regs);
|
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) \
|
#define rdtscl(low) \
|
||||||
((low) = (u32)__native_read_tsc())
|
((low) = (u32)__native_read_tsc())
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user