2005-04-17 02:20:36 +04:00
/* smp.h: Sparc64 specific SMP stuff.
*
* Copyright ( C ) 1996 David S . Miller ( davem @ caip . rutgers . edu )
*/
# ifndef _SPARC64_SMP_H
# define _SPARC64_SMP_H
# include <linux/threads.h>
# include <asm/asi.h>
# include <asm/starfire.h>
# include <asm/spitfire.h>
# ifndef __ASSEMBLY__
# include <linux/cpumask.h>
# include <linux/cache.h>
# endif /* !(__ASSEMBLY__) */
# ifdef CONFIG_SMP
# ifndef __ASSEMBLY__
/*
* Private routines / data
*/
# include <asm/bitops.h>
# include <asm/atomic.h>
extern cpumask_t phys_cpu_present_map ;
# define cpu_possible_map phys_cpu_present_map
2006-03-09 03:09:19 +03:00
extern cpumask_t cpu_sibling_map [ NR_CPUS ] ;
2007-06-05 04:01:39 +04:00
extern cpumask_t cpu_core_map [ NR_CPUS ] ;
2007-06-05 08:48:33 +04:00
extern int sparc64_multi_core ;
2006-03-09 03:09:19 +03:00
2005-04-17 02:20:36 +04:00
/*
* General functions that each host system must provide .
*/
2006-02-27 10:27:19 +03:00
extern int hard_smp_processor_id ( void ) ;
2005-06-22 04:14:34 +04:00
# define raw_smp_processor_id() (current_thread_info()->cpu)
2005-04-17 02:20:36 +04:00
2007-05-26 02:49:59 +04:00
extern void smp_fill_in_sib_core_maps ( void ) ;
2007-02-22 17:24:10 +03:00
extern unsigned char boot_cpu_id ;
2006-02-26 00:39:56 +03:00
2005-04-17 02:20:36 +04:00
# endif /* !(__ASSEMBLY__) */
2006-02-26 00:39:56 +03:00
# else
2007-05-09 13:33:25 +04:00
# define hard_smp_processor_id() 0
2007-05-26 02:49:59 +04:00
# define smp_fill_in_sib_core_maps() do { } while (0)
2007-02-22 17:24:10 +03:00
# define boot_cpu_id (0)
2006-02-26 00:39:56 +03:00
2005-04-17 02:20:36 +04:00
# endif /* !(CONFIG_SMP) */
# endif /* !(_SPARC64_SMP_H) */