X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fasm-i386%2Fsmp.h;h=61d3ab9db70cd7c9559907e5c0106962b110ede6;hb=9464c7cf61b9433057924c36e6e02f303a00e768;hp=bd8fa4cd9cec2ca10f90b6ec0b2b80179c3615e1;hpb=4787a2b4442f377fc7a90c965fdbb4e84d3fe8e7;p=linux-2.6.git diff --git a/include/asm-i386/smp.h b/include/asm-i386/smp.h index bd8fa4cd9..61d3ab9db 100644 --- a/include/asm-i386/smp.h +++ b/include/asm-i386/smp.h @@ -35,25 +35,33 @@ extern void smp_alloc_memory(void); extern int pic_mode; extern int smp_num_siblings; extern cpumask_t cpu_sibling_map[]; +extern cpumask_t cpu_core_map[]; -extern void smp_flush_tlb(void); -extern void dump_send_ipi(void); -extern void smp_message_irq(int cpl, void *dev_id, struct pt_regs *regs); -extern void smp_invalidate_rcv(void); /* Process an NMI */ extern void (*mtrr_hook) (void); extern void zap_low_mappings (void); +extern void lock_ipi_call_lock(void); +extern void unlock_ipi_call_lock(void); #define MAX_APICID 256 +extern u8 x86_cpu_to_apicid[]; + +#define cpu_physical_id(cpu) x86_cpu_to_apicid[cpu] + +#ifdef CONFIG_HOTPLUG_CPU +extern void cpu_exit_clear(void); +extern void cpu_uninit(void); +#endif /* * This function is needed by all SMP systems. It must _always_ be valid * from the initial startup. We map APIC_BASE very early in page_setup(), * so this is correct in the x86 case. */ -#define smp_processor_id() (current_thread_info()->cpu) +#define raw_smp_processor_id() (current_thread_info()->cpu) extern cpumask_t cpu_callout_map; -#define cpu_possible_map cpu_callout_map +extern cpumask_t cpu_callin_map; +extern cpumask_t cpu_possible_map; /* We don't mark CPUs online until __cpu_up(), so we need another measure */ static inline int num_booting_cpus(void) @@ -61,9 +69,6 @@ static inline int num_booting_cpus(void) return cpus_weight(cpu_callout_map); } -extern void map_cpu_to_logical_apicid(void); -extern void unmap_cpu_to_logical_apicid(int cpu); - #ifdef CONFIG_X86_LOCAL_APIC #ifdef APIC_DEFINITION @@ -84,8 +89,15 @@ static __inline int logical_smp_processor_id(void) } #endif + +extern int __cpu_disable(void); +extern void __cpu_die(unsigned int cpu); #endif /* !__ASSEMBLY__ */ +#else /* CONFIG_SMP */ + +#define cpu_physical_id(cpu) boot_cpu_physical_apicid + #define NO_PROC_ID 0xFF /* No processor magic marker */ #endif