kernel/eka/include/nkern/nk_cpu.h
changeset 90 947f0dc9f7a8
parent 36 538db54a451d
child 109 b3a1d9898418
equal deleted inserted replaced
52:2d65c2f76d7b 90:947f0dc9f7a8
   667 #define INTS_ON(rd, rCpsr, newInts) 				INTS_ON_1(rd, rCpsr, newInts); INTS_ON_2(rd, rCpsr, newInts)
   667 #define INTS_ON(rd, rCpsr, newInts) 				INTS_ON_1(rd, rCpsr, newInts); INTS_ON_2(rd, rCpsr, newInts)
   668 #define INTS_OFF(rd, rCpsr, newInts) 				INTS_OFF_1(rd, rCpsr, newInts); INTS_OFF_2(rd, rCpsr, newInts)
   668 #define INTS_OFF(rd, rCpsr, newInts) 				INTS_OFF_1(rd, rCpsr, newInts); INTS_OFF_2(rd, rCpsr, newInts)
   669 
   669 
   670 #define	__chill()
   670 #define	__chill()
   671 
   671 
       
   672 #ifdef 	__CPU_ARM_HAS_WFE_SEV
       
   673 
       
   674 extern "C" void __arm_wfe();
       
   675 extern "C" void __arm_sev();
       
   676 
       
   677 #define	__snooze()	__arm_wfe()
       
   678 #define	__holler()	__arm_sev()
       
   679 #else
       
   680 #define	__snooze()
       
   681 #define	__holler()
       
   682 #endif
       
   683 
   672 #if defined(__SMP__) && !defined(__CPU_ARM_HAS_LDREX_STREX_V6K)
   684 #if defined(__SMP__) && !defined(__CPU_ARM_HAS_LDREX_STREX_V6K)
   673 #error SMP not allowed without v6K
   685 #error SMP not allowed without v6K
   674 #endif
   686 #endif
   675 #if defined(__SMP__) && !defined(__CPU_HAS_CP15_THREAD_ID_REG)
   687 #if defined(__SMP__) && !defined(__CPU_HAS_CP15_THREAD_ID_REG)
   676 #error SMP not allowed without thread ID registers
   688 #error SMP not allowed without thread ID registers
   693 	#define	X86_PAUSE	__asm__ __volatile__("pause ");
   705 	#define	X86_PAUSE	__asm__ __volatile__("pause ");
   694 	#define	__chill()	__asm__ __volatile__("pause ")
   706 	#define	__chill()	__asm__ __volatile__("pause ")
   695 #else
   707 #else
   696 #error Unknown x86 compiler
   708 #error Unknown x86 compiler
   697 #endif
   709 #endif
       
   710 
       
   711 #define	__snooze()	__chill()
       
   712 #define	__holler()
   698 
   713 
   699 #if defined(__cplusplus)
   714 #if defined(__cplusplus)
   700 extern "C" {
   715 extern "C" {
   701 #endif
   716 #endif
   702 #if defined(__VC32__)
   717 #if defined(__VC32__)