aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/powerpc/bits/stat.h
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/powerpc/bits/stat.h')
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/stat.h114
1 files changed, 95 insertions, 19 deletions
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/stat.h b/sysdeps/unix/sysv/linux/powerpc/bits/stat.h
index fa3df6e27b..c85695e511 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/stat.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/stat.h
@@ -1,4 +1,5 @@
-/* Copyright (C) 1992,95,96,97,98,99,2000,2001 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+ Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -20,12 +21,18 @@
# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
#endif
+#include <bits/wordsize.h>
+
/* Versions of the `struct stat' data structure. */
#define _STAT_VER_LINUX_OLD 1
#define _STAT_VER_KERNEL 1
#define _STAT_VER_SVR4 2
-#define _STAT_VER_LINUX 3
-#define _STAT_VER _STAT_VER_LINUX /* The one defined below. */
+#if __WORDSIZE == 32
+# define _STAT_VER_LINUX 3
+# define _STAT_VER _STAT_VER_LINUX /* The one defined below. */
+#else
+# define _STAT_VER _STAT_VER_KERNEL /* The one defined below. */
+#endif
/* Versions of the `xmknod' interface. */
#define _MKNOD_VER_LINUX 1
@@ -33,44 +40,47 @@
#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
+#if __WORDSIZE == 32
+
struct stat
{
__dev_t st_dev; /* Device. */
-#ifndef __USE_FILE_OFFSET64
+# ifndef __USE_FILE_OFFSET64
unsigned short int __pad1;
__ino_t st_ino; /* File serial number. */
-#else
+# else
__ino64_t st_ino; /* File serial number. */
-#endif
+# endif
__mode_t st_mode; /* File mode. */
__nlink_t st_nlink; /* Link count. */
__uid_t st_uid; /* User ID of the file's owner. */
__gid_t st_gid; /* Group ID of the file's group.*/
__dev_t st_rdev; /* Device number, if device. */
unsigned short int __pad2;
-#ifndef __USE_FILE_OFFSET64
+# ifndef __USE_FILE_OFFSET64
__off_t st_size; /* Size of file, in bytes. */
-#else
+# else
__off64_t st_size; /* Size of file, in bytes. */
-#endif
+# endif
__blksize_t st_blksize; /* Optimal block size for I/O. */
-#ifndef __USE_FILE_OFFSET64
+# ifndef __USE_FILE_OFFSET64
__blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */
-#else
+# else
__blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
-#endif
+# endif
__time_t st_atime; /* Time of last access. */
- unsigned long int __unused1;
+ unsigned long int __unused1; /* Reserved for atime.nanoseconds. */
__time_t st_mtime; /* Time of last modification. */
- unsigned long int __unused2;
+ unsigned long int __unused2; /* Reserved for mtime.nanoseconds. */
__time_t st_ctime; /* Time of last status change. */
- unsigned long int __unused3;
+ unsigned long int __unused3; /* Reserved for ctime.nanoseconds. */
unsigned long int __unused4;
unsigned long int __unused5;
};
-#ifdef __USE_LARGEFILE64
+
+# ifdef __USE_LARGEFILE64
struct stat64
{
__dev_t st_dev; /* Device. */
@@ -83,19 +93,85 @@ struct stat64
unsigned short int __pad2;
__off64_t st_size; /* Size of file, in bytes. */
__blksize_t st_blksize; /* Optimal block size for I/O. */
+ __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int __unused1; /* Reserved for atime.nanoseconds. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int __unused2; /* Reserved for mtime.nanoseconds. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int __unused3; /* Reserved for ctime.nanoseconds. */
+ unsigned long int __unused4;
+ unsigned long int __unused5;
+ };
+# endif /* __USE_LARGEFILE64 */
+
+#else /* __WORDSIZE == 32 */
+
+struct stat
+ {
+ __dev_t st_dev; /* Device. */
+# ifndef __USE_FILE_OFFSET64
+ __ino_t st_ino; /* File serial number. */
+# else
+ __ino64_t st_ino; /* File serial number. */
+# endif
+ __nlink_t st_nlink; /* Link count. */
+ __mode_t st_mode; /* File mode. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ int __pad2;
+ __dev_t st_rdev; /* Device number, if device. */
+# ifndef __USE_FILE_OFFSET64
+ __off_t st_size; /* Size of file, in bytes. */
+# else
+ __off64_t st_size; /* Size of file, in bytes. */
+# endif
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+# ifndef __USE_FILE_OFFSET64
+ __blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */
+# else
__blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+# endif
__time_t st_atime; /* Time of last access. */
- unsigned long int __unused1;
+ unsigned long int __unused1; /* Reserved for atime.nanoseconds. */
__time_t st_mtime; /* Time of last modification. */
- unsigned long int __unused2;
+ unsigned long int __unused2; /* Reserved for mtime.nanoseconds. */
__time_t st_ctime; /* Time of last status change. */
- unsigned long int __unused3;
+ unsigned long int __unused3; /* Reserved for ctime.nanoseconds. */
unsigned long int __unused4;
unsigned long int __unused5;
+ unsigned long int __unused6;
};
+
+# ifdef __USE_LARGEFILE64
+struct stat64
+ {
+ __dev_t st_dev; /* Device. */
+ __ino64_t st_ino; /* File serial number. */
+ __nlink_t st_nlink; /* Link count. */
+ __mode_t st_mode; /* File mode. */
+ __uid_t st_uid; /* User ID of the file's owner. */
+ __gid_t st_gid; /* Group ID of the file's group.*/
+ int __pad2;
+ __dev_t st_rdev; /* Device number, if device. */
+ __off64_t st_size; /* Size of file, in bytes. */
+ __blksize_t st_blksize; /* Optimal block size for I/O. */
+ __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
+ __time_t st_atime; /* Time of last access. */
+ unsigned long int __unused1; /* Reserved for atime.nanoseconds. */
+ __time_t st_mtime; /* Time of last modification. */
+ unsigned long int __unused2; /* Reserved for mtime.nanoseconds. */
+ __time_t st_ctime; /* Time of last status change. */
+ unsigned long int __unused3; /* Reserved for ctime.nanoseconds. */
+ unsigned long int __unused4;
+ unsigned long int __unused5;
+ unsigned long int __unused6;
+ };
+# endif /* __USE_LARGEFILE64 */
#endif
+
/* Tell code we have these members. */
#define _STATBUF_ST_BLKSIZE
#define _STATBUF_ST_RDEV