We use it in bitops/__ffs.h and bitops/atomic.h, that we also got from the kernel, but were getting it from either newer systems that carry it in /usr/include, or from the kernel sources, that we decided not to touch from tools/ code. Fix it.
Unified · Split
| @@ -0,0 +1,8 @@ | ||
| 1 | +#ifndef __ASM_ALPHA_BITSPERLONG_H | |
| 2 | +#define __ASM_ALPHA_BITSPERLONG_H | |
| 3 | + | |
| 4 | +#define __BITS_PER_LONG 64 | |
| 5 | + | |
| 6 | +#include <asm-generic/bitsperlong.h> | |
| 7 | + | |
| 8 | +#endif /* __ASM_ALPHA_BITSPERLONG_H */ | |
| @@ -0,0 +1,23 @@ | ||
| 1 | +/* | |
| 2 | + * Copyright (C) 2012 ARM Ltd. | |
| 3 | + * | |
| 4 | + * This program is free software; you can redistribute it and/or modify | |
| 5 | + * it under the terms of the GNU General Public License version 2 as | |
| 6 | + * published by the Free Software Foundation. | |
| 7 | + * | |
| 8 | + * This program is distributed in the hope that it will be useful, | |
| 9 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 10 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 11 | + * GNU General Public License for more details. | |
| 12 | + * | |
| 13 | + * You should have received a copy of the GNU General Public License | |
| 14 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. | |
| 15 | + */ | |
| 16 | +#ifndef __ASM_BITSPERLONG_H | |
| 17 | +#define __ASM_BITSPERLONG_H | |
| 18 | + | |
| 19 | +#define __BITS_PER_LONG 64 | |
| 20 | + | |
| 21 | +#include <asm-generic/bitsperlong.h> | |
| 22 | + | |
| 23 | +#endif /* __ASM_BITSPERLONG_H */ | |
| @@ -0,0 +1 @@ | ||
| 1 | +#include <asm-generic/bitsperlong.h> | |
| @@ -0,0 +1,14 @@ | ||
| 1 | +#ifndef __ASM_H8300_BITS_PER_LONG | |
| 2 | +#define __ASM_H8300_BITS_PER_LONG | |
| 3 | + | |
| 4 | +#include <asm-generic/bitsperlong.h> | |
| 5 | + | |
| 6 | +#if !defined(__ASSEMBLY__) | |
| 7 | +/* h8300-unknown-linux required long */ | |
| 8 | +#define __kernel_size_t __kernel_size_t | |
| 9 | +typedef unsigned long __kernel_size_t; | |
| 10 | +typedef long __kernel_ssize_t; | |
| 11 | +typedef long __kernel_ptrdiff_t; | |
| 12 | +#endif | |
| 13 | + | |
| 14 | +#endif /* __ASM_H8300_BITS_PER_LONG */ | |
| @@ -0,0 +1,26 @@ | ||
| 1 | +/* | |
| 2 | + * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved. | |
| 3 | + * | |
| 4 | + * This program is free software; you can redistribute it and/or modify | |
| 5 | + * it under the terms of the GNU General Public License version 2 and | |
| 6 | + * only version 2 as published by the Free Software Foundation. | |
| 7 | + * | |
| 8 | + * This program is distributed in the hope that it will be useful, | |
| 9 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 10 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 11 | + * GNU General Public License for more details. | |
| 12 | + * | |
| 13 | + * You should have received a copy of the GNU General Public License | |
| 14 | + * along with this program; if not, write to the Free Software | |
| 15 | + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | |
| 16 | + * 02110-1301, USA. | |
| 17 | + */ | |
| 18 | + | |
| 19 | +#ifndef __ASM_HEXAGON_BITSPERLONG_H | |
| 20 | +#define __ASM_HEXAGON_BITSPERLONG_H | |
| 21 | + | |
| 22 | +#define __BITS_PER_LONG 32 | |
| 23 | + | |
| 24 | +#include <asm-generic/bitsperlong.h> | |
| 25 | + | |
| 26 | +#endif | |
| @@ -0,0 +1,8 @@ | ||
| 1 | +#ifndef __ASM_IA64_BITSPERLONG_H | |
| 2 | +#define __ASM_IA64_BITSPERLONG_H | |
| 3 | + | |
| 4 | +#define __BITS_PER_LONG 64 | |
| 5 | + | |
| 6 | +#include <asm-generic/bitsperlong.h> | |
| 7 | + | |
| 8 | +#endif /* __ASM_IA64_BITSPERLONG_H */ | |
| @@ -0,0 +1 @@ | ||
| 1 | +#include <asm-generic/bitsperlong.h> | |
| @@ -0,0 +1 @@ | ||
| 1 | +#include <asm-generic/bitsperlong.h> | |
| @@ -0,0 +1,8 @@ | ||
| 1 | +#ifndef __ASM_MIPS_BITSPERLONG_H | |
| 2 | +#define __ASM_MIPS_BITSPERLONG_H | |
| 3 | + | |
| 4 | +#define __BITS_PER_LONG _MIPS_SZLONG | |
| 5 | + | |
| 6 | +#include <asm-generic/bitsperlong.h> | |
| 7 | + | |
| 8 | +#endif /* __ASM_MIPS_BITSPERLONG_H */ | |
| @@ -0,0 +1 @@ | ||
| 1 | +#include <asm-generic/bitsperlong.h> | |
| @@ -0,0 +1,14 @@ | ||
| 1 | +#ifndef __ASM_PARISC_BITSPERLONG_H | |
| 2 | +#define __ASM_PARISC_BITSPERLONG_H | |
| 3 | + | |
| 4 | +#if defined(__LP64__) | |
| 5 | +#define __BITS_PER_LONG 64 | |
| 6 | +#define SHIFT_PER_LONG 6 | |
| 7 | +#else | |
| 8 | +#define __BITS_PER_LONG 32 | |
| 9 | +#define SHIFT_PER_LONG 5 | |
| 10 | +#endif | |
| 11 | + | |
| 12 | +#include <asm-generic/bitsperlong.h> | |
| 13 | + | |
| 14 | +#endif /* __ASM_PARISC_BITSPERLONG_H */ | |
| @@ -0,0 +1,12 @@ | ||
| 1 | +#ifndef __ASM_POWERPC_BITSPERLONG_H | |
| 2 | +#define __ASM_POWERPC_BITSPERLONG_H | |
| 3 | + | |
| 4 | +#if defined(__powerpc64__) | |
| 5 | +# define __BITS_PER_LONG 64 | |
| 6 | +#else | |
| 7 | +# define __BITS_PER_LONG 32 | |
| 8 | +#endif | |
| 9 | + | |
| 10 | +#include <asm-generic/bitsperlong.h> | |
| 11 | + | |
| 12 | +#endif /* __ASM_POWERPC_BITSPERLONG_H */ | |
| @@ -0,0 +1,12 @@ | ||
| 1 | +#ifndef __ASM_S390_BITSPERLONG_H | |
| 2 | +#define __ASM_S390_BITSPERLONG_H | |
| 3 | + | |
| 4 | +#ifndef __s390x__ | |
| 5 | +#define __BITS_PER_LONG 32 | |
| 6 | +#else | |
| 7 | +#define __BITS_PER_LONG 64 | |
| 8 | +#endif | |
| 9 | + | |
| 10 | +#include <asm-generic/bitsperlong.h> | |
| 11 | + | |
| 12 | +#endif /* __ASM_S390_BITSPERLONG_H */ | |
| @@ -0,0 +1,6 @@ | ||
| 1 | +#ifndef _ASM_SCORE_BITSPERLONG_H | |
| 2 | +#define _ASM_SCORE_BITSPERLONG_H | |
| 3 | + | |
| 4 | +#include <asm-generic/bitsperlong.h> | |
| 5 | + | |
| 6 | +#endif /* _ASM_SCORE_BITSPERLONG_H */ | |
| @@ -0,0 +1,12 @@ | ||
| 1 | +#ifndef __ASM_ALPHA_BITSPERLONG_H | |
| 2 | +#define __ASM_ALPHA_BITSPERLONG_H | |
| 3 | + | |
| 4 | +#if defined(__sparc__) && defined(__arch64__) | |
| 5 | +#define __BITS_PER_LONG 64 | |
| 6 | +#else | |
| 7 | +#define __BITS_PER_LONG 32 | |
| 8 | +#endif | |
| 9 | + | |
| 10 | +#include <asm-generic/bitsperlong.h> | |
| 11 | + | |
| 12 | +#endif /* __ASM_ALPHA_BITSPERLONG_H */ | |
| @@ -0,0 +1,26 @@ | ||
| 1 | +/* | |
| 2 | + * Copyright 2010 Tilera Corporation. All Rights Reserved. | |
| 3 | + * | |
| 4 | + * This program is free software; you can redistribute it and/or | |
| 5 | + * modify it under the terms of the GNU General Public License | |
| 6 | + * as published by the Free Software Foundation, version 2. | |
| 7 | + * | |
| 8 | + * This program is distributed in the hope that it will be useful, but | |
| 9 | + * WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 10 | + * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or | |
| 11 | + * NON INFRINGEMENT. See the GNU General Public License for | |
| 12 | + * more details. | |
| 13 | + */ | |
| 14 | + | |
| 15 | +#ifndef _ASM_TILE_BITSPERLONG_H | |
| 16 | +#define _ASM_TILE_BITSPERLONG_H | |
| 17 | + | |
| 18 | +#ifdef __LP64__ | |
| 19 | +# define __BITS_PER_LONG 64 | |
| 20 | +#else | |
| 21 | +# define __BITS_PER_LONG 32 | |
| 22 | +#endif | |
| 23 | + | |
| 24 | +#include <asm-generic/bitsperlong.h> | |
| 25 | + | |
| 26 | +#endif /* _ASM_TILE_BITSPERLONG_H */ | |
| @@ -0,0 +1,12 @@ | ||
| 1 | +#ifndef __ASM_X86_BITSPERLONG_H | |
| 2 | +#define __ASM_X86_BITSPERLONG_H | |
| 3 | + | |
| 4 | +#if defined(__x86_64__) && !defined(__ILP32__) | |
| 5 | +# define __BITS_PER_LONG 64 | |
| 6 | +#else | |
| 7 | +# define __BITS_PER_LONG 32 | |
| 8 | +#endif | |
| 9 | + | |
| 10 | +#include <asm-generic/bitsperlong.h> | |
| 11 | + | |
| 12 | +#endif /* __ASM_X86_BITSPERLONG_H */ | |
| @@ -2,6 +2,7 @@ · 1 unmodified line | ||
| 2 | 2 | #define _TOOLS_LINUX_ASM_GENERIC_BITOPS___FFS_H_ |
| 3 | 3 | |
| 4 | 4 | #include <asm/types.h> |
| 5 | +#include <asm/bitsperlong.h> | |
| 5 | 6 | |
| 6 | 7 | /** |
| 7 | 8 | * __ffs - find first bit in word. |
| @@ -2,6 +2,7 @@ · 1 unmodified line | ||
| 2 | 2 | #define _TOOLS_LINUX_ASM_GENERIC_BITOPS_ATOMIC_H_ |
| 3 | 3 | |
| 4 | 4 | #include <asm/types.h> |
| 5 | +#include <asm/bitsperlong.h> | |
| 5 | 6 | |
| 6 | 7 | static inline void set_bit(int nr, unsigned long *addr) |
| 7 | 8 | { |
| @@ -0,0 +1,25 @@ | ||
| 1 | +#ifndef __ASM_GENERIC_BITS_PER_LONG | |
| 2 | +#define __ASM_GENERIC_BITS_PER_LONG | |
| 3 | + | |
| 4 | +#include <uapi/asm-generic/bitsperlong.h> | |
| 5 | + | |
| 6 | + | |
| 7 | +#ifdef CONFIG_64BIT | |
| 8 | +#define BITS_PER_LONG 64 | |
| 9 | +#else | |
| 10 | +#define BITS_PER_LONG 32 | |
| 11 | +#endif /* CONFIG_64BIT */ | |
| 12 | + | |
| 13 | +/* | |
| 14 | + * FIXME: The check currently breaks x86-64 build, so it's | |
| 15 | + * temporarily disabled. Please fix x86-64 and reenable | |
| 16 | + */ | |
| 17 | +#if 0 && BITS_PER_LONG != __BITS_PER_LONG | |
| 18 | +#error Inconsistent word size. Check asm/bitsperlong.h | |
| 19 | +#endif | |
| 20 | + | |
| 21 | +#ifndef BITS_PER_LONG_LONG | |
| 22 | +#define BITS_PER_LONG_LONG 64 | |
| 23 | +#endif | |
| 24 | + | |
| 25 | +#endif /* __ASM_GENERIC_BITS_PER_LONG */ | |
| @@ -0,0 +1,15 @@ | ||
| 1 | +#ifndef _UAPI__ASM_GENERIC_BITS_PER_LONG | |
| 2 | +#define _UAPI__ASM_GENERIC_BITS_PER_LONG | |
| 3 | + | |
| 4 | +/* | |
| 5 | + * There seems to be no way of detecting this automatically from user | |
| 6 | + * space, so 64 bit architectures should override this in their | |
| 7 | + * bitsperlong.h. In particular, an architecture that supports | |
| 8 | + * both 32 and 64 bit user space must not rely on CONFIG_64BIT | |
| 9 | + * to decide it, but rather check a compiler provided macro. | |
| 10 | + */ | |
| 11 | +#ifndef __BITS_PER_LONG | |
| 12 | +#define __BITS_PER_LONG 32 | |
| 13 | +#endif | |
| 14 | + | |
| 15 | +#endif /* _UAPI__ASM_GENERIC_BITS_PER_LONG */ | |