Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
f5e706ad SR |
2 | /* |
3 | * bitops.h: Bit string operations on the V9. | |
4 | * | |
5 | * Copyright 1996, 1997 David S. Miller (davem@caip.rutgers.edu) | |
6 | */ | |
7 | ||
8 | #ifndef _SPARC64_BITOPS_H | |
9 | #define _SPARC64_BITOPS_H | |
10 | ||
11 | #ifndef _LINUX_BITOPS_H | |
12 | #error only <linux/bitops.h> can be included directly | |
13 | #endif | |
14 | ||
15 | #include <linux/compiler.h> | |
16 | #include <asm/byteorder.h> | |
56d36489 | 17 | #include <asm/barrier.h> |
f5e706ad | 18 | |
f05a6865 SR |
19 | int test_and_set_bit(unsigned long nr, volatile unsigned long *addr); |
20 | int test_and_clear_bit(unsigned long nr, volatile unsigned long *addr); | |
21 | int test_and_change_bit(unsigned long nr, volatile unsigned long *addr); | |
22 | void set_bit(unsigned long nr, volatile unsigned long *addr); | |
23 | void clear_bit(unsigned long nr, volatile unsigned long *addr); | |
24 | void change_bit(unsigned long nr, volatile unsigned long *addr); | |
f5e706ad | 25 | |
41413a60 | 26 | int fls(unsigned int word); |
be52bbe3 | 27 | int __fls(unsigned long word); |
41413a60 | 28 | |
f5e706ad SR |
29 | #include <asm-generic/bitops/non-atomic.h> |
30 | ||
f5e706ad SR |
31 | #include <asm-generic/bitops/fls64.h> |
32 | ||
33 | #ifdef __KERNEL__ | |
34 | ||
f05a6865 SR |
35 | int ffs(int x); |
36 | unsigned long __ffs(unsigned long); | |
56d205cc DM |
37 | |
38 | #include <asm-generic/bitops/ffz.h> | |
f5e706ad | 39 | #include <asm-generic/bitops/sched.h> |
f5e706ad SR |
40 | |
41 | /* | |
42 | * hweightN: returns the hamming weight (i.e. the number | |
43 | * of bits set) of a N-bit word | |
44 | */ | |
45 | ||
f05a6865 SR |
46 | unsigned long __arch_hweight64(__u64 w); |
47 | unsigned int __arch_hweight32(unsigned int w); | |
48 | unsigned int __arch_hweight16(unsigned int w); | |
49 | unsigned int __arch_hweight8(unsigned int w); | |
f5e706ad | 50 | |
1527bc8b | 51 | #include <asm-generic/bitops/const_hweight.h> |
f5e706ad SR |
52 | #include <asm-generic/bitops/lock.h> |
53 | #endif /* __KERNEL__ */ | |
54 | ||
f5e706ad SR |
55 | #ifdef __KERNEL__ |
56 | ||
861b5ae7 | 57 | #include <asm-generic/bitops/le.h> |
f5e706ad | 58 | |
148817ba | 59 | #include <asm-generic/bitops/ext2-atomic-setbit.h> |
f5e706ad | 60 | |
f5e706ad SR |
61 | #endif /* __KERNEL__ */ |
62 | ||
63 | #endif /* defined(_SPARC64_BITOPS_H) */ |