18c2ecf20Sopenharmony_ci/* 28c2ecf20Sopenharmony_ci * Common functions shared between the various APIC flavours 38c2ecf20Sopenharmony_ci * 48c2ecf20Sopenharmony_ci * SPDX-License-Identifier: GPL-2.0 58c2ecf20Sopenharmony_ci */ 68c2ecf20Sopenharmony_ci#include <linux/irq.h> 78c2ecf20Sopenharmony_ci#include <asm/apic.h> 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ciu32 apic_default_calc_apicid(unsigned int cpu) 108c2ecf20Sopenharmony_ci{ 118c2ecf20Sopenharmony_ci return per_cpu(x86_cpu_to_apicid, cpu); 128c2ecf20Sopenharmony_ci} 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ciu32 apic_flat_calc_apicid(unsigned int cpu) 158c2ecf20Sopenharmony_ci{ 168c2ecf20Sopenharmony_ci return 1U << cpu; 178c2ecf20Sopenharmony_ci} 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_cibool default_check_apicid_used(physid_mask_t *map, int apicid) 208c2ecf20Sopenharmony_ci{ 218c2ecf20Sopenharmony_ci return physid_isset(apicid, *map); 228c2ecf20Sopenharmony_ci} 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_civoid default_ioapic_phys_id_map(physid_mask_t *phys_map, physid_mask_t *retmap) 258c2ecf20Sopenharmony_ci{ 268c2ecf20Sopenharmony_ci *retmap = *phys_map; 278c2ecf20Sopenharmony_ci} 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ciint default_cpu_present_to_apicid(int mps_cpu) 308c2ecf20Sopenharmony_ci{ 318c2ecf20Sopenharmony_ci if (mps_cpu < nr_cpu_ids && cpu_present(mps_cpu)) 328c2ecf20Sopenharmony_ci return (int)per_cpu(x86_bios_cpu_apicid, mps_cpu); 338c2ecf20Sopenharmony_ci else 348c2ecf20Sopenharmony_ci return BAD_APICID; 358c2ecf20Sopenharmony_ci} 368c2ecf20Sopenharmony_ciEXPORT_SYMBOL_GPL(default_cpu_present_to_apicid); 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ciint default_check_phys_apicid_present(int phys_apicid) 398c2ecf20Sopenharmony_ci{ 408c2ecf20Sopenharmony_ci return physid_isset(phys_apicid, phys_cpu_present_map); 418c2ecf20Sopenharmony_ci} 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ciint default_apic_id_valid(u32 apicid) 448c2ecf20Sopenharmony_ci{ 458c2ecf20Sopenharmony_ci return (apicid < 255); 468c2ecf20Sopenharmony_ci} 47