This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
[PATCH 09/18] Provide POSIX defined blkcnt_t in <sys/types.h>
- From: Sebastian Huber <sebastian dot huber at embedded-brains dot de>
- To: newlib at sourceware dot org
- Cc: devel at rtems dot org, Sebastian Huber <sebastian dot huber at embedded-brains dot de>
- Date: Thu, 14 Apr 2016 13:54:38 +0200
- Subject: [PATCH 09/18] Provide POSIX defined blkcnt_t in <sys/types.h>
- Authentication-results: sourceware.org; auth=none
- References: <1460634887-4420-1-git-send-email-sebastian dot huber at embedded-brains dot de>
Signed-off-by: Sebastian Huber <sebastian.huber@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