Add stat LFS extensions.

This commit is contained in:
Ulrich Drepper 1997-10-06 02:24:05 +00:00
parent eebf2c4a79
commit 3abeec50c6
5 changed files with 54 additions and 7 deletions

View File

@ -49,7 +49,7 @@ struct stat
unsigned int st_blksize; /* Optimal block size for I/O. */ unsigned int st_blksize; /* Optimal block size for I/O. */
#define _STATBUF_ST_BLKSIZE /* Tell code we have this member. */ #define _STATBUF_ST_BLKSIZE /* Tell code we have this member. */
int st_blocks; /* Number of 512-byte blocks allocated. */ __blkcnt_t st_blocks; /* Number of 512-byte blocks allocated. */
unsigned int st_flags; unsigned int st_flags;
unsigned int st_gen; unsigned int st_gen;
}; };

View File

@ -46,7 +46,7 @@ struct stat
__time_t st_ctime; /* Time of last status change. */ __time_t st_ctime; /* Time of last status change. */
unsigned int st_blksize; /* Optimal block size for I/O. */ unsigned int st_blksize; /* Optimal block size for I/O. */
#define _STATBUF_ST_BLKSIZE /* Tell code we have this member. */ #define _STATBUF_ST_BLKSIZE /* Tell code we have this member. */
int st_blocks; /* Nr. of 512-byte blocks allocated. */ __blkcnt_t st_blocks; /* Nr. of 512-byte blocks allocated. */
unsigned int st_flags; unsigned int st_flags;
unsigned int st_gen; unsigned int st_gen;
}; };

View File

@ -39,14 +39,22 @@ struct stat
{ {
unsigned long int st_dev; unsigned long int st_dev;
long int st_pad1[3]; long int st_pad1[3];
#ifndef __USE_FILE_OFFSET64
__ino_t st_ino; /* File serial number. */ __ino_t st_ino; /* File serial number. */
#else
__ino64_t st_ino; /* File serial number. */
#endif
__mode_t st_mode; /* File mode. */ __mode_t st_mode; /* File mode. */
__nlink_t st_nlink; /* Link count. */ __nlink_t st_nlink; /* Link count. */
__uid_t st_uid; /* User ID of the file's owner. */ __uid_t st_uid; /* User ID of the file's owner. */
__gid_t st_gid; /* Group ID of the file's group.*/ __gid_t st_gid; /* Group ID of the file's group.*/
unsigned long int st_rdev; /* Device number, if device. */ unsigned long int st_rdev; /* Device number, if device. */
long int st_pad2[2]; long int st_pad2[2];
#ifndef __USE_FILE_OFFSET64
__off_t st_size; /* Size of file, in bytes. */ __off_t st_size; /* Size of file, in bytes. */
#else
__off64_t st_size; /* Size of file, in bytes. */
#endif
/* SVR4 added this extra long to allow for expansion of off_t. */ /* SVR4 added this extra long to allow for expansion of off_t. */
long int st_pad3; long int st_pad3;
/* /*
@ -60,8 +68,11 @@ struct stat
__time_t st_ctime; /* Time of last status change. */ __time_t st_ctime; /* Time of last status change. */
long int __reserved2; long int __reserved2;
long int 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. */ #ifndef __USE_FILE_OFFSET64
long int st_blocks; /* Number of 512-byte blocks allocated. */ __blkcnt_t st_blocks; /* Number of 512-byte blocks allocated. */
#else
__blkcnt64_t st_blocks; /* Number of 512-byte blocks allocated. */
#endif
char st_fstype[16]; /* Filesystem type name */ char st_fstype[16]; /* Filesystem type name */
long int st_pad4[8]; long int st_pad4[8];
/* Linux specific fields */ /* Linux specific fields */
@ -69,6 +80,42 @@ struct stat
unsigned int st_gen; unsigned int st_gen;
}; };
#ifdef __USE_LARGEFILE64
struct stat64
{
unsigned long int st_dev;
long int st_pad1[3];
__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.*/
unsigned long int st_rdev; /* Device number, if device. */
long int st_pad2[2];
__off64_t st_size; /* Size of file, in bytes. */
/* SVR4 added this extra long to allow for expansion of off_t. */
long int st_pad3;
/*
* Actually this should be timestruc_t st_atime, st_mtime and
* st_ctime but we don't have it under Linux.
*/
__time_t st_atime; /* Time of last access. */
long int __reserved0;
__time_t st_mtime; /* Time of last modification. */
long int __reserved1;
__time_t st_ctime; /* Time of last status change. */
long int __reserved2;
long int st_blksize; /* Optimal block size for I/O. */
__blkcnt64_t st_blocks; /* Number of 512-byte blocks allocated. */
char st_fstype[16]; /* Filesystem type name */
long int st_pad4[8];
/* Linux specific fields */
unsigned int st_flags;
unsigned int st_gen;
};
#endif
#define _STATBUF_ST_BLKSIZE /* Tell code we have this member. */
/* Encoding of the file mode. */ /* Encoding of the file mode. */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1993, 1996 Free Software Foundation, Inc. /* Copyright (C) 1993, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Brendan Kehoe (brendan@zen.org). Contributed by Brendan Kehoe (brendan@zen.org).
@ -58,7 +58,7 @@ struct stat
long st_blksize; /* Optimal block size for I/O. */ long st_blksize; /* Optimal block size for I/O. */
#define _STATBUF_ST_BLKSIZE /* Tell code we have this member. */ #define _STATBUF_ST_BLKSIZE /* Tell code we have this member. */
long st_blocks; /* Number of 512-byte blocks allocated. */ __blkcnt_t st_blocks; /* Number of 512-byte blocks allocated. */
char st_fstype[16]; /* The type of this filesystem. */ char st_fstype[16]; /* The type of this filesystem. */
int st_aclcnt; int st_aclcnt;
unsigned long st_level; unsigned long st_level;

View File

@ -52,7 +52,7 @@ struct stat
__time_t st_ctime; /* Time of last status change. */ __time_t st_ctime; /* Time of last status change. */
unsigned long int st_ctime_usec; unsigned long int st_ctime_usec;
long st_blksize; /* Optimal block size for I/O. */ __blkcnt_t st_blksize; /* Optimal block size for I/O. */
#define _STATBUF_ST_BLKSIZE /* Tell code we have this member. */ #define _STATBUF_ST_BLKSIZE /* Tell code we have this member. */
long st_blocks; /* Number of 512-byte blocks allocated. */ long st_blocks; /* Number of 512-byte blocks allocated. */