[PATCH 09/18] Provide POSIX defined blkcnt_t in <sys/types.h>

Sebastian Huber sebastian.huber at embedded-brains.de
Thu Apr 14 11:54:38 UTC 2016


Signed-off-by: Sebastian Huber <sebastian.huber at embedded-brains.de>
---
 newlib/libc/include/sys/_types.h               | 4 ++++
 newlib/libc/include/sys/stat.h                 | 2 +-
 newlib/libc/include/sys/types.h                | 5 +++++
 newlib/libc/sys/rtems/include/machine/_types.h | 4 +++-
 winsup/cygwin/include/cygwin/types.h           | 6 ------
 winsup/cygwin/include/machine/_types.h         | 4 ++++
 6 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/newlib/libc/include/sys/_types.h b/newlib/libc/include/sys/_types.h
index 16fbc13..c9a6678 100644
--- a/newlib/libc/include/sys/_types.h
+++ b/newlib/libc/include/sys/_types.h
@@ -22,6 +22,10 @@
 #include <machine/_types.h>
 #include <sys/lock.h>
 
+#ifndef __machine_blkcnt_t_defined
+typedef long __blkcnt_t;
+#endif
+
 #ifndef __machine_off_t_defined
 typedef long _off_t;
 #endif
diff --git a/newlib/libc/include/sys/stat.h b/newlib/libc/include/sys/stat.h
index a995e83..a75c1c2 100644
--- a/newlib/libc/include/sys/stat.h
+++ b/newlib/libc/include/sys/stat.h
@@ -54,7 +54,7 @@ struct	stat
   time_t	st_ctime;
   long		st_spare3;
   long		st_blksize;
-  long		st_blocks;
+  blkcnt_t	st_blocks;
   long	st_spare4[2];
 #endif
 #endif
diff --git a/newlib/libc/include/sys/types.h b/newlib/libc/include/sys/types.h
index d0627fd..ac8252e 100644
--- a/newlib/libc/include/sys/types.h
+++ b/newlib/libc/include/sys/types.h
@@ -96,6 +96,11 @@ typedef	unsigned int	uint;		/* System V compatibility */
 typedef	unsigned long	ulong;		/* System V compatibility */
 #endif
 
+#ifndef _BLKCNT_T_DECLARED
+typedef	__blkcnt_t	blkcnt_t;
+#define	_BLKCNT_T_DECLARED
+#endif
+
 #if !defined(__clock_t_defined) && !defined(_CLOCK_T_DECLARED)
 typedef	_CLOCK_T_	clock_t;
 #define	__clock_t_defined
diff --git a/newlib/libc/sys/rtems/include/machine/_types.h b/newlib/libc/sys/rtems/include/machine/_types.h
index 15de3ce..3dbcb3d 100644
--- a/newlib/libc/sys/rtems/include/machine/_types.h
+++ b/newlib/libc/sys/rtems/include/machine/_types.h
@@ -4,7 +4,9 @@
 #include <machine/_default_types.h>
 
 typedef	__int32_t	blksize_t;
-typedef	__int32_t	blkcnt_t;
+
+typedef	__int32_t	__blkcnt_t;
+#define	__machine_blkcnt_t_defined
 
 typedef	__uint64_t	__dev_t;
 #define	__machine_dev_t_defined
diff --git a/winsup/cygwin/include/cygwin/types.h b/winsup/cygwin/include/cygwin/types.h
index 2a9580e..b7c3e23 100644
--- a/winsup/cygwin/include/cygwin/types.h
+++ b/winsup/cygwin/include/cygwin/types.h
@@ -39,12 +39,6 @@ typedef __loff_t loff_t;
 typedef __int32_t blksize_t;
 #endif /*__blksize_t_defined*/
 
-#ifndef __blkcnt_t_defined
-#define __blkcnt_t_defined
-typedef __int32_t __blkcnt32_t;
-typedef __int64_t blkcnt_t;
-#endif /*__blkcnt_t_defined*/
-
 #ifndef __fsblkcnt_t_defined
 #define __fsblkcnt_t_defined
 /* Keep as is.  32 bit on i386, 64 bit on x86_64. */
diff --git a/winsup/cygwin/include/machine/_types.h b/winsup/cygwin/include/machine/_types.h
index 20e5ae5..d354cea 100644
--- a/winsup/cygwin/include/machine/_types.h
+++ b/winsup/cygwin/include/machine/_types.h
@@ -6,12 +6,16 @@
 #include <machine/_default_types.h>
 
 #if defined (__INSIDE_CYGWIN__) || defined (_COMPILING_NEWLIB)
+typedef __int32_t __blkcnt32_t;
 typedef __int16_t  __dev16_t;
 typedef __uint16_t __uid16_t;
 typedef __uint16_t __gid16_t;
 typedef __uint32_t __ino32_t;
 #endif
 
+#define __machine_blkcnt_t_defined
+typedef __uint64_t __blkcnt_t;
+
 #define __machine_dev_t_defined
 typedef __uint32_t __dev_t;
 
-- 
1.8.4.5



More information about the devel mailing list