2005-10-20 03:45:03 +04:00
# ifndef _ASM_POWERPC_TYPES_H
# define _ASM_POWERPC_TYPES_H
2005-04-17 02:20:36 +04:00
# ifndef __ASSEMBLY__
/*
* This file is never included by application software unless
* explicitly requested ( e . g . , via linux / types . h ) in which case the
* application is Linux specific so ( user - ) name space pollution is
* not a major issue . However , for interoperability , libraries still
* need to be careful to avoid a name clashes .
*
* 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 ; either version
* 2 of the License , or ( at your option ) any later version .
*/
2005-10-20 03:45:03 +04:00
# ifdef __powerpc64__
2005-04-17 02:20:36 +04:00
typedef unsigned int umode_t ;
2005-10-20 03:45:03 +04:00
# else
typedef unsigned short umode_t ;
# endif
2005-04-17 02:20:36 +04:00
/*
* __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 ;
2005-10-20 03:45:03 +04:00
# ifdef __powerpc64__
2005-04-17 02:20:36 +04:00
typedef __signed__ long __s64 ;
typedef unsigned long __u64 ;
2005-10-20 03:45:03 +04:00
# else
# if defined(__GNUC__) && !defined(__STRICT_ANSI__)
typedef __signed__ long long __s64 ;
typedef unsigned long long __u64 ;
# endif
# endif /* __powerpc64__ */
2005-04-17 02:20:36 +04:00
typedef struct {
__u32 u [ 4 ] ;
} __attribute ( ( aligned ( 16 ) ) ) __vector128 ;
# endif /* __ASSEMBLY__ */
# ifdef __KERNEL__
/*
* These aren ' t exported outside the kernel to avoid name space clashes
*/
2005-10-20 03:45:03 +04:00
# ifdef __powerpc64__
2005-04-17 02:20:36 +04:00
# define BITS_PER_LONG 64
2005-10-20 03:45:03 +04:00
# else
# define BITS_PER_LONG 32
# endif
2005-04-17 02:20:36 +04:00
# ifndef __ASSEMBLY__
2005-10-22 01:16:58 +04:00
# include <linux/config.h>
2005-04-17 02:20:36 +04:00
typedef signed char s8 ;
typedef unsigned char u8 ;
typedef signed short s16 ;
typedef unsigned short u16 ;
typedef signed int s32 ;
typedef unsigned int u32 ;
2005-10-20 03:45:03 +04:00
# ifdef __powerpc64__
2005-04-17 02:20:36 +04:00
typedef signed long s64 ;
typedef unsigned long u64 ;
2005-10-20 03:45:03 +04:00
# else
typedef signed long long s64 ;
typedef unsigned long long u64 ;
# endif
2005-04-17 02:20:36 +04:00
typedef __vector128 vector128 ;
2005-10-25 10:56:43 +04:00
# ifdef __powerpc64__
typedef u64 dma_addr_t ;
# else
2005-04-17 02:20:36 +04:00
typedef u32 dma_addr_t ;
2005-10-25 10:56:43 +04:00
# endif
2005-04-17 02:20:36 +04:00
typedef u64 dma64_addr_t ;
typedef struct {
unsigned long entry ;
unsigned long toc ;
unsigned long env ;
} func_descr_t ;
2005-10-20 03:45:03 +04:00
# ifdef CONFIG_LBD
typedef u64 sector_t ;
# define HAVE_SECTOR_T
# endif
2006-03-26 13:37:52 +04:00
# ifdef CONFIG_LSF
typedef u64 blkcnt_t ;
# define HAVE_BLKCNT_T
# endif
2005-04-17 02:20:36 +04:00
# endif /* __ASSEMBLY__ */
# endif /* __KERNEL__ */
2005-10-20 03:45:03 +04:00
# endif /* _ASM_POWERPC_TYPES_H */