summary refs log tree commit diff
path: root/io/sys/stat.h
diff options
context:
space:
mode:
Diffstat (limited to 'io/sys/stat.h')
-rw-r--r--io/sys/stat.h110
1 files changed, 76 insertions, 34 deletions
diff --git a/io/sys/stat.h b/io/sys/stat.h
index d57b8d6ee8..76ef3c5f28 100644
--- a/io/sys/stat.h
+++ b/io/sys/stat.h
@@ -27,25 +27,79 @@
 
 #include <bits/types.h>		/* For __mode_t and __dev_t.  */
 
+#ifdef __USE_UNIX98
+/* The Single Unix specification says that some more types are
+   available here.  */
+# ifndef dev_t
+typedef __dev_t dev_t;
+#  define dev_t dev_t
+# endif
+
+# ifndef gid_t
+typedef __gid_t gid_t;
+#  define gid_t gid_t
+# endif
+
+# ifndef ino_t
+#  ifndef __USE_FILE_OFFSET64
+typedef __ino_t ino_t;
+#  else
+typedef __ino64_t ino_t;
+#  endif
+#  define ino_t ino_t
+# endif
+
+# ifndef mode_t
+typedef __mode_t mode_t;
+#  define mode_t mode_t
+# endif
+
+# ifndef nlink_t
+typedef __nlink_t nlink_t;
+#  define nlink_t nlink_t
+# endif
+
+# ifndef off_t
+#  ifndef __USE_FILE_OFFSET64
+typedef __off_t off_t;
+#  else
+typedef __off64_t off_t;
+#  endif
+#  define off_t off_t
+# endif
+
+# ifndef uid_t
+typedef __uid_t uid_t;
+#  define uid_t uid_t
+# endif
+
+# ifndef pid_t
+typedef __pid_t pid_t;
+#  define pid_t pid_t
+# endif
+#endif	/* Unix98 */
+
 __BEGIN_DECLS
 
 #include <bits/stat.h>
 
-#if defined __USE_BSD || defined __USE_MISC
+#if defined __USE_BSD || defined __USE_MISC || defined __USE_UNIX98
 # define S_IFMT		__S_IFMT
 # define S_IFDIR	__S_IFDIR
 # define S_IFCHR	__S_IFCHR
 # define S_IFBLK	__S_IFBLK
 # define S_IFREG	__S_IFREG
-# ifdef __S_IFLNK
-#  define S_IFLNK	__S_IFLNK
-# endif
-# ifdef __S_IFSOCK
-#  define S_IFSOCK	__S_IFSOCK
-# endif
 # ifdef __S_IFIFO
 #  define S_IFIFO	__S_IFIFO
 # endif
+# ifndef __USE_UNIX98
+#  ifdef __S_IFLNK
+#   define S_IFLNK	__S_IFLNK
+#  endif
+#  ifdef __S_IFSOCK
+#   define S_IFSOCK	__S_IFSOCK
+#  endif
+# endif
 #endif
 
 /* Test macros for file types.	*/
@@ -221,15 +275,25 @@ extern int mkfifo __P ((__const char *__path, __mode_t __mode));
 #endif
 
 /* Wrappers for stat and mknod system calls.  */
+#ifndef __USE_FILE_OFFSET64
 extern int __fxstat __P ((int __ver, int __fildes,
 			  struct stat *__stat_buf));
 extern int __xstat __P ((int __ver, __const char *__filename,
 			 struct stat *__stat_buf));
 extern int __lxstat __P ((int __ver, __const char *__filename,
 			  struct stat *__stat_buf));
-extern int __xmknod __P ((int __ver, __const char *__path,
-			  __mode_t __mode, __dev_t *__dev));
-#if defined __USE_LARGEFILE64 || defined __USE_FILE_OFFSET64
+#else
+extern int __fxstat __P ((int __ver, int __fildes,
+			  struct stat *__stat_buf))
+     __asm__ ("__fxstat64");
+extern int __xstat __P ((int __ver, __const char *__filename,
+			 struct stat *__stat_buf))
+     __asm__ ("__xstat64");
+extern int __lxstat __P ((int __ver, __const char *__filename,
+			  struct stat *__stat_buf))
+     __asm__ ("__lxstat64");
+#endif
+#ifdef __USE_LARGEFILE64
 extern int __fxstat64 __P ((int __ver, int __fildes,
 			    struct stat64 *__stat_buf));
 extern int __xstat64 __P ((int __ver, __const char *__filename,
@@ -237,61 +301,39 @@ extern int __xstat64 __P ((int __ver, __const char *__filename,
 extern int __lxstat64 __P ((int __ver, __const char *__filename,
 			    struct stat64 *__stat_buf));
 #endif
+extern int __xmknod __P ((int __ver, __const char *__path,
+			  __mode_t __mode, __dev_t *__dev));
 
 #if defined __GNUC__ && __GNUC__ >= 2
 /* Inlined versions of the real stat and mknod functions.  */
 
 extern __inline__ int __stat (__const char *__path, struct stat *__statbuf)
 {
-# ifndef __USE_FILE_OFFSET64
   return __xstat (_STAT_VER, __path, __statbuf);
-# else
-  return __xstat64 (_STAT_VER, __path, __statbuf);
-# endif
 }
 extern __inline__ int stat (__const char *__path, struct stat *__statbuf)
 {
-# ifndef __USE_FILE_OFFSET64
   return __xstat (_STAT_VER, __path, __statbuf);
-# else
-  return __xstat64 (_STAT_VER, __path, __statbuf);
-# endif
 }
 
 extern __inline__ int __lstat (__const char *__path, struct stat *__statbuf)
 {
-# ifndef __USE_FILE_OFFSET64
   return __lxstat (_STAT_VER, __path, __statbuf);
-# else
-  return __lxstat64 (_STAT_VER, __path, __statbuf);
-# endif
 }
 # if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
 extern __inline__ int lstat (__const char *__path, struct stat *__statbuf)
 {
-#  ifndef __USE_FILE_OFFSET64
   return __lxstat (_STAT_VER, __path, __statbuf);
-#  else
-  return __lxstat64 (_STAT_VER, __path, __statbuf);
-#  endif
 }
 # endif
 
 extern __inline__ int __fstat (int __fd, struct stat *__statbuf)
 {
-# ifndef __USE_FILE_OFFSET64
   return __fxstat (_STAT_VER, __fd, __statbuf);
-# else
-  return __fxstat64 (_STAT_VER, __fd, __statbuf);
-# endif
 }
 extern __inline__ int fstat (int __fd, struct stat *__statbuf)
 {
-# ifndef __USE_FILE_OFFSET64
   return __fxstat (_STAT_VER, __fd, __statbuf);
-# else
-  return __fxstat64 (_STAT_VER, __fd, __statbuf);
-# endif
 }
 
 extern __inline__ int __mknod (__const char *__path, __mode_t __mode,