Go to the documentation of this file.
15 #ifndef _ASM_TILE_BITOPS_64_H
16 #define _ASM_TILE_BITOPS_64_H
18 #include <linux/compiler.h>
23 static inline void set_bit(
unsigned nr,
volatile unsigned long *
addr)
29 static inline void clear_bit(
unsigned nr,
volatile unsigned long *addr)
35 #define smp_mb__before_clear_bit() smp_mb()
36 #define smp_mb__after_clear_bit() smp_mb()
39 static inline void change_bit(
unsigned nr,
volatile unsigned long *addr)
42 unsigned long guess, oldval;
49 }
while (guess != oldval);
60 static inline int test_and_set_bit(
unsigned nr,
volatile unsigned long *addr)
65 val = (__insn_fetchor((
void *)(addr + nr /
BITS_PER_LONG), mask)
77 val = (__insn_fetchand((
void *)(addr + nr /
BITS_PER_LONG), ~mask)
85 volatile unsigned long *addr)
88 unsigned long guess, oldval;
95 }
while (guess != oldval);
96 return (oldval & mask) != 0;