arch: types.h: factor out fixed width typedefs to int-ll64.h

All architectures have the same definition for s8/16/32/64
and u8/16/32/64.

Factor out the duplicated code into <asm-generic/int-ll64.h>.

BTW, Linux unified the kernel space definition into int-ll64.h
a few years ago as you see in Linux commit 0c79a8e29b5f
("asm/types.h: Remove include/asm-generic/int-l64.h").

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
lime2-spi
Masahiro Yamada 6 years ago committed by Tom Rini
parent 9865543ae6
commit 3747bdbb2b
  1. 36
      arch/arc/include/asm/types.h
  2. 33
      arch/arm/include/asm/types.h
  3. 30
      arch/m68k/include/asm/types.h
  4. 33
      arch/microblaze/include/asm/types.h
  5. 36
      arch/mips/include/asm/types.h
  6. 33
      arch/nds32/include/asm/types.h
  7. 30
      arch/powerpc/include/asm/types.h
  8. 33
      arch/riscv/include/asm/types.h
  9. 33
      arch/sandbox/include/asm/types.h
  10. 34
      arch/sh/include/asm/types.h
  11. 33
      arch/x86/include/asm/types.h
  12. 33
      arch/xtensa/include/asm/types.h
  13. 47
      include/asm-generic/int-ll64.h
  14. 9
      include/asm-generic/types.h

@ -6,41 +6,9 @@
#ifndef __ASM_ARC_TYPES_H #ifndef __ASM_ARC_TYPES_H
#define __ASM_ARC_TYPES_H #define __ASM_ARC_TYPES_H
typedef unsigned short umode_t; #include <asm-generic/int-ll64.h>
/*
* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
* header files exported to user space
*/
typedef __signed__ char __s8;
typedef unsigned char __u8;
typedef __signed__ short __s16;
typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;
#if defined(__GNUC__) && !defined(__STRICT_ANSI__) typedef unsigned short umode_t;
typedef __signed__ long long __s64;
typedef unsigned long long __u64;
#endif
/*
* These aren't exported outside the kernel to avoid name space clashes
*/
typedef signed char s8;
typedef unsigned char u8;
typedef signed short s16;
typedef unsigned short u16;
typedef signed int s32;
typedef unsigned int u32;
typedef signed long long s64;
typedef unsigned long long u64;
#define BITS_PER_LONG 32 #define BITS_PER_LONG 32

@ -1,44 +1,15 @@
#ifndef __ASM_ARM_TYPES_H #ifndef __ASM_ARM_TYPES_H
#define __ASM_ARM_TYPES_H #define __ASM_ARM_TYPES_H
typedef unsigned short umode_t; #include <asm-generic/int-ll64.h>
/*
* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
* header files exported to user space
*/
typedef __signed__ char __s8;
typedef unsigned char __u8;
typedef __signed__ short __s16;
typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;
#if defined(__GNUC__) typedef unsigned short umode_t;
__extension__ typedef __signed__ long long __s64;
__extension__ typedef unsigned long long __u64;
#endif
/* /*
* These aren't exported outside the kernel to avoid name space clashes * These aren't exported outside the kernel to avoid name space clashes
*/ */
#ifdef __KERNEL__ #ifdef __KERNEL__
typedef signed char s8;
typedef unsigned char u8;
typedef signed short s16;
typedef unsigned short u16;
typedef signed int s32;
typedef unsigned int u32;
typedef signed long long s64;
typedef unsigned long long u64;
#ifdef CONFIG_ARM64 #ifdef CONFIG_ARM64
#define BITS_PER_LONG 64 #define BITS_PER_LONG 64
#else /* CONFIG_ARM64 */ #else /* CONFIG_ARM64 */

@ -1,43 +1,17 @@
#ifndef _M68K_TYPES_H #ifndef _M68K_TYPES_H
#define _M68K_TYPES_H #define _M68K_TYPES_H
#include <asm-generic/int-ll64.h>
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
typedef unsigned short umode_t; typedef unsigned short umode_t;
typedef __signed__ char __s8;
typedef unsigned char __u8;
typedef __signed__ short __s16;
typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;
#if defined(__GNUC__)
__extension__ typedef __signed__ long long __s64;
__extension__ typedef unsigned long long __u64;
#endif
typedef struct { typedef struct {
__u32 u[4]; __u32 u[4];
} __attribute__((aligned(16))) vector128; } __attribute__((aligned(16))) vector128;
#ifdef __KERNEL__ #ifdef __KERNEL__
/*
* These aren't exported outside the kernel to avoid name space clashes
*/
typedef signed char s8;
typedef unsigned char u8;
typedef signed short s16;
typedef unsigned short u16;
typedef signed int s32;
typedef unsigned int u32;
typedef signed long long s64;
typedef unsigned long long u64;
#define BITS_PER_LONG 32 #define BITS_PER_LONG 32

@ -1,6 +1,8 @@
#ifndef _ASM_TYPES_H #ifndef _ASM_TYPES_H
#define _ASM_TYPES_H #define _ASM_TYPES_H
#include <asm-generic/int-ll64.h>
/* /*
* This file is never included by application software unless * This file is never included by application software unless
* explicitly requested (e.g., via linux/types.h) in which case the * explicitly requested (e.g., via linux/types.h) in which case the
@ -12,41 +14,10 @@
typedef unsigned short umode_t; typedef unsigned short umode_t;
/* /*
* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
* header files exported to user space
*/
typedef __signed__ char __s8;
typedef unsigned char __u8;
typedef __signed__ short __s16;
typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;
#if defined(__GNUC__)
__extension__ typedef __signed__ long long __s64;
__extension__ typedef unsigned long long __u64;
#endif
/*
* These aren't exported outside the kernel to avoid name space clashes * These aren't exported outside the kernel to avoid name space clashes
*/ */
#ifdef __KERNEL__ #ifdef __KERNEL__
typedef signed char s8;
typedef unsigned char u8;
typedef signed short s16;
typedef unsigned short u16;
typedef signed int s32;
typedef unsigned int u32;
typedef signed long long s64;
typedef unsigned long long u64;
#define BITS_PER_LONG 32 #define BITS_PER_LONG 32
/* Dma addresses are 32-bits wide. */ /* Dma addresses are 32-bits wide. */

@ -6,32 +6,12 @@
#ifndef _ASM_TYPES_H #ifndef _ASM_TYPES_H
#define _ASM_TYPES_H #define _ASM_TYPES_H
#include <asm-generic/int-ll64.h>
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
typedef unsigned short umode_t; typedef unsigned short umode_t;
/*
* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
* header files exported to user space
*/
typedef __signed__ char __s8;
typedef unsigned char __u8;
typedef __signed__ short __s16;
typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;
#if defined(__GNUC__)
__extension__ typedef __signed__ long long __s64;
__extension__ typedef unsigned long long __u64;
#else
typedef __signed__ long long __s64;
typedef unsigned long long __u64;
#endif
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
/* /*
@ -43,18 +23,6 @@ typedef unsigned long long __u64;
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
typedef __signed char s8;
typedef unsigned char u8;
typedef __signed short s16;
typedef unsigned short u16;
typedef __signed int s32;
typedef unsigned int u32;
typedef __signed__ long long s64;
typedef unsigned long long u64;
#if (defined(CONFIG_HIGHMEM) && defined(CONFIG_64BIT_PHYS_ADDR)) \ #if (defined(CONFIG_HIGHMEM) && defined(CONFIG_64BIT_PHYS_ADDR)) \
|| defined(CONFIG_64BIT) || defined(CONFIG_64BIT)
typedef u64 dma_addr_t; typedef u64 dma_addr_t;

@ -11,44 +11,15 @@
#ifndef __ASM_NDS_TYPES_H #ifndef __ASM_NDS_TYPES_H
#define __ASM_NDS_TYPES_H #define __ASM_NDS_TYPES_H
typedef unsigned short umode_t; #include <asm-generic/int-ll64.h>
/*
* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
* header files exported to user space
*/
typedef __signed__ char __s8;
typedef unsigned char __u8;
typedef __signed__ short __s16;
typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;
#if defined(__GNUC__) && !defined(__STRICT_ANSI__) typedef unsigned short umode_t;
typedef __signed__ long long __s64;
typedef unsigned long long __u64;
#endif
/* /*
* These aren't exported outside the kernel to avoid name space clashes * These aren't exported outside the kernel to avoid name space clashes
*/ */
#ifdef __KERNEL__ #ifdef __KERNEL__
typedef signed char s8;
typedef unsigned char u8;
typedef signed short s16;
typedef unsigned short u16;
typedef signed int s32;
typedef unsigned int u32;
typedef signed long long s64;
typedef unsigned long long u64;
#define BITS_PER_LONG 32 #define BITS_PER_LONG 32
#include <stddef.h> #include <stddef.h>

@ -1,43 +1,17 @@
#ifndef _PPC_TYPES_H #ifndef _PPC_TYPES_H
#define _PPC_TYPES_H #define _PPC_TYPES_H
#include <asm-generic/int-ll64.h>
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
typedef unsigned short umode_t; typedef unsigned short umode_t;
typedef __signed__ char __s8;
typedef unsigned char __u8;
typedef __signed__ short __s16;
typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;
#if defined(__GNUC__)
__extension__ typedef __signed__ long long __s64;
__extension__ typedef unsigned long long __u64;
#endif
typedef struct { typedef struct {
__u32 u[4]; __u32 u[4];
} __attribute__((aligned(16))) vector128; } __attribute__((aligned(16))) vector128;
#ifdef __KERNEL__ #ifdef __KERNEL__
/*
* These aren't exported outside the kernel to avoid name space clashes
*/
typedef signed char s8;
typedef unsigned char u8;
typedef signed short s16;
typedef unsigned short u16;
typedef signed int s32;
typedef unsigned int u32;
typedef signed long long s64;
typedef unsigned long long u64;
#define BITS_PER_LONG 32 #define BITS_PER_LONG 32

@ -12,44 +12,15 @@
#ifndef __ASM_RISCV_TYPES_H #ifndef __ASM_RISCV_TYPES_H
#define __ASM_RISCV_TYPES_H #define __ASM_RISCV_TYPES_H
typedef unsigned short umode_t; #include <asm-generic/int-ll64.h>
/*
* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
* header files exported to user space
*/
typedef __signed__ char __s8;
typedef unsigned char __u8;
typedef __signed__ short __s16;
typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;
#if defined(__GNUC__) && !defined(__STRICT_ANSI__) typedef unsigned short umode_t;
typedef __signed__ long long __s64;
typedef unsigned long long __u64;
#endif
/* /*
* These aren't exported outside the kernel to avoid name space clashes * These aren't exported outside the kernel to avoid name space clashes
*/ */
#ifdef __KERNEL__ #ifdef __KERNEL__
typedef signed char s8;
typedef unsigned char u8;
typedef signed short s16;
typedef unsigned short u16;
typedef signed int s32;
typedef unsigned int u32;
typedef signed long long s64;
typedef unsigned long long u64;
#define BITS_PER_LONG 32 #define BITS_PER_LONG 32
#include <stddef.h> #include <stddef.h>

@ -6,44 +6,15 @@
#ifndef __ASM_SANDBOX_TYPES_H #ifndef __ASM_SANDBOX_TYPES_H
#define __ASM_SANDBOX_TYPES_H #define __ASM_SANDBOX_TYPES_H
typedef unsigned short umode_t; #include <asm-generic/int-ll64.h>
/*
* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
* header files exported to user space
*/
typedef __signed__ char __s8;
typedef unsigned char __u8;
typedef __signed__ short __s16;
typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;
#if defined(__GNUC__) typedef unsigned short umode_t;
__extension__ typedef __signed__ long long __s64;
__extension__ typedef unsigned long long __u64;
#endif
/* /*
* These aren't exported outside the kernel to avoid name space clashes * These aren't exported outside the kernel to avoid name space clashes
*/ */
#ifdef __KERNEL__ #ifdef __KERNEL__
typedef signed char s8;
typedef unsigned char u8;
typedef signed short s16;
typedef unsigned short u16;
typedef signed int s32;
typedef unsigned int u32;
typedef signed long long s64;
typedef unsigned long long u64;
/* /*
* Number of bits in a C 'long' on this architecture. * Number of bits in a C 'long' on this architecture.
*/ */

@ -1,29 +1,12 @@
#ifndef __ASM_SH_TYPES_H #ifndef __ASM_SH_TYPES_H
#define __ASM_SH_TYPES_H #define __ASM_SH_TYPES_H
#include <asm-generic/int-ll64.h>
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
typedef unsigned short umode_t; typedef unsigned short umode_t;
/*
* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
* header files exported to user space
*/
typedef __signed__ char __s8;
typedef unsigned char __u8;
typedef __signed__ short __s16;
typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;
#if defined(__GNUC__)
__extension__ typedef __signed__ long long __s64;
__extension__ typedef unsigned long long __u64;
#endif
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
/* /*
@ -35,19 +18,6 @@ __extension__ typedef unsigned long long __u64;
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
typedef __signed__ char s8;
typedef unsigned char u8;
typedef __signed__ short s16;
typedef unsigned short u16;
typedef __signed__ int s32;
typedef unsigned int u32;
typedef __signed__ long long s64;
typedef unsigned long long u64;
/* Dma addresses are 32-bits wide. */ /* Dma addresses are 32-bits wide. */
typedef u32 dma_addr_t; typedef u32 dma_addr_t;

@ -1,44 +1,15 @@
#ifndef __ASM_I386_TYPES_H #ifndef __ASM_I386_TYPES_H
#define __ASM_I386_TYPES_H #define __ASM_I386_TYPES_H
typedef unsigned short umode_t; #include <asm-generic/int-ll64.h>
/*
* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
* header files exported to user space
*/
typedef __signed__ char __s8;
typedef unsigned char __u8;
typedef __signed__ short __s16;
typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;
#if defined(__GNUC__) typedef unsigned short umode_t;
__extension__ typedef __signed__ long long __s64;
__extension__ typedef unsigned long long __u64;
#endif
/* /*
* These aren't exported outside the kernel to avoid name space clashes * These aren't exported outside the kernel to avoid name space clashes
*/ */
#ifdef __KERNEL__ #ifdef __KERNEL__
typedef signed char s8;
typedef unsigned char u8;
typedef signed short s16;
typedef unsigned short u16;
typedef signed int s32;
typedef unsigned int u32;
typedef signed long long s64;
typedef unsigned long long u64;
#if CONFIG_IS_ENABLED(X86_64) #if CONFIG_IS_ENABLED(X86_64)
#define BITS_PER_LONG 64 #define BITS_PER_LONG 64
#else #else

@ -6,44 +6,15 @@
#ifndef _XTENSA_TYPES_H #ifndef _XTENSA_TYPES_H
#define _XTENSA_TYPES_H #define _XTENSA_TYPES_H
typedef unsigned short umode_t; #include <asm-generic/int-ll64.h>
/*
* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
* header files exported to user space
*/
typedef __signed__ char __s8;
typedef unsigned char __u8;
typedef __signed__ short __s16;
typedef unsigned short __u16;
typedef __signed__ int __s32; typedef unsigned short umode_t;
typedef unsigned int __u32;
#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
typedef __signed__ long long __s64;
typedef unsigned long long __u64;
#endif
/* /*
* These aren't exported outside the kernel to avoid name space clashes * These aren't exported outside the kernel to avoid name space clashes
*/ */
#ifdef __KERNEL__ #ifdef __KERNEL__
typedef signed char s8;
typedef unsigned char u8;
typedef signed short s16;
typedef unsigned short u16;
typedef signed int s32;
typedef unsigned int u32;
typedef signed long long s64;
typedef unsigned long long u64;
#define BITS_PER_LONG 32 #define BITS_PER_LONG 32
/* Dma addresses are 32-bits wide */ /* Dma addresses are 32-bits wide */

@ -0,0 +1,47 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* asm-generic/int-ll64.h
*
* Integer declarations for architectures which use "long long"
* for 64-bit types.
*/
#ifndef _ASM_GENERIC_INT_LL64_H
#define _ASM_GENERIC_INT_LL64_H
#ifndef __ASSEMBLY__
/*
* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
* header files exported to user space
*/
typedef __signed__ char __s8;
typedef unsigned char __u8;
typedef __signed__ short __s16;
typedef unsigned short __u16;
typedef __signed__ int __s32;
typedef unsigned int __u32;
#ifdef __GNUC__
__extension__ typedef __signed__ long long __s64;
__extension__ typedef unsigned long long __u64;
#else
typedef __signed__ long long __s64;
typedef unsigned long long __u64;
#endif
typedef __s8 s8;
typedef __u8 u8;
typedef __s16 s16;
typedef __u16 u16;
typedef __s32 s32;
typedef __u32 u32;
typedef __s64 s64;
typedef __u64 u64;
#endif /* __ASSEMBLY__ */
#endif /* _ASM_GENERIC_INT_LL64_H */

@ -0,0 +1,9 @@
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _ASM_GENERIC_TYPES_H
#define _ASM_GENERIC_TYPES_H
/*
* int-ll64 is used everywhere now.
*/
#include <asm-generic/int-ll64.h>
#endif /* _ASM_GENERIC_TYPES_H */
Loading…
Cancel
Save