Line data Source code
1 : /* 2 : * Common functions shared between the various APIC flavours 3 : * 4 : * SPDX-License-Identifier: GPL-2.0 5 : */ 6 : #include <linux/irq.h> 7 : #include <asm/apic.h> 8 : 9 0 : u32 apic_default_calc_apicid(unsigned int cpu) 10 : { 11 0 : return per_cpu(x86_cpu_to_apicid, cpu); 12 : } 13 : 14 18 : u32 apic_flat_calc_apicid(unsigned int cpu) 15 : { 16 18 : return 1U << cpu; 17 : } 18 : 19 0 : bool default_check_apicid_used(physid_mask_t *map, int apicid) 20 : { 21 0 : return physid_isset(apicid, *map); 22 : } 23 : 24 0 : void default_ioapic_phys_id_map(physid_mask_t *phys_map, physid_mask_t *retmap) 25 : { 26 0 : *retmap = *phys_map; 27 0 : } 28 : 29 6 : int default_cpu_present_to_apicid(int mps_cpu) 30 : { 31 12 : if (mps_cpu < nr_cpu_ids && cpu_present(mps_cpu)) 32 6 : return (int)per_cpu(x86_bios_cpu_apicid, mps_cpu); 33 : else 34 0 : return BAD_APICID; 35 : } 36 : EXPORT_SYMBOL_GPL(default_cpu_present_to_apicid); 37 : 38 1 : int default_check_phys_apicid_present(int phys_apicid) 39 : { 40 1 : return physid_isset(phys_apicid, phys_cpu_present_map); 41 : } 42 : 43 4 : int default_apic_id_valid(u32 apicid) 44 : { 45 4 : return (apicid < 255); 46 : }