From a6d2806b8ff4363342c33aabd781f6d21adc97b9 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 6 May 1998 09:50:30 +0000 Subject: [PATCH] Add LFS support and use correct types overall. --- sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h | 53 ++++++++++++++++++++++------ 1 file changed, 43 insertions(+), 10 deletions(-) diff --git a/sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h b/sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h index c6048a9..ef93b7b 100644 --- a/sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h +++ b/sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1996, 1997, 1998 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 @@ -22,19 +22,21 @@ #include +/* Length of array allocated for file system type name. */ +#define _ST_FSTYPSZ 16 + + /* Structure describing file characteristics. */ struct stat { - unsigned long int st_dev; + __dev_t st_dev; long int st_filler1[3]; __ino_t st_ino; /* File serial number. */ - unsigned long int st_mode; /* File mode. */ - /* This is unsigned long instead of __nlink_t, since SVR4 has - a long nlink_t, not a short one. */ - unsigned long int st_nlink; /* Link count. */ + __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.*/ - unsigned long int st_rdev; /* Device number, if device. */ + __dev_t st_rdev; /* Device number, if device. */ long int st_filler2[2]; __off_t st_size; /* Size of file, in bytes. */ @@ -48,14 +50,45 @@ struct stat __time_t st_ctime; /* Time of last status change. */ unsigned long int st_ctime_usec; - __blkcnt_t st_blksize; /* Optimal block size for I/O. */ + long int st_blksize; /* Optimal block size for I/O. */ #define _STATBUF_ST_BLKSIZE /* Tell code we have this member. */ - long int st_blocks; /* Number of 512-byte blocks allocated. */ - char st_fstype[16]; + __blkcnt_t st_blocks; /* Number of 512-byte blocks allocated. */ + char st_fstype[_ST_FSTYPSZ]; long int st_filler4[8]; }; +#ifdef __USE_LARGEFILE64 +/* struct stat64 has the shape as stat */ +struct stat64 + { + __dev_t st_dev; /* Device */ + long int st_filler1[2]; + __ino64_t st_ino; /* File serial number */ + __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 */ + long int st_filler2; + + __off64_t st_size; /* Size of file, in bytes. */ + + __time_t st_atime; /* Time of last access */ + unsigned long int st_atime_usec; + __time_t st_mtime; /* Time of last modification */ + unsigned long int st_mtime_usec; + __time_t st_ctime; /* Time of last status change */ + unsigned long int st_ctime_usec; + + long int st_blksize; + __blkcnt64_t st_blocks; + char st_fstype[_ST_FSTYPSZ]; + long int st_filler3[8]; +}; +#endif + + /* Encoding of the file mode. */ #define __S_IFMT 0170000 /* These bits determine file type. */ -- 2.7.4