#define pr_fmt(fmt) …
#include <linux/acpi.h>
#include <linux/cpu.h>
#include <linux/device.h>
#include <linux/dmi.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/platform_device.h>
#include <acpi/processor.h>
#include <asm/cpu.h>
#include <xen/xen.h>
#include "internal.h"
DEFINE_PER_CPU(struct acpi_processor *, processors);
EXPORT_PER_CPU_SYMBOL(…);
struct acpi_processor_errata errata __read_mostly;
EXPORT_SYMBOL_GPL(…);
acpi_handle acpi_get_processor_handle(int cpu)
{ … }
static int acpi_processor_errata_piix4(struct pci_dev *dev)
{ … }
static int acpi_processor_errata(void)
{ … }
static void cpufreq_add_device(const char *name)
{ … }
#ifdef CONFIG_X86
static void __init acpi_pcc_cpufreq_init(void)
{ … }
#else
static void __init acpi_pcc_cpufreq_init(void) {}
#endif
static DEFINE_PER_CPU(void *, processor_device_array);
static int acpi_processor_set_per_cpu(struct acpi_processor *pr,
struct acpi_device *device)
{ … }
#ifdef CONFIG_ACPI_HOTPLUG_CPU
static int acpi_processor_hotadd_init(struct acpi_processor *pr,
struct acpi_device *device)
{ … }
#else
static inline int acpi_processor_hotadd_init(struct acpi_processor *pr,
struct acpi_device *device)
{
return -ENODEV;
}
#endif
static int acpi_processor_get_info(struct acpi_device *device)
{ … }
static int acpi_processor_add(struct acpi_device *device,
const struct acpi_device_id *id)
{ … }
#ifdef CONFIG_ACPI_HOTPLUG_CPU
static void acpi_processor_post_eject(struct acpi_device *device)
{ … }
#endif
#ifdef CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC
bool __init processor_physically_present(acpi_handle handle)
{ … }
static u8 sb_uuid_str[] = …;
static acpi_status __init acpi_processor_osc(acpi_handle handle, u32 lvl,
void *context, void **rv)
{ … }
static bool __init acpi_early_processor_osc(void)
{ … }
void __init acpi_early_processor_control_setup(void)
{ … }
#endif
static const struct acpi_device_id processor_device_ids[] = …;
static struct acpi_scan_handler processor_handler = …;
static int acpi_processor_container_attach(struct acpi_device *dev,
const struct acpi_device_id *id)
{ … }
static const struct acpi_device_id processor_container_ids[] = …;
static struct acpi_scan_handler processor_container_handler = …;
static int nr_unique_ids __initdata;
static int nr_duplicate_ids;
static int unique_processor_ids[] __initdata = …;
static int duplicate_processor_ids[] = …;
static void __init processor_validated_ids_update(int proc_id)
{ … }
static acpi_status __init acpi_processor_ids_walk(acpi_handle handle,
u32 lvl,
void *context,
void **rv)
{ … }
static void __init acpi_processor_check_duplicates(void)
{ … }
bool acpi_duplicate_processor_id(int proc_id)
{ … }
void __init acpi_processor_init(void)
{ … }
#ifdef CONFIG_ACPI_PROCESSOR_CSTATE
bool acpi_processor_claim_cst_control(void)
{ … }
EXPORT_SYMBOL_GPL(…);
int acpi_processor_evaluate_cst(acpi_handle handle, u32 cpu,
struct acpi_processor_power *info)
{ … }
EXPORT_SYMBOL_GPL(…);
#endif