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

Linux/Unix编程

开发平台:

Unix_Linux

  1. #ifndef __ASM_ARM_SYSTEM_H
  2. #define __ASM_ARM_SYSTEM_H
  3. #ifdef __KERNEL__
  4. #include <linux/config.h>
  5. #include <linux/kernel.h>
  6. /* information about the system we're running on */
  7. extern unsigned int system_rev;
  8. extern unsigned int system_serial_low;
  9. extern unsigned int system_serial_high;
  10. extern unsigned int mem_fclk_21285;
  11. /*
  12.  * This tells us if we have an ISA bridge
  13.  * present in a PCI system.
  14.  */
  15. #ifdef CONFIG_PCI
  16. extern int have_isa_bridge;
  17. #else
  18. #define have_isa_bridge (0)
  19. #endif
  20. #include <asm/proc-fns.h>
  21. #define xchg(ptr,x) 
  22. ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr))))
  23. #define tas(ptr) (xchg((ptr),1))
  24. extern asmlinkage void __backtrace(void);
  25. /*
  26.  * Include processor dependent parts
  27.  */
  28. #include <asm/proc/system.h>
  29. #define mb() __asm__ __volatile__ ("" : : : "memory")
  30. #define rmb() mb()
  31. #define wmb() mb()
  32. #define nop() __asm__ __volatile__("movtr0,r0t@ nopnt");
  33. #define prepare_to_switch()    do { } while(0)
  34. /*
  35.  * switch_to(prev, next) should switch from task `prev' to `next'
  36.  * `prev' will never be the same as `next'.
  37.  * The `mb' is to tell GCC not to cache `current' across this call.
  38.  */
  39. extern struct task_struct *__switch_to(struct task_struct *prev, struct task_struct *next);
  40. #define switch_to(prev,next,last)
  41. do {  
  42. last = __switch_to(prev,next);
  43. mb();
  44. } while (0)
  45. /* For spinlocks etc */
  46. #define local_irq_save(x) __save_flags_cli(x)
  47. #define local_irq_restore(x) __restore_flags(x)
  48. #define local_irq_disable() __cli()
  49. #define local_irq_enable() __sti()
  50. #ifdef CONFIG_SMP
  51. #error SMP not supported
  52. #define smp_mb() mb()
  53. #define smp_rmb() rmb()
  54. #define smp_wmb() wmb()
  55. #else
  56. #define smp_mb() barrier()
  57. #define smp_rmb() barrier()
  58. #define smp_wmb() barrier()
  59. #define cli() __cli()
  60. #define sti() __sti()
  61. #define clf() __clf()
  62. #define stf() __stf()
  63. #define save_flags(x) __save_flags(x)
  64. #define restore_flags(x) __restore_flags(x)
  65. #define save_flags_cli(x) __save_flags_cli(x)
  66. #endif /* CONFIG_SMP */
  67. #endif /* __KERNEL__ */
  68. #endif