linux/arch/x86/kernel/apic/apic_flat_64.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright 2004 James Cleverdon, IBM.
 *
 * Flat APIC subarch code.
 *
 * Hacked for x86-64 by James Cleverdon from i386 architecture code by
 * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and
 * James Cleverdon.
 */
#include <linux/cpumask.h>
#include <linux/export.h>
#include <linux/acpi.h>

#include <asm/jailhouse_para.h>
#include <asm/apic.h>

#include "local.h"

static struct apic apic_physflat;
static struct apic apic_flat;

struct apic *apic __ro_after_init =;
EXPORT_SYMBOL_GPL();

static int flat_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
{}

static void _flat_send_IPI_mask(unsigned long mask, int vector)
{}

static void flat_send_IPI_mask(const struct cpumask *cpumask, int vector)
{}

static void
flat_send_IPI_mask_allbutself(const struct cpumask *cpumask, int vector)
{}

static u32 flat_get_apic_id(u32 x)
{}

static int flat_probe(void)
{}

static struct apic apic_flat __ro_after_init =;

/*
 * Physflat mode is used when there are more than 8 CPUs on a system.
 * We cannot use logical delivery in this case because the mask
 * overflows, so use physical mode.
 */
static int physflat_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
{}

static int physflat_probe(void)
{}

static struct apic apic_physflat __ro_after_init =;

/*
 * We need to check for physflat first, so this order is important.
 */
apic_drivers(apic_physflat, apic_flat);