2010-10-08 Ralf Corsépius * libc/include/sys/types.h: Add _mode_t for __rtems__. * libc/sys/rtems/machine/_types.h: Provide _mode_t, _fpos_t, _off_t. Add _ssize_t for 64bit sparc. Let arm, i386, m68k, mips, PPC, sparc use 64bit _off_t, _fpos_t. Index: libc/include/sys/types.h =================================================================== RCS file: /cvs/src/src/newlib/libc/include/sys/types.h,v retrieving revision 1.32 diff -u -r1.32 types.h --- libc/include/sys/types.h 23 Feb 2010 23:13:20 -0000 1.32 +++ libc/include/sys/types.h 8 Oct 2010 16:10:59 -0000 @@ -171,12 +171,16 @@ typedef int pid_t; #endif +#if defined(__rtems__) +typedef _mode_t mode_t; +#endif + #ifndef __CYGWIN__ typedef long key_t; #endif typedef _ssize_t ssize_t; -#ifndef __CYGWIN__ +#if !defined(__CYGWIN__) && !defined(__rtems__) #ifdef __MS_types__ typedef char * addr_t; typedef int mode_t; Index: libc/sys/rtems/machine/_types.h =================================================================== RCS file: /cvs/src/src/newlib/libc/sys/rtems/machine/_types.h,v retrieving revision 1.4 diff -u -r1.4 _types.h --- libc/sys/rtems/machine/_types.h 30 Jul 2010 07:40:26 -0000 1.4 +++ libc/sys/rtems/machine/_types.h 8 Oct 2010 16:10:59 -0000 @@ -20,6 +20,9 @@ typedef long signed int _ssize_t; #endif #define __ssize_t_defined 1 +#elif defined(__sparc__) && defined(__LP64__) +typedef long signed int _ssize_t; +#define __ssize_t_defined 1 #elif defined(__AVR__) || defined(__lm32__) || defined(__m32c__) || defined(__mips__) || defined(__moxie__) || defined(__PPC__) || defined(__sparc__) || defined(__sh__) typedef signed int _ssize_t; #define __ssize_t_defined 1 @@ -31,4 +34,24 @@ typedef __int32_t blksize_t; typedef __int32_t blkcnt_t; + +#if defined(__arm__) || defined(__i386__) || defined(__m68k__) || defined(__mips__) || defined(__PPC__) || defined(__sparc__) +/* Use 64bit types */ +typedef __int64_t _off_t; +#define __off_t_defined 1 + +typedef __int64_t _fpos_t; +#define __fpos_t_defined 1 +#else +/* Use 32bit types */ +typedef __int32_t _off_t; +#define __off_t_defined 1 + +typedef __int32_t _fpos_t; +#define __fpos_t_defined 1 +#endif + +typedef __uint32_t _mode_t; +#define __mode_t_defined 1 + #endif