1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux 1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 /* !! 2 #ifndef __SPARC_STAT_H 3 * This file is subject to the terms and condi !! 3 #define __SPARC_STAT_H 4 * License. See the file "COPYING" in the mai << 5 * for more details. << 6 * << 7 * Copyright (C) 1995, 1999, 2000 Ralf Baechle << 8 * Copyright (C) 2000 Silicon Graphics, Inc. << 9 */ << 10 #ifndef _ASM_STAT_H << 11 #define _ASM_STAT_H << 12 4 13 #include <linux/types.h> 5 #include <linux/types.h> 14 6 15 #include <asm/sgidefs.h> !! 7 #if defined(__sparc__) && defined(__arch64__) 16 !! 8 /* 64 bit sparc */ 17 #if (_MIPS_SIM == _MIPS_SIM_ABI32) || (_MIPS_S << 18 << 19 struct stat { 9 struct stat { 20 unsigned st_dev; !! 10 unsigned int st_dev; 21 long st_pad1[3]; !! 11 __kernel_ino_t st_ino; 22 __kernel_ino_t st_ino; !! 12 __kernel_mode_t st_mode; 23 __kernel_mode_t st_mode; !! 13 short st_nlink; 24 __u32 st_nlink; << 25 __kernel_uid32_t st_uid; 14 __kernel_uid32_t st_uid; 26 __kernel_gid32_t st_gid; 15 __kernel_gid32_t st_gid; 27 unsigned st_rdev; !! 16 unsigned int st_rdev; 28 long st_pad2[2]; !! 17 long st_size; 29 long st_size; !! 18 long st_atime; 30 long st_pad3; !! 19 long st_mtime; 31 /* !! 20 long st_ctime; 32 * Actually this should be timestruc_t !! 21 long st_blksize; 33 * but we don't have it under Linux. !! 22 long st_blocks; 34 */ !! 23 unsigned long __unused4[2]; 35 long st_atime; << 36 long st_atime_nsec; << 37 long st_mtime; << 38 long st_mtime_nsec; << 39 long st_ctime; << 40 long st_ctime_nsec; << 41 long st_blksize; << 42 long st_blocks; << 43 long st_pad4[14]; << 44 }; 24 }; 45 25 46 /* << 47 * This matches struct stat64 in glibc2.1, hen << 48 * amounts of padding around dev_t's. The mem << 49 * struct stat of the 64-bit kernel. << 50 */ << 51 << 52 struct stat64 { 26 struct stat64 { 53 unsigned long st_dev; 27 unsigned long st_dev; 54 unsigned long st_pad0[3]; /* Res !! 28 unsigned long st_ino; 55 !! 29 unsigned long st_nlink; 56 unsigned long long st_ino; << 57 30 58 __kernel_mode_t st_mode; !! 31 unsigned int st_mode; 59 __u32 st_nlink; !! 32 unsigned int st_uid; 60 !! 33 unsigned int st_gid; 61 __kernel_uid32_t st_uid; !! 34 unsigned int __pad0; 62 __kernel_gid32_t st_gid; << 63 35 64 unsigned long st_rdev; 36 unsigned long st_rdev; 65 unsigned long st_pad1[3]; /* Res !! 37 long st_size; >> 38 long st_blksize; >> 39 long st_blocks; 66 40 67 long long st_size; !! 41 unsigned long st_atime; >> 42 unsigned long st_atime_nsec; >> 43 unsigned long st_mtime; >> 44 unsigned long st_mtime_nsec; >> 45 unsigned long st_ctime; >> 46 unsigned long st_ctime_nsec; >> 47 long __unused[3]; >> 48 }; 68 49 69 /* !! 50 #else 70 * Actually this should be timestruc_t !! 51 /* 32 bit sparc */ 71 * but we don't have it under Linux. !! 52 struct stat { 72 */ !! 53 unsigned short st_dev; >> 54 __kernel_ino_t st_ino; >> 55 __kernel_mode_t st_mode; >> 56 short st_nlink; >> 57 unsigned short st_uid; >> 58 unsigned short st_gid; >> 59 unsigned short st_rdev; >> 60 long st_size; 73 long st_atime; 61 long st_atime; 74 unsigned long st_atime_nsec; /* Res !! 62 unsigned long st_atime_nsec; 75 << 76 long st_mtime; 63 long st_mtime; 77 unsigned long st_mtime_nsec; /* Res !! 64 unsigned long st_mtime_nsec; 78 << 79 long st_ctime; 65 long st_ctime; 80 unsigned long st_ctime_nsec; /* Res !! 66 unsigned long st_ctime_nsec; 81 !! 67 long st_blksize; 82 unsigned long st_blksize; !! 68 long st_blocks; 83 unsigned long st_pad2; !! 69 unsigned long __unused4[2]; 84 << 85 long long st_blocks; << 86 }; 70 }; 87 71 88 #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ !! 72 #define STAT_HAVE_NSEC 1 89 73 90 #if _MIPS_SIM == _MIPS_SIM_ABI64 !! 74 struct stat64 { >> 75 unsigned long long st_dev; 91 76 92 /* The memory layout is the same as of struct !! 77 unsigned long long st_ino; 93 struct stat { << 94 unsigned int st_dev; << 95 unsigned int st_pad0[3]; /* << 96 78 97 unsigned long st_ino; !! 79 unsigned int st_mode; >> 80 unsigned int st_nlink; 98 81 99 __kernel_mode_t st_mode; !! 82 unsigned int st_uid; 100 __u32 st_nlink; !! 83 unsigned int st_gid; 101 84 102 __kernel_uid32_t st_uid; !! 85 unsigned long long st_rdev; 103 __kernel_gid32_t st_gid; << 104 86 105 unsigned int st_rdev; !! 87 unsigned char __pad3[8]; 106 unsigned int st_pad1[3]; /* << 107 88 108 long st_size; !! 89 long long st_size; >> 90 unsigned int st_blksize; 109 91 110 /* !! 92 unsigned char __pad4[8]; 111 * Actually this should be timestruc_t !! 93 unsigned int st_blocks; 112 * but we don't have it under Linux. << 113 */ << 114 unsigned int st_atime; << 115 unsigned int st_atime_nsec; << 116 94 117 unsigned int st_mtime; !! 95 unsigned int st_atime; 118 unsigned int st_mtime_nsec; !! 96 unsigned int st_atime_nsec; 119 97 120 unsigned int st_ctime; !! 98 unsigned int st_mtime; 121 unsigned int st_ctime_nsec; !! 99 unsigned int st_mtime_nsec; 122 100 123 unsigned int st_blksize; !! 101 unsigned int st_ctime; 124 unsigned int st_pad2; !! 102 unsigned int st_ctime_nsec; 125 103 126 unsigned long st_blocks; !! 104 unsigned int __unused4; >> 105 unsigned int __unused5; 127 }; 106 }; 128 !! 107 #endif /* defined(__sparc__) && defined(__arch64__) */ 129 #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ !! 108 #endif /* __SPARC_STAT_H */ 130 << 131 #define STAT_HAVE_NSEC 1 << 132 << 133 #endif /* _ASM_STAT_H */ << 134 109
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.