Warning: This file is not a C or C++ file. It does not have highlighting.
1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ |
---|---|
2 | #ifndef __ASM_GENERIC_STAT_H |
3 | #define __ASM_GENERIC_STAT_H |
4 | |
5 | /* |
6 | * Everybody gets this wrong and has to stick with it for all |
7 | * eternity. Hopefully, this version gets used by new architectures |
8 | * so they don't fall into the same traps. |
9 | * |
10 | * stat64 is copied from powerpc64, with explicit padding added. |
11 | * stat is the same structure layout on 64-bit, without the 'long long' |
12 | * types. |
13 | * |
14 | * By convention, 64 bit architectures use the stat interface, while |
15 | * 32 bit architectures use the stat64 interface. Note that we don't |
16 | * provide an __old_kernel_stat here, which new architecture should |
17 | * not have to start with. |
18 | */ |
19 | |
20 | #include <asm/bitsperlong.h> |
21 | |
22 | #define STAT_HAVE_NSEC 1 |
23 | |
24 | struct stat { |
25 | unsigned long st_dev; /* Device. */ |
26 | unsigned long st_ino; /* File serial number. */ |
27 | unsigned int st_mode; /* File mode. */ |
28 | unsigned int st_nlink; /* Link count. */ |
29 | unsigned int st_uid; /* User ID of the file's owner. */ |
30 | unsigned int st_gid; /* Group ID of the file's group. */ |
31 | unsigned long st_rdev; /* Device number, if device. */ |
32 | unsigned long __pad1; |
33 | long st_size; /* Size of file, in bytes. */ |
34 | int st_blksize; /* Optimal block size for I/O. */ |
35 | int __pad2; |
36 | long st_blocks; /* Number 512-byte blocks allocated. */ |
37 | long st_atime; /* Time of last access. */ |
38 | unsigned long st_atime_nsec; |
39 | long st_mtime; /* Time of last modification. */ |
40 | unsigned long st_mtime_nsec; |
41 | long st_ctime; /* Time of last status change. */ |
42 | unsigned long st_ctime_nsec; |
43 | unsigned int __unused4; |
44 | unsigned int __unused5; |
45 | }; |
46 | |
47 | /* This matches struct stat64 in glibc2.1. Only used for 32 bit. */ |
48 | #if __BITS_PER_LONG != 64 || defined(__ARCH_WANT_STAT64) |
49 | struct stat64 { |
50 | unsigned long long st_dev; /* Device. */ |
51 | unsigned long long st_ino; /* File serial number. */ |
52 | unsigned int st_mode; /* File mode. */ |
53 | unsigned int st_nlink; /* Link count. */ |
54 | unsigned int st_uid; /* User ID of the file's owner. */ |
55 | unsigned int st_gid; /* Group ID of the file's group. */ |
56 | unsigned long long st_rdev; /* Device number, if device. */ |
57 | unsigned long long __pad1; |
58 | long long st_size; /* Size of file, in bytes. */ |
59 | int st_blksize; /* Optimal block size for I/O. */ |
60 | int __pad2; |
61 | long long st_blocks; /* Number 512-byte blocks allocated. */ |
62 | int st_atime; /* Time of last access. */ |
63 | unsigned int st_atime_nsec; |
64 | int st_mtime; /* Time of last modification. */ |
65 | unsigned int st_mtime_nsec; |
66 | int st_ctime; /* Time of last status change. */ |
67 | unsigned int st_ctime_nsec; |
68 | unsigned int __unused4; |
69 | unsigned int __unused5; |
70 | }; |
71 | #endif |
72 | |
73 | #endif /* __ASM_GENERIC_STAT_H */ |
74 |
Warning: This file is not a C or C++ file. It does not have highlighting.