about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/x86_64/bits/stat.h
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2002-03-04 13:40:44 +0000
committerAndreas Jaeger <aj@suse.de>2002-03-04 13:40:44 +0000
commit76d81302250475cbca24bb3d257a446b044bc343 (patch)
tree203aa32e7087871cbd119b51fa4f31b63ef3606f /sysdeps/unix/sysv/linux/x86_64/bits/stat.h
parenta06bb7ce8829e123c996c50302b557af803bd1de (diff)
downloadglibc-76d81302250475cbca24bb3d257a446b044bc343.tar.gz
glibc-76d81302250475cbca24bb3d257a446b044bc343.tar.xz
glibc-76d81302250475cbca24bb3d257a446b044bc343.zip
Update.
2002-03-04  Andreas Jaeger  <aj@suse.de>

	* sysdeps/unix/sysv/linux/kernel-features.h: Add defines for
	x86-64.

	* sysdeps/unix/sysv/linux/x86_64/bits/socket.h: New.

	* sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h: New.

	* sysdeps/unix/sysv/linux/x86_64/bits/shm.h: New.

	* sysdeps/x86_64/bits/setjmp.h: New.

	* sysdeps/unix/sysv/linux/x86_64/bits/sem.h: New.

	* sysdeps/unix/sysv/linux/x86_64/bits/resource.h: New.

	* sysdeps/unix/sysv/linux/x86_64/bits/fcntl.h: Add compatibilty
	for x86.
	* sysdeps/unix/sysv/linux/x86_64/bits/msq.h: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/bits/types.h: Likewise.

2002-02-28  Bo Thorsen  <bo@suse.de>

	* sysdeps/unix/sysv/linux/x86_64/bits/stat.h: Merge with i386
	version.
Diffstat (limited to 'sysdeps/unix/sysv/linux/x86_64/bits/stat.h')
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/bits/stat.h73
1 files changed, 67 insertions, 6 deletions
diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/stat.h b/sysdeps/unix/sysv/linux/x86_64/bits/stat.h
index 818a58b585..8c74b3ff53 100644
--- a/sysdeps/unix/sysv/linux/x86_64/bits/stat.h
+++ b/sysdeps/unix/sysv/linux/x86_64/bits/stat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 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
@@ -25,44 +25,101 @@
 #define _STAT_VER_LINUX		1
 #define _STAT_VER		_STAT_VER_LINUX
 
-/* Versions of the `xmknod' interface.  */
-#define _MKNOD_VER_LINUX	0
+#if __WORDSIZE == 32
+# define _STAT_VER_SVR4		2
+# define _STAT_VER_LINUX	3
+
+/* i386 versions of the `xmknod' interface.  */
+# define _MKNOD_VER_LINUX	1
+# define _MKNOD_VER_SVR4	2
+# define _MKNOD_VER		_MKNOD_VER_LINUX /* The bits defined below.  */
+#else
+/* x86-64 versions of the `xmknod' interface.  */
+# define _MKNOD_VER_LINUX	0
+#endif
 
 struct stat
   {
     __dev_t st_dev;		/* Device.  */
+#if __WORDSIZE == 32
+    unsigned short int __pad1;
+#endif
+#if __WORDSIZE == 64 || !defined __USE_FILE_OFFSET64
     __ino_t st_ino;		/* File serial number.	*/
+#else
+    __ino_t __st_ino;			/* 32bit file serial number.	*/
+#endif
+#if __WORDSIZE == 32
+    __mode_t st_mode;			/* File mode.  */
+    __nlink_t st_nlink;			/* Link count.  */
+#else
     __nlink_t st_nlink;		/* Link count.  */
     __mode_t st_mode;		/* File mode.  */
+#endif
     __uid_t st_uid;		/* User ID of the file's owner.	*/
     __gid_t st_gid;		/* Group ID of the file's group.*/
+#if __WORDSIZE == 64
     int pad0;
+#endif
     __dev_t st_rdev;		/* Device number, if device.  */
-    __off_t st_size;		/* Size of file, in bytes.  */
+#if __WORDSIZE == 32
+    unsigned short int __pad2;
+#endif
+#if __WORDSIZE == 64 || !defined __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.  */
-    __blkcnt_t st_blocks;	/* Nr. 512-byte blocks allocated.  */
+#if __WORDSIZE == 64 || !defined __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.  */
     long int __reserved0;	/* Reserved for atime.nanoseconds.  */
     __time_t st_mtime;		/* Time of last modification.  */
     long int __reserved1;	/* Reserved for mtime.nanoseconds.  */
     __time_t st_ctime;		/* Time of last status change.  */
     long int __reserved2;	/* Reserved for ctime.nanoseconds.  */
+#if __WORDSIZE == 64
     long int __unused[3];
+#else
+# ifndef __USE_FILE_OFFSET64
+    unsigned long int __unused4;
+    unsigned long int __unused5;
+# else
+    __ino64_t st_ino;			/* File serial number.	*/
+# endif
+#endif
   };
 
 #ifdef __USE_LARGEFILE64
-/* Note stat64 has the same shape as stat.  */
+/* Note stat64 has the same shape as stat for x86-64.  */
 struct stat64
   {
     __dev_t st_dev;		/* Device.  */
+#if __WORDSIZE == 64
     __ino64_t st_ino;		/* File serial number.  */
     __nlink_t st_nlink;		/* Link count.  */
     __mode_t st_mode;		/* File mode.  */
+#else
+    unsigned int __pad1;
+    __ino_t __st_ino;			/* 32bit file serial number.	*/
+    __mode_t st_mode;			/* File mode.  */
+    __nlink_t st_nlink;			/* Link count.  */
+#endif
     __uid_t st_uid;		/* User ID of the file's owner.	*/
     __gid_t st_gid;		/* Group ID of the file's group.*/
+#if __WORDSIZE == 64
     int pad0;
     __dev_t st_rdev;		/* Device number, if device.  */
     __off_t st_size;		/* Size of file, in bytes.  */
+#else
+    __dev_t st_rdev;			/* Device number, if device.  */
+    unsigned int __pad2;
+    __off64_t st_size;			/* Size of file, in bytes.  */
+#endif
     __blksize_t st_blksize;	/* Optimal block size for I/O.  */
     __blkcnt64_t st_blocks;	/* Nr. 512-byte blocks allocated.  */
     __time_t st_atime;		/* Time of last access.  */
@@ -71,7 +128,11 @@ struct stat64
     long int __reserved1;	/* Reserved for mtime.nanoseconds.  */
     __time_t st_ctime;		/* Time of last status change.  */
     long int __reserved2;	/* Reserved for ctime.nanoseconds.  */
+#if __WORDSIZE == 64
     long int __unused[3];
+#else
+    __ino64_t st_ino;			/* File serial number.		*/
+#endif
   };
 #endif