]> git.ipfire.org Git - thirdparty/glibc.git/blob - io/bits/types/struct_statx.h
<sys/stat.h>: Use Linux UAPI header for statx if available and useful
[thirdparty/glibc.git] / io / bits / types / struct_statx.h
1 /* Definition of the generic version of struct statx.
2 Copyright (C) 2018-2019 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 <http://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 */