forked from Minki/linux
bebd9a455b
virtio tests with guests larger than 4 GB revealed that the dma_addr_t definition for s390 did not make it into the 64bit world. This patch changes the definition on s390 to have an u64 on 64bit and u32 on 32bit systems. Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
64 lines
1.1 KiB
C
64 lines
1.1 KiB
C
/*
|
|
* include/asm-s390/types.h
|
|
*
|
|
* S390 version
|
|
*
|
|
* Derived from "include/asm-i386/types.h"
|
|
*/
|
|
|
|
#ifndef _S390_TYPES_H
|
|
#define _S390_TYPES_H
|
|
|
|
#ifndef __s390x__
|
|
# include <asm-generic/int-ll64.h>
|
|
#else
|
|
# include <asm-generic/int-l64.h>
|
|
#endif
|
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
typedef unsigned short umode_t;
|
|
|
|
/* A address type so that arithmetic can be done on it & it can be upgraded to
|
|
64 bit when necessary
|
|
*/
|
|
typedef unsigned long addr_t;
|
|
typedef __signed__ long saddr_t;
|
|
|
|
#endif /* __ASSEMBLY__ */
|
|
|
|
/*
|
|
* These aren't exported outside the kernel to avoid name space clashes
|
|
*/
|
|
#ifdef __KERNEL__
|
|
|
|
#ifndef __s390x__
|
|
#define BITS_PER_LONG 32
|
|
#else
|
|
#define BITS_PER_LONG 64
|
|
#endif
|
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
typedef u64 dma64_addr_t;
|
|
#ifdef __s390x__
|
|
/* DMA addresses come in 32-bit and 64-bit flavours. */
|
|
typedef u64 dma_addr_t;
|
|
#else
|
|
typedef u32 dma_addr_t;
|
|
#endif
|
|
|
|
#ifndef __s390x__
|
|
typedef union {
|
|
unsigned long long pair;
|
|
struct {
|
|
unsigned long even;
|
|
unsigned long odd;
|
|
} subreg;
|
|
} register_pair;
|
|
|
|
#endif /* ! __s390x__ */
|
|
#endif /* __ASSEMBLY__ */
|
|
#endif /* __KERNEL__ */
|
|
#endif /* _S390_TYPES_H */
|