From 72978bbbaf4eb2dec3caaddfa9e0e982b0b5e8ce Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Wed, 2 Oct 2002 08:34:07 +0000 Subject: * sysdeps/unix/sysv/linux/powerpc/bits/stat.h [__WORDSIZE != 32]: (_STAT_VER): Define to _STAT_VER_KERNEL. (stru stat, struct stat64): Define to match the PPC64 kernel. * sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions (libc: GLIBC_2.2): Remove __xstat64, __fxstat64, and __lxstat64. * sysdeps/unix/sysv/linux/powerpc/powerpc64/kernel_stat.h: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/fxstat64.c: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/lxstat64.c: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/xstat64.c: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/Dist: Add kernel_stat.h. 2002-10-02 Roland McGrath * sysdeps/unix/sysv/linux/xstatconv.c [STAT_IS_KERNEL_STAT]: Conditionalize the function definitions on this. * sysdeps/unix/sysv/linux/xstat.c (__xstat) [STAT_IS_KERNEL_STAT]: Don't use xstat_conv, just fail if VERS != _STAT_VER_KERNEL. * sysdeps/unix/sysv/linux/fxstat.c (__fxstat) [STAT_IS_KERNEL_STAT]: Likewise. * sysdeps/unix/sysv/linux/lxstat.c (__lxstat) [STAT_IS_KERNEL_STAT]: Likewise. * Make-dist (dist): Create .bz2 file. Add rule to create .bz2 files. --- sysdeps/unix/sysv/linux/powerpc/bits/stat.h | 114 +++++++++++++++++++++++----- 1 file changed, 95 insertions(+), 19 deletions(-) (limited to 'sysdeps/unix/sysv/linux/powerpc/bits/stat.h') 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 directly; use instead." #endif +#include + /* 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 -- cgit 1.4.1