1 /* Definition of the generic version of struct statx. 2 Copyright (C) 2018-2022 Free Software Foundation, Inc. 3 This file is part of the GNU C Library. 4 5 The GNU C Library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Lesser General Public 7 License as published by the Free Software Foundation; either 8 version 2.1 of the License, or (at your option) any later version. 9 10 The GNU C Library is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Lesser General Public License for more details. 14 15 You should have received a copy of the GNU Lesser General Public 16 License along with the GNU C Library; if not, see 17 <https://www.gnu.org/licenses/>. */ 18 19 #ifndef _SYS_STAT_H 20 # error Never include <bits/types/struct_statx.h> directly, include <sys/stat.h> instead. 21 #endif 22 23 #ifndef __statx_defined 24 #define __statx_defined 1 25 26 /* Warning: The kernel may add additional fields to this struct in the 27 future. Only use this struct for calling the statx function, not 28 for storing data. (Expansion will be controlled by the mask 29 argument of the statx function.) */ 30 struct statx 31 { 32 __uint32_t stx_mask; 33 __uint32_t stx_blksize; 34 __uint64_t stx_attributes; 35 __uint32_t stx_nlink; 36 __uint32_t stx_uid; 37 __uint32_t stx_gid; 38 __uint16_t stx_mode; 39 __uint16_t __statx_pad1[1]; 40 __uint64_t stx_ino; 41 __uint64_t stx_size; 42 __uint64_t stx_blocks; 43 __uint64_t stx_attributes_mask; 44 struct statx_timestamp stx_atime; 45 struct statx_timestamp stx_btime; 46 struct statx_timestamp stx_ctime; 47 struct statx_timestamp stx_mtime; 48 __uint32_t stx_rdev_major; 49 __uint32_t stx_rdev_minor; 50 __uint32_t stx_dev_major; 51 __uint32_t stx_dev_minor; 52 __uint64_t __statx_pad2[14]; 53 }; 54 55 #endif /* __statx_defined */ 56