int acpi_get_cpuid(acpi_handle handle, int type, u32 acpi_id) { #ifdef CONFIG_SMP int i; #endif int apic_id = -1; apic_id = map_mat_entry(handle, type, acpi_id); if (apic_id == -1) apic_id = map_madt_entry(type, acpi_id); if (apic_id == -1) { if (acpi_id == 0) return acpi_id; else return apic_id; } #ifdef CONFIG_SMP for_each_possible_cpu(i) { if (cpu_physical_id(i) == apic_id) return i; } #else if (apic_id == 0) return apic_id; #endif return -1; }
phys_cpuid_t acpi_get_phys_id(acpi_handle handle, int type, u32 acpi_id) { phys_cpuid_t phys_id; phys_id = map_mat_entry(handle, type, acpi_id); if (invalid_phys_cpuid(phys_id)) phys_id = map_madt_entry(get_madt_table(), type, acpi_id); return phys_id; }
int acpi_get_apicid(acpi_handle handle, int type, u32 acpi_id) { int apic_id; apic_id = map_mat_entry(handle, type, acpi_id); if (apic_id == -1) apic_id = map_madt_entry(type, acpi_id); return apic_id; }
int acpi_get_phys_id(acpi_handle handle, int type, u32 acpi_id) { int phys_id; phys_id = map_mat_entry(handle, type, acpi_id); if (phys_id == -1) phys_id = map_madt_entry(type, acpi_id); return phys_id; }
int acpi_get_cpuid(acpi_handle handle, int type, u32 acpi_id) { #ifdef CONFIG_SMP int i; #endif int apic_id = -1; apic_id = map_mat_entry(handle, type, acpi_id); if (apic_id == -1) apic_id = map_madt_entry(type, acpi_id); if (apic_id == -1) { /* * On UP processor, there is no _MAT or MADT table. * So above apic_id is always set to -1. * * BIOS may define multiple CPU handles even for UP processor. * For example, * * Scope (_PR) * { * Processor (CPU0, 0x00, 0x00000410, 0x06) {} * Processor (CPU1, 0x01, 0x00000410, 0x06) {} * Processor (CPU2, 0x02, 0x00000410, 0x06) {} * Processor (CPU3, 0x03, 0x00000410, 0x06) {} * } * * Ignores apic_id and always returns 0 for the processor * handle with acpi id 0 if nr_cpu_ids is 1. * This should be the case if SMP tables are not found. * Return -1 for other CPU's handle. */ if (nr_cpu_ids <= 1 && acpi_id == 0) return acpi_id; else return apic_id; } #ifdef CONFIG_SMP for_each_possible_cpu(i) { if (cpu_physical_id(i) == apic_id) return i; } #else /* In UP kernel, only processor 0 is valid */ if (apic_id == 0) return apic_id; #endif return -1; }
static int get_cpu_id(acpi_handle handle, int type, u32 acpi_id) { int i; int apic_id = -1; apic_id = map_mat_entry(handle, type, acpi_id); if (apic_id == -1) apic_id = map_madt_entry(type, acpi_id); if (apic_id == -1) return apic_id; for_each_possible_cpu(i) { if (cpu_physical_id(i) == apic_id) return i; } return -1; }