linux/arch/x86/lib/msr-smp.c

// SPDX-License-Identifier: GPL-2.0
#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))
{}

/* rdmsr on a bunch of CPUs
 *
 * @mask:       which CPUs
 * @msr_no:     which MSR
 * @msrs:       array of MSR values
 *
 */
void rdmsr_on_cpus(const struct cpumask *mask, u32 msr_no, struct msr __percpu *msrs)
{}
EXPORT_SYMBOL();

/*
 * wrmsr on a bunch of CPUs
 *
 * @mask:       which CPUs
 * @msr_no:     which MSR
 * @msrs:       array of MSR values
 *
 */
void wrmsr_on_cpus(const struct cpumask *mask, u32 msr_no, struct msr __percpu *msrs)
{}
EXPORT_SYMBOL();

struct msr_info_completion {};

/* These "safe" variants are slower and should be used when the target MSR
   may not actually exist. */
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();

/*
 * These variants are significantly slower, but allows control over
 * the entire 32-bit GPR set.
 */
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();