1c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef _ASM_X86_STAT_H 2c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define _ASM_X86_STAT_H 3c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 4c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define STAT_HAVE_NSEC 1 5c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 6c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifdef __i386__ 7c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querustruct stat { 8c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_dev; 9c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_ino; 10c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned short st_mode; 11c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned short st_nlink; 12c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned short st_uid; 13c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned short st_gid; 14c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_rdev; 15c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_size; 16c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_blksize; 17c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_blocks; 18c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_atime; 19c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_atime_nsec; 20c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_mtime; 21c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_mtime_nsec; 22c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_ctime; 23c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_ctime_nsec; 24c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long __unused4; 25c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long __unused5; 26c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru}; 27c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 28c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define STAT64_HAS_BROKEN_ST_INO 1 29c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 30c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* This matches struct stat64 in glibc2.1, hence the absolutely 31c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * insane amounts of padding around dev_t's. 32c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru */ 33c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querustruct stat64 { 34c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long long st_dev; 35c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned char __pad0[4]; 36c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 37c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long __st_ino; 38c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 39c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned int st_mode; 40c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned int st_nlink; 41c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 42c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_uid; 43c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_gid; 44c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 45c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long long st_rdev; 46c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned char __pad3[4]; 47c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 48c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru long long st_size; 49c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_blksize; 50c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 51c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru /* Number 512-byte blocks allocated. */ 52c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long long st_blocks; 53c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 54c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_atime; 55c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_atime_nsec; 56c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 57c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_mtime; 58c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned int st_mtime_nsec; 59c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 60c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_ctime; 61c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_ctime_nsec; 62c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 63c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long long st_ino; 64c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru}; 65c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 66c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#else /* __i386__ */ 67c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 68c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querustruct stat { 69c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_dev; 70c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_ino; 71c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_nlink; 72c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 73c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned int st_mode; 74c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned int st_uid; 75c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned int st_gid; 76c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned int __pad0; 77c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_rdev; 78c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru long st_size; 79c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru long st_blksize; 80c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru long st_blocks; /* Number 512-byte blocks allocated. */ 81c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 82c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_atime; 83c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_atime_nsec; 84c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_mtime; 85c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_mtime_nsec; 86c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_ctime; 87c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_ctime_nsec; 88c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru long __unused[3]; 89c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru}; 90c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 91c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 92c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* for 32bit emulation and 32 bit kernels */ 93c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querustruct __old_kernel_stat { 94c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned short st_dev; 95c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned short st_ino; 96c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned short st_mode; 97c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned short st_nlink; 98c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned short st_uid; 99c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned short st_gid; 100c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned short st_rdev; 101c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifdef __i386__ 102c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_size; 103c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_atime; 104c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_mtime; 105c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned long st_ctime; 106c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#else 107c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned int st_size; 108c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned int st_atime; 109c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned int st_mtime; 110c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru unsigned int st_ctime; 111c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 112c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru}; 113c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 114c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 115