File: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/cmpxchg_64.h

Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.

       1: #ifndef _ASM_X86_CMPXCHG_64_H
       2: #define _ASM_X86_CMPXCHG_64_H
       3: 
       4: static inline void set_64bit(volatile u64 *ptr, u64 val)
       5: {
       6:     *ptr = val;
       7: }
       8: 
       9: #define __HAVE_ARCH_CMPXCHG 1
      10: 
      11: #define cmpxchg64(ptr, o, n)                        \
      12: ({                                    \
      13:     BUILD_BUG_ON(sizeof(*(ptr)) != 8);                \
      14:     cmpxchg((ptr), (o), (n));                    \
      15: })
      16: 
      17: #define cmpxchg64_local(ptr, o, n)                    \
      18: ({                                    \
      19:     BUILD_BUG_ON(sizeof(*(ptr)) != 8);                \
      20:     cmpxchg_local((ptr), (o), (n));                    \
      21: })
      22: 
      23: #define system_has_cmpxchg_double() cpu_has_cx16
      24: 
      25: #endif /* _ASM_X86_CMPXCHG_64_H */
      26: