#include <linux/export.h>
#include <linux/preempt.h>
#include <linux/smp.h>
#include <linux/completion.h>
#include <asm/msr.h>
static void __rdmsr_on_cpu(void *info)
{ … }
static void __wrmsr_on_cpu(void *info)
{ … }
int rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h)
{ … }
EXPORT_SYMBOL(…);
int rdmsrl_on_cpu(unsigned int cpu, u32 msr_no, u64 *q)
{ … }
EXPORT_SYMBOL(…);
int wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h)
{ … }
EXPORT_SYMBOL(…);
int wrmsrl_on_cpu(unsigned int cpu, u32 msr_no, u64 q)
{ … }
EXPORT_SYMBOL(…);
static void __rwmsr_on_cpus(const struct cpumask *mask, u32 msr_no,
struct msr __percpu *msrs,
void (*msr_func) (void *info))
{ … }
void rdmsr_on_cpus(const struct cpumask *mask, u32 msr_no, struct msr __percpu *msrs)
{ … }
EXPORT_SYMBOL(…);
void wrmsr_on_cpus(const struct cpumask *mask, u32 msr_no, struct msr __percpu *msrs)
{ … }
EXPORT_SYMBOL(…);
struct msr_info_completion { … };
static void __rdmsr_safe_on_cpu(void *info)
{ … }
static void __wrmsr_safe_on_cpu(void *info)
{ … }
int rdmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h)
{ … }
EXPORT_SYMBOL(…);
int wrmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h)
{ … }
EXPORT_SYMBOL(…);
int wrmsrl_safe_on_cpu(unsigned int cpu, u32 msr_no, u64 q)
{ … }
EXPORT_SYMBOL(…);
int rdmsrl_safe_on_cpu(unsigned int cpu, u32 msr_no, u64 *q)
{ … }
EXPORT_SYMBOL(…);
static void __rdmsr_safe_regs_on_cpu(void *info)
{ … }
static void __wrmsr_safe_regs_on_cpu(void *info)
{ … }
int rdmsr_safe_regs_on_cpu(unsigned int cpu, u32 regs[8])
{ … }
EXPORT_SYMBOL(…);
int wrmsr_safe_regs_on_cpu(unsigned int cpu, u32 regs[8])
{ … }
EXPORT_SYMBOL(…);