Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.32-rc5 85 lines 1.9 kB view raw
1#ifndef __ASM_SH_IRQFLAGS_64_H 2#define __ASM_SH_IRQFLAGS_64_H 3 4#include <cpu/registers.h> 5 6#define SR_MASK_LL 0x00000000000000f0LL 7#define SR_BL_LL 0x0000000010000000LL 8 9static inline void raw_local_irq_enable(void) 10{ 11 unsigned long long __dummy0, __dummy1 = ~SR_MASK_LL; 12 13 __asm__ __volatile__("getcon " __SR ", %0\n\t" 14 "and %0, %1, %0\n\t" 15 "putcon %0, " __SR "\n\t" 16 : "=&r" (__dummy0) 17 : "r" (__dummy1)); 18} 19 20static inline void raw_local_irq_disable(void) 21{ 22 unsigned long long __dummy0, __dummy1 = SR_MASK_LL; 23 24 __asm__ __volatile__("getcon " __SR ", %0\n\t" 25 "or %0, %1, %0\n\t" 26 "putcon %0, " __SR "\n\t" 27 : "=&r" (__dummy0) 28 : "r" (__dummy1)); 29} 30 31static inline void set_bl_bit(void) 32{ 33 unsigned long long __dummy0, __dummy1 = SR_BL_LL; 34 35 __asm__ __volatile__("getcon " __SR ", %0\n\t" 36 "or %0, %1, %0\n\t" 37 "putcon %0, " __SR "\n\t" 38 : "=&r" (__dummy0) 39 : "r" (__dummy1)); 40 41} 42 43static inline void clear_bl_bit(void) 44{ 45 unsigned long long __dummy0, __dummy1 = ~SR_BL_LL; 46 47 __asm__ __volatile__("getcon " __SR ", %0\n\t" 48 "and %0, %1, %0\n\t" 49 "putcon %0, " __SR "\n\t" 50 : "=&r" (__dummy0) 51 : "r" (__dummy1)); 52} 53 54static inline unsigned long __raw_local_save_flags(void) 55{ 56 unsigned long long __dummy = SR_MASK_LL; 57 unsigned long flags; 58 59 __asm__ __volatile__ ( 60 "getcon " __SR ", %0\n\t" 61 "and %0, %1, %0" 62 : "=&r" (flags) 63 : "r" (__dummy)); 64 65 return flags; 66} 67 68static inline unsigned long __raw_local_irq_save(void) 69{ 70 unsigned long long __dummy0, __dummy1 = SR_MASK_LL; 71 unsigned long flags; 72 73 __asm__ __volatile__ ( 74 "getcon " __SR ", %1\n\t" 75 "or %1, r63, %0\n\t" 76 "or %1, %2, %1\n\t" 77 "putcon %1, " __SR "\n\t" 78 "and %0, %2, %0" 79 : "=&r" (flags), "=&r" (__dummy0) 80 : "r" (__dummy1)); 81 82 return flags; 83} 84 85#endif /* __ASM_SH_IRQFLAGS_64_H */