home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-ppc / smp.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.8 KB  |  76 lines

  1. /* smp.h: PPC specific SMP stuff.
  2.  *
  3.  * Original was a copy of sparc smp.h.  Now heavily modified
  4.  * for PPC.
  5.  *
  6.  * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
  7.  * Copyright (C) 1996-2001 Cort Dougan <cort@fsmlabs.com>
  8.  */
  9. #ifdef __KERNEL__
  10. #ifndef _PPC_SMP_H
  11. #define _PPC_SMP_H
  12.  
  13. #include <linux/kernel.h>
  14. #include <linux/bitops.h>
  15. #include <linux/errno.h>
  16. #include <linux/cpumask.h>
  17. #include <linux/threads.h>
  18.  
  19. #ifdef CONFIG_SMP
  20.  
  21. #ifndef __ASSEMBLY__
  22.  
  23. struct cpuinfo_PPC {
  24.     unsigned long loops_per_jiffy;
  25.     unsigned long pvr;
  26.     unsigned long *pgd_cache;
  27.     unsigned long *pte_cache;
  28.     unsigned long pgtable_cache_sz;
  29. };
  30.  
  31. extern struct cpuinfo_PPC cpu_data[];
  32. extern cpumask_t cpu_online_map;
  33. extern cpumask_t cpu_possible_map;
  34. extern unsigned long smp_proc_in_lock[];
  35. extern volatile unsigned long cpu_callin_map[];
  36. extern int smp_tb_synchronized;
  37. extern struct smp_ops_t *smp_ops;
  38.  
  39. extern void smp_send_tlb_invalidate(int);
  40. extern void smp_send_xmon_break(int cpu);
  41. struct pt_regs;
  42. extern void smp_message_recv(int, struct pt_regs *);
  43.  
  44. extern int __cpu_disable(void);
  45. extern void __cpu_die(unsigned int cpu);
  46. extern void cpu_die(void) __attribute__((noreturn));
  47.  
  48. #define raw_smp_processor_id()    (current_thread_info()->cpu)
  49.  
  50. extern int __cpu_up(unsigned int cpu);
  51.  
  52. extern int smp_hw_index[];
  53. #define hard_smp_processor_id()     (smp_hw_index[smp_processor_id()])
  54. #define get_hard_smp_processor_id(cpu)    (smp_hw_index[(cpu)])
  55. #define set_hard_smp_processor_id(cpu, phys)\
  56.                     (smp_hw_index[(cpu)] = (phys))
  57.  
  58. #endif /* __ASSEMBLY__ */
  59.  
  60. #else /* !(CONFIG_SMP) */
  61.  
  62. static inline void cpu_die(void) { }
  63. #define get_hard_smp_processor_id(cpu) 0
  64. #define set_hard_smp_processor_id(cpu, phys)
  65. #define hard_smp_processor_id() 0
  66.  
  67. #endif /* !(CONFIG_SMP) */
  68.  
  69. #ifndef __ASSEMBLY__
  70. extern int boot_cpuid;
  71. extern int boot_cpuid_phys;
  72. #endif
  73.  
  74. #endif /* !(_PPC_SMP_H) */
  75. #endif /* __KERNEL__ */
  76.