linux/include/asm-generic/bitops
Alexander Lobakin bb7379bfa6 bitops: define const_*() versions of the non-atomics
Define const_*() variants of the non-atomic bitops to be used when
the input arguments are compile-time constants, so that the compiler
will be always able to resolve those to compile-time constants as
well. Those are mostly direct aliases for generic_*() with one
exception for const_test_bit(): the original one is declared
atomic-safe and thus doesn't discard the `volatile` qualifier, so
in order to let optimize code, define it separately disregarding
the qualifier.
Add them to the compile-time type checks as well just in case.

Suggested-by: Marco Elver <elver@google.com>
Signed-off-by: Alexander Lobakin <alexandr.lobakin@intel.com>
Reviewed-by: Marco Elver <elver@google.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Yury Norov <yury.norov@gmail.com>
2022-06-30 19:52:41 -07:00
..
__ffs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
__fls.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
arch_hweight.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
atomic.h locking/atomic: add generic arch_*() bitops 2021-07-16 18:46:45 +02:00
builtin-__ffs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
builtin-__fls.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
builtin-ffs.h asm-generic: ffs: Drop bogus reference to ffz location 2021-08-11 11:38:10 +02:00
builtin-fls.h fls: change parameter to unsigned int 2019-01-04 13:13:46 -08:00
const_hweight.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ext2-atomic-setbit.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ext2-atomic.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ffs.h asm-generic: ffs: Drop bogus reference to ffz location 2021-08-11 11:38:10 +02:00
ffz.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fls.h fls: change parameter to unsigned int 2019-01-04 13:13:46 -08:00
fls64.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
generic-non-atomic.h bitops: define const_*() versions of the non-atomics 2022-06-30 19:52:41 -07:00
hweight.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
instrumented-atomic.h asm-generic/bitops: Always inline all bit manipulation helpers 2022-01-25 22:30:28 +01:00
instrumented-lock.h asm-generic/bitops, kcsan: Add instrumentation for barriers 2021-12-09 16:42:28 -08:00
instrumented-non-atomic.h bitops: unify non-atomic bitops prototypes across architectures 2022-06-30 19:52:41 -07:00
le.h bitops: move find_bit_*_le functions from le.h to find.h 2022-01-15 08:47:30 -08:00
lock.h locking/atomic: add generic arch_*() bitops 2021-07-16 18:46:45 +02:00
non-atomic.h bitops: unify non-atomic bitops prototypes across architectures 2022-06-30 19:52:41 -07:00
non-instrumented-non-atomic.h bitops: unify non-atomic bitops prototypes across architectures 2022-06-30 19:52:41 -07:00
sched.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00