Skip to content

Commit

Permalink
tools: Copy the bitsperlong.h files from the kernel
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Arnaldo Carvalho de Melo committed Jul 12, 2016
1 parent 39f5486 commit bb97070
Show file tree
Hide file tree
Showing 21 changed files with 227 additions and 0 deletions.
8 changes: 8 additions & 0 deletions tools/arch/alpha/include/uapi/asm/bitsperlong.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#ifndef __ASM_ALPHA_BITSPERLONG_H
#define __ASM_ALPHA_BITSPERLONG_H

#define __BITS_PER_LONG 64

#include <asm-generic/bitsperlong.h>

#endif /* __ASM_ALPHA_BITSPERLONG_H */
23 changes: 23 additions & 0 deletions tools/arch/arm64/include/uapi/asm/bitsperlong.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/*
* Copyright (C) 2012 ARM Ltd.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __ASM_BITSPERLONG_H
#define __ASM_BITSPERLONG_H

#define __BITS_PER_LONG 64

#include <asm-generic/bitsperlong.h>

#endif /* __ASM_BITSPERLONG_H */
1 change: 1 addition & 0 deletions tools/arch/frv/include/uapi/asm/bitsperlong.h
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include <asm-generic/bitsperlong.h>
14 changes: 14 additions & 0 deletions tools/arch/h8300/include/asm/bitsperlong.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#ifndef __ASM_H8300_BITS_PER_LONG
#define __ASM_H8300_BITS_PER_LONG

#include <asm-generic/bitsperlong.h>

#if !defined(__ASSEMBLY__)
/* h8300-unknown-linux required long */
#define __kernel_size_t __kernel_size_t
typedef unsigned long __kernel_size_t;
typedef long __kernel_ssize_t;
typedef long __kernel_ptrdiff_t;
#endif

#endif /* __ASM_H8300_BITS_PER_LONG */
26 changes: 26 additions & 0 deletions tools/arch/hexagon/include/uapi/asm/bitsperlong.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/*
* Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/

#ifndef __ASM_HEXAGON_BITSPERLONG_H
#define __ASM_HEXAGON_BITSPERLONG_H

#define __BITS_PER_LONG 32

#include <asm-generic/bitsperlong.h>

#endif
8 changes: 8 additions & 0 deletions tools/arch/ia64/include/uapi/asm/bitsperlong.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#ifndef __ASM_IA64_BITSPERLONG_H
#define __ASM_IA64_BITSPERLONG_H

#define __BITS_PER_LONG 64

#include <asm-generic/bitsperlong.h>

#endif /* __ASM_IA64_BITSPERLONG_H */
1 change: 1 addition & 0 deletions tools/arch/m32r/include/uapi/asm/bitsperlong.h
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include <asm-generic/bitsperlong.h>
1 change: 1 addition & 0 deletions tools/arch/microblaze/include/uapi/asm/bitsperlong.h
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include <asm-generic/bitsperlong.h>
8 changes: 8 additions & 0 deletions tools/arch/mips/include/uapi/asm/bitsperlong.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#ifndef __ASM_MIPS_BITSPERLONG_H
#define __ASM_MIPS_BITSPERLONG_H

#define __BITS_PER_LONG _MIPS_SZLONG

#include <asm-generic/bitsperlong.h>

#endif /* __ASM_MIPS_BITSPERLONG_H */
1 change: 1 addition & 0 deletions tools/arch/mn10300/include/uapi/asm/bitsperlong.h
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#include <asm-generic/bitsperlong.h>
14 changes: 14 additions & 0 deletions tools/arch/parisc/include/uapi/asm/bitsperlong.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#ifndef __ASM_PARISC_BITSPERLONG_H
#define __ASM_PARISC_BITSPERLONG_H

#if defined(__LP64__)
#define __BITS_PER_LONG 64
#define SHIFT_PER_LONG 6
#else
#define __BITS_PER_LONG 32
#define SHIFT_PER_LONG 5
#endif

#include <asm-generic/bitsperlong.h>

#endif /* __ASM_PARISC_BITSPERLONG_H */
12 changes: 12 additions & 0 deletions tools/arch/powerpc/include/uapi/asm/bitsperlong.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#ifndef __ASM_POWERPC_BITSPERLONG_H
#define __ASM_POWERPC_BITSPERLONG_H

#if defined(__powerpc64__)
# define __BITS_PER_LONG 64
#else
# define __BITS_PER_LONG 32
#endif

#include <asm-generic/bitsperlong.h>

#endif /* __ASM_POWERPC_BITSPERLONG_H */
12 changes: 12 additions & 0 deletions tools/arch/s390/include/uapi/asm/bitsperlong.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#ifndef __ASM_S390_BITSPERLONG_H
#define __ASM_S390_BITSPERLONG_H

#ifndef __s390x__
#define __BITS_PER_LONG 32
#else
#define __BITS_PER_LONG 64
#endif

#include <asm-generic/bitsperlong.h>

#endif /* __ASM_S390_BITSPERLONG_H */
6 changes: 6 additions & 0 deletions tools/arch/score/include/uapi/asm/bitsperlong.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#ifndef _ASM_SCORE_BITSPERLONG_H
#define _ASM_SCORE_BITSPERLONG_H

#include <asm-generic/bitsperlong.h>

#endif /* _ASM_SCORE_BITSPERLONG_H */
12 changes: 12 additions & 0 deletions tools/arch/sparc/include/uapi/asm/bitsperlong.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#ifndef __ASM_ALPHA_BITSPERLONG_H
#define __ASM_ALPHA_BITSPERLONG_H

#if defined(__sparc__) && defined(__arch64__)
#define __BITS_PER_LONG 64
#else
#define __BITS_PER_LONG 32
#endif

#include <asm-generic/bitsperlong.h>

#endif /* __ASM_ALPHA_BITSPERLONG_H */
26 changes: 26 additions & 0 deletions tools/arch/tile/include/uapi/asm/bitsperlong.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/*
* Copyright 2010 Tilera Corporation. All Rights Reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation, version 2.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
* NON INFRINGEMENT. See the GNU General Public License for
* more details.
*/

#ifndef _ASM_TILE_BITSPERLONG_H
#define _ASM_TILE_BITSPERLONG_H

#ifdef __LP64__
# define __BITS_PER_LONG 64
#else
# define __BITS_PER_LONG 32
#endif

#include <asm-generic/bitsperlong.h>

#endif /* _ASM_TILE_BITSPERLONG_H */
12 changes: 12 additions & 0 deletions tools/arch/x86/include/uapi/asm/bitsperlong.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#ifndef __ASM_X86_BITSPERLONG_H
#define __ASM_X86_BITSPERLONG_H

#if defined(__x86_64__) && !defined(__ILP32__)
# define __BITS_PER_LONG 64
#else
# define __BITS_PER_LONG 32
#endif

#include <asm-generic/bitsperlong.h>

#endif /* __ASM_X86_BITSPERLONG_H */
1 change: 1 addition & 0 deletions tools/include/asm-generic/bitops/__ffs.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#define _TOOLS_LINUX_ASM_GENERIC_BITOPS___FFS_H_

#include <asm/types.h>
#include <asm/bitsperlong.h>

/**
* __ffs - find first bit in word.
Expand Down
1 change: 1 addition & 0 deletions tools/include/asm-generic/bitops/atomic.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#define _TOOLS_LINUX_ASM_GENERIC_BITOPS_ATOMIC_H_

#include <asm/types.h>
#include <asm/bitsperlong.h>

static inline void set_bit(int nr, unsigned long *addr)
{
Expand Down
25 changes: 25 additions & 0 deletions tools/include/asm-generic/bitsperlong.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#ifndef __ASM_GENERIC_BITS_PER_LONG
#define __ASM_GENERIC_BITS_PER_LONG

#include <uapi/asm-generic/bitsperlong.h>


#ifdef CONFIG_64BIT
#define BITS_PER_LONG 64
#else
#define BITS_PER_LONG 32
#endif /* CONFIG_64BIT */

/*
* FIXME: The check currently breaks x86-64 build, so it's
* temporarily disabled. Please fix x86-64 and reenable
*/
#if 0 && BITS_PER_LONG != __BITS_PER_LONG
#error Inconsistent word size. Check asm/bitsperlong.h
#endif

#ifndef BITS_PER_LONG_LONG
#define BITS_PER_LONG_LONG 64
#endif

#endif /* __ASM_GENERIC_BITS_PER_LONG */
15 changes: 15 additions & 0 deletions tools/include/uapi/asm-generic/bitsperlong.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#ifndef _UAPI__ASM_GENERIC_BITS_PER_LONG
#define _UAPI__ASM_GENERIC_BITS_PER_LONG

/*
* There seems to be no way of detecting this automatically from user
* space, so 64 bit architectures should override this in their
* bitsperlong.h. In particular, an architecture that supports
* both 32 and 64 bit user space must not rely on CONFIG_64BIT
* to decide it, but rather check a compiler provided macro.
*/
#ifndef __BITS_PER_LONG
#define __BITS_PER_LONG 32
#endif

#endif /* _UAPI__ASM_GENERIC_BITS_PER_LONG */

0 comments on commit bb97070

Please sign in to comment.