tools/headers: Synchronize kernel ABI headers
After the SPDX license tags were added a number of tooling headers got out of
sync with their kernel variants, generating lots of build warnings.
Sync them:
- tools/arch/x86/include/asm/disabled-features.h,
tools/arch/x86/include/asm/required-features.h,
tools/include/linux/hash.h:
Remove the SPDX tag where the kernel version does not have it.
- tools/include/asm-generic/bitops/__fls.h,
tools/include/asm-generic/bitops/arch_hweight.h,
tools/include/asm-generic/bitops/const_hweight.h,
tools/include/asm-generic/bitops/fls.h,
tools/include/asm-generic/bitops/fls64.h,
tools/include/uapi/asm-generic/ioctls.h,
tools/include/uapi/asm-generic/mman-common.h,
tools/include/uapi/sound/asound.h,
tools/include/uapi/linux/kvm.h,
tools/include/uapi/linux/perf_event.h,
tools/include/uapi/linux/sched.h,
tools/include/uapi/linux/vhost.h,
tools/include/uapi/sound/asound.h:
Add the SPDX tag of the respective kernel header.
- tools/include/uapi/linux/bpf_common.h,
tools/include/uapi/linux/fcntl.h,
tools/include/uapi/linux/hw_breakpoint.h,
tools/include/uapi/linux/mman.h,
tools/include/uapi/linux/stat.h,
Change the tag to the kernel header version:
-/* SPDX-License-Identifier: GPL-2.0 */
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
Also sync other header details:
- include/uapi/sound/asound.h:
Fix pointless end of line whitespace noise the header grew in this cycle.
- tools/arch/x86/lib/memcpy_64.S:
Sync the code and add tools/include/asm/export.h with dummy wrappers
to support building the kernel side code in a tooling header environment.
- tools/include/uapi/asm-generic/mman.h,
tools/include/uapi/linux/bpf.h:
Sync other details that don't impact tooling's use of the ABIs.
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2017-11-03 19:18:37 +08:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0 */
|
2016-07-19 05:13:22 +08:00
|
|
|
#ifndef _ASM_GENERIC_BITOPS_FLS64_H_
|
|
|
|
#define _ASM_GENERIC_BITOPS_FLS64_H_
|
|
|
|
|
|
|
|
#include <asm/types.h>
|
|
|
|
|
|
|
|
/**
|
|
|
|
* fls64 - find last set bit in a 64-bit word
|
|
|
|
* @x: the word to search
|
|
|
|
*
|
|
|
|
* This is defined in a similar way as the libc and compiler builtin
|
|
|
|
* ffsll, but returns the position of the most significant set bit.
|
|
|
|
*
|
|
|
|
* fls64(value) returns 0 if value is 0 or the position of the last
|
|
|
|
* set bit if value is nonzero. The last (most significant) bit is
|
|
|
|
* at position 64.
|
|
|
|
*/
|
|
|
|
#if BITS_PER_LONG == 32
|
|
|
|
static __always_inline int fls64(__u64 x)
|
|
|
|
{
|
|
|
|
__u32 h = x >> 32;
|
|
|
|
if (h)
|
|
|
|
return fls(h) + 32;
|
|
|
|
return fls(x);
|
|
|
|
}
|
|
|
|
#elif BITS_PER_LONG == 64
|
|
|
|
static __always_inline int fls64(__u64 x)
|
|
|
|
{
|
|
|
|
if (x == 0)
|
|
|
|
return 0;
|
|
|
|
return __fls(x) + 1;
|
|
|
|
}
|
|
|
|
#else
|
|
|
|
#error BITS_PER_LONG not 32 or 64
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* _ASM_GENERIC_BITOPS_FLS64_H_ */
|