diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/powerpc/bits/stat.h')
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/bits/stat.h | 114 |
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 |