smp.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:1k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. #ifndef __ASM_SMP_H
  2. #define __ASM_SMP_H
  3. #include <linux/config.h>
  4. #if defined(CONFIG_SMP)
  5. /* Page Zero Location PDC will look for the address to branch to when we poke
  6. ** slave CPUs still in "Icache loop".
  7. */
  8. #define PDC_OS_BOOT_RENDEZVOUS     0x10
  9. #define PDC_OS_BOOT_RENDEZVOUS_HI  0x28
  10. #ifndef ASSEMBLY
  11. #include <linux/threads.h> /* for NR_CPUS */
  12. typedef unsigned long address_t;
  13. extern volatile unsigned long cpu_online_map;
  14. /*
  15.  * Private routines/data
  16.  *
  17.  * physical and logical are equivalent until we support CPU hotplug.
  18.  */
  19. #define cpu_number_map(cpu) (cpu)
  20. #define cpu_logical_map(cpu) (cpu)
  21. extern void smp_send_reschedule(int cpu);
  22. #endif /* !ASSEMBLY */
  23. /*
  24.  * This magic constant controls our willingness to transfer
  25.  *      a process across CPUs. Such a transfer incurs cache and tlb
  26.  *      misses. The current value is inherited from i386. Still needs
  27.  *      to be tuned for parisc.
  28.  */
  29.  
  30. #define PROC_CHANGE_PENALTY 15 /* Schedule penalty */
  31. #undef ENTRY_SYS_CPUS
  32. #ifdef ENTRY_SYS_CPUS
  33. #define STATE_RENDEZVOUS 0
  34. #define STATE_STOPPED  1 
  35. #define STATE_RUNNING 2
  36. #define STATE_HALTED 3
  37. #endif
  38. #define smp_processor_id() (current->processor)
  39. #endif /* CONFIG_SMP */
  40. #define NO_PROC_ID 0xFF /* No processor magic marker */
  41. #define ANY_PROC_ID 0xFF /* Any processor magic marker */
  42. #endif /*  __ASM_SMP_H */