diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2016-07-12 10:12:18 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2016-07-12 14:20:39 -0400 |
commit | bb9707077b4ee5f77bc9939b057ff8a0d410296f (patch) | |
tree | 5d532c5066c0b7e40948a44f6cab11cb3b8d6e61 | |
parent | 39f54862a935e14a448cbd68d6a6bef68d026dbe (diff) |
tools: Copy the bitsperlong.h files from the kernel
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.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-lwqvgbuitjmrdpjmjp6zqnyx@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
21 files changed, 227 insertions, 0 deletions
diff --git a/tools/arch/alpha/include/uapi/asm/bitsperlong.h b/tools/arch/alpha/include/uapi/asm/bitsperlong.h new file mode 100644 index 000000000000..ad57f7868203 --- /dev/null +++ b/tools/arch/alpha/include/uapi/asm/bitsperlong.h | |||
@@ -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 */ | ||
diff --git a/tools/arch/arm64/include/uapi/asm/bitsperlong.h b/tools/arch/arm64/include/uapi/asm/bitsperlong.h new file mode 100644 index 000000000000..fce9c2924fa3 --- /dev/null +++ b/tools/arch/arm64/include/uapi/asm/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 */ | ||
diff --git a/tools/arch/frv/include/uapi/asm/bitsperlong.h b/tools/arch/frv/include/uapi/asm/bitsperlong.h new file mode 100644 index 000000000000..6dc0bb0c13b2 --- /dev/null +++ b/tools/arch/frv/include/uapi/asm/bitsperlong.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-generic/bitsperlong.h> | |||
diff --git a/tools/arch/h8300/include/asm/bitsperlong.h b/tools/arch/h8300/include/asm/bitsperlong.h new file mode 100644 index 000000000000..e140e46729ac --- /dev/null +++ b/tools/arch/h8300/include/asm/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 */ | ||
diff --git a/tools/arch/hexagon/include/uapi/asm/bitsperlong.h b/tools/arch/hexagon/include/uapi/asm/bitsperlong.h new file mode 100644 index 000000000000..4a658151383d --- /dev/null +++ b/tools/arch/hexagon/include/uapi/asm/bitsperlong.h | |||
@@ -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 | ||
diff --git a/tools/arch/ia64/include/uapi/asm/bitsperlong.h b/tools/arch/ia64/include/uapi/asm/bitsperlong.h new file mode 100644 index 000000000000..ec4db3c970b7 --- /dev/null +++ b/tools/arch/ia64/include/uapi/asm/bitsperlong.h | |||
@@ -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 */ | ||
diff --git a/tools/arch/m32r/include/uapi/asm/bitsperlong.h b/tools/arch/m32r/include/uapi/asm/bitsperlong.h new file mode 100644 index 000000000000..6dc0bb0c13b2 --- /dev/null +++ b/tools/arch/m32r/include/uapi/asm/bitsperlong.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-generic/bitsperlong.h> | |||
diff --git a/tools/arch/microblaze/include/uapi/asm/bitsperlong.h b/tools/arch/microblaze/include/uapi/asm/bitsperlong.h new file mode 100644 index 000000000000..6dc0bb0c13b2 --- /dev/null +++ b/tools/arch/microblaze/include/uapi/asm/bitsperlong.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-generic/bitsperlong.h> | |||
diff --git a/tools/arch/mips/include/uapi/asm/bitsperlong.h b/tools/arch/mips/include/uapi/asm/bitsperlong.h new file mode 100644 index 000000000000..3e4c10a8e787 --- /dev/null +++ b/tools/arch/mips/include/uapi/asm/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 */ | ||
diff --git a/tools/arch/mn10300/include/uapi/asm/bitsperlong.h b/tools/arch/mn10300/include/uapi/asm/bitsperlong.h new file mode 100644 index 000000000000..6dc0bb0c13b2 --- /dev/null +++ b/tools/arch/mn10300/include/uapi/asm/bitsperlong.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-generic/bitsperlong.h> | |||
diff --git a/tools/arch/parisc/include/uapi/asm/bitsperlong.h b/tools/arch/parisc/include/uapi/asm/bitsperlong.h new file mode 100644 index 000000000000..e0a23c7bdd43 --- /dev/null +++ b/tools/arch/parisc/include/uapi/asm/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 */ | ||
diff --git a/tools/arch/powerpc/include/uapi/asm/bitsperlong.h b/tools/arch/powerpc/include/uapi/asm/bitsperlong.h new file mode 100644 index 000000000000..5f1659032c40 --- /dev/null +++ b/tools/arch/powerpc/include/uapi/asm/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 */ | ||
diff --git a/tools/arch/s390/include/uapi/asm/bitsperlong.h b/tools/arch/s390/include/uapi/asm/bitsperlong.h new file mode 100644 index 000000000000..e351ea2ad43e --- /dev/null +++ b/tools/arch/s390/include/uapi/asm/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 */ | ||
diff --git a/tools/arch/score/include/uapi/asm/bitsperlong.h b/tools/arch/score/include/uapi/asm/bitsperlong.h new file mode 100644 index 000000000000..86ff337aa459 --- /dev/null +++ b/tools/arch/score/include/uapi/asm/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 */ | ||
diff --git a/tools/arch/sparc/include/uapi/asm/bitsperlong.h b/tools/arch/sparc/include/uapi/asm/bitsperlong.h new file mode 100644 index 000000000000..b62dd907d7c3 --- /dev/null +++ b/tools/arch/sparc/include/uapi/asm/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 */ | ||
diff --git a/tools/arch/tile/include/uapi/asm/bitsperlong.h b/tools/arch/tile/include/uapi/asm/bitsperlong.h new file mode 100644 index 000000000000..58c771f2af2f --- /dev/null +++ b/tools/arch/tile/include/uapi/asm/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 */ | ||
diff --git a/tools/arch/x86/include/uapi/asm/bitsperlong.h b/tools/arch/x86/include/uapi/asm/bitsperlong.h new file mode 100644 index 000000000000..6e23c543cd80 --- /dev/null +++ b/tools/arch/x86/include/uapi/asm/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 */ | ||
diff --git a/tools/include/asm-generic/bitops/__ffs.h b/tools/include/asm-generic/bitops/__ffs.h index c94175015a82..b3accfdf24b9 100644 --- a/tools/include/asm-generic/bitops/__ffs.h +++ b/tools/include/asm-generic/bitops/__ffs.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define _TOOLS_LINUX_ASM_GENERIC_BITOPS___FFS_H_ | 2 | #define _TOOLS_LINUX_ASM_GENERIC_BITOPS___FFS_H_ |
3 | 3 | ||
4 | #include <asm/types.h> | 4 | #include <asm/types.h> |
5 | #include <asm/bitsperlong.h> | ||
5 | 6 | ||
6 | /** | 7 | /** |
7 | * __ffs - find first bit in word. | 8 | * __ffs - find first bit in word. |
diff --git a/tools/include/asm-generic/bitops/atomic.h b/tools/include/asm-generic/bitops/atomic.h index 4bccd7c3d5d6..18663f59d72f 100644 --- a/tools/include/asm-generic/bitops/atomic.h +++ b/tools/include/asm-generic/bitops/atomic.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define _TOOLS_LINUX_ASM_GENERIC_BITOPS_ATOMIC_H_ | 2 | #define _TOOLS_LINUX_ASM_GENERIC_BITOPS_ATOMIC_H_ |
3 | 3 | ||
4 | #include <asm/types.h> | 4 | #include <asm/types.h> |
5 | #include <asm/bitsperlong.h> | ||
5 | 6 | ||
6 | static inline void set_bit(int nr, unsigned long *addr) | 7 | static inline void set_bit(int nr, unsigned long *addr) |
7 | { | 8 | { |
diff --git a/tools/include/asm-generic/bitsperlong.h b/tools/include/asm-generic/bitsperlong.h new file mode 100644 index 000000000000..d1d70aa19021 --- /dev/null +++ b/tools/include/asm-generic/bitsperlong.h | |||
@@ -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 */ | ||
diff --git a/tools/include/uapi/asm-generic/bitsperlong.h b/tools/include/uapi/asm-generic/bitsperlong.h new file mode 100644 index 000000000000..23e6c416b85f --- /dev/null +++ b/tools/include/uapi/asm-generic/bitsperlong.h | |||
@@ -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 */ | ||