SMP_MAX_CPUS
uint32 hartIds[SMP_MAX_CPUS];
uint32 plicContexts[SMP_MAX_CPUS];
uint32 cpu_apic_id[SMP_MAX_CPUS];
uint32 cpu_apic_version[SMP_MAX_CPUS];
addr_range cpu_kstack[SMP_MAX_CPUS];
static const int kArraySize = ROUNDUP(SMP_MAX_CPUS, kArrayBits) / kArrayBits;
static acpi_cpuidle_driver_info *sAcpiProcessor[SMP_MAX_CPUS];
if (gKernelArgs.num_cpus == SMP_MAX_CPUS) {
SMP_MAX_CPUS));
if (gKernelArgs.num_cpus == SMP_MAX_CPUS) {
SMP_MAX_CPUS));
static platform_cpu_info sCpus[SMP_MAX_CPUS];
if (newCount > SMP_MAX_CPUS) {
static platform_cpu_info sCpus[SMP_MAX_CPUS];
if (newCount > SMP_MAX_CPUS) {
if (newCount > SMP_MAX_CPUS) {
static platform_cpu_info sCpus[SMP_MAX_CPUS];
if (gKernelArgs.num_cpus == SMP_MAX_CPUS) {
SMP_MAX_CPUS);
static CpuInfo sCpus[SMP_MAX_CPUS];
(ROUNDUP(SMP_MAX_CPUS * TOTAL_SLOTS_PER_CPU + EXTRA_SLOTS, 1024) / 1024)
PhysicalPageOpsCPUData fPerCPUData[SMP_MAX_CPUS];
PhysicalPageOpsCPUData fPerCPUData[SMP_MAX_CPUS];
static ppc_cpu_exception_context sCPUExceptionContexts[SMP_MAX_CPUS];
static uint32 sPlicContexts[SMP_MAX_CPUS];
global_descriptor_table gGDTs[SMP_MAX_CPUS];
static interrupt_descriptor_table sIDTs[SMP_MAX_CPUS];
= kFirstTSS + SMP_MAX_CPUS * 3;
static uint32 sCPUAPICIds[SMP_MAX_CPUS];
static uint32 sAPICVersions[SMP_MAX_CPUS];
ASSERT(cpu >= 0 && cpu < SMP_MAX_CPUS);
(ROUNDUP(SMP_MAX_CPUS * TOTAL_SLOTS_PER_CPU + EXTRA_SLOTS, 1024) / 1024)
(ROUNDUP(SMP_MAX_CPUS * TOTAL_SLOTS_PER_CPU + EXTRA_SLOTS, \
PhysicalPageOpsCPUData fPerCPUData[SMP_MAX_CPUS];
cpu_ent gCPU[SMP_MAX_CPUS];
static bool sCPUTrapped[SMP_MAX_CPUS];
static arch_debug_registers sDebugRegisters[SMP_MAX_CPUS];
static heap_allocator *sHeaps[HEAP_CLASS_COUNT * SMP_MAX_CPUS];
static uint32 *sLastGrowRequest[HEAP_CLASS_COUNT * SMP_MAX_CPUS];
static uint32 *sLastHandledGrowRequest[HEAP_CLASS_COUNT * SMP_MAX_CPUS];
bool fReentered[SMP_MAX_CPUS];
CPUProfileData fCPUData[SMP_MAX_CPUS];
static timer sProfilingTimers[SMP_MAX_CPUS];
FunctionEntry* fFunctionStacks[SMP_MAX_CPUS];
uint32 fFunctionStackPointers[SMP_MAX_CPUS];
static struct smp_msg* sCPUMessages[SMP_MAX_CPUS] = { NULL, };
static Thread sIdleThreads[SMP_MAX_CPUS];
static per_cpu_timer_data sPerCPU[SMP_MAX_CPUS];
if (cpu >= SMP_MAX_CPUS)
static dummy_spinlock cpu_msg_spinlock[SMP_MAX_CPUS];
static dummy_smp_msg* smp_msgs[SMP_MAX_CPUS];