Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/mips/include/uapi/asm/stat.h
26495 views
1
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2
/*
3
* This file is subject to the terms and conditions of the GNU General Public
4
* License. See the file "COPYING" in the main directory of this archive
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
13
#include <linux/types.h>
14
15
#include <asm/sgidefs.h>
16
17
#if (_MIPS_SIM == _MIPS_SIM_ABI32) || (_MIPS_SIM == _MIPS_SIM_NABI32)
18
19
struct stat {
20
unsigned st_dev;
21
long st_pad1[3]; /* Reserved for network id */
22
__kernel_ino_t st_ino;
23
__kernel_mode_t st_mode;
24
__u32 st_nlink;
25
__kernel_uid32_t st_uid;
26
__kernel_gid32_t st_gid;
27
unsigned st_rdev;
28
long st_pad2[2];
29
long st_size;
30
long st_pad3;
31
/*
32
* Actually this should be timestruc_t st_atime, st_mtime and st_ctime
33
* but we don't have it under Linux.
34
*/
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
};
45
46
/*
47
* This matches struct stat64 in glibc2.1, hence the absolutely insane
48
* amounts of padding around dev_t's. The memory layout is the same as of
49
* struct stat of the 64-bit kernel.
50
*/
51
52
struct stat64 {
53
unsigned long st_dev;
54
unsigned long st_pad0[3]; /* Reserved for st_dev expansion */
55
56
unsigned long long st_ino;
57
58
__kernel_mode_t st_mode;
59
__u32 st_nlink;
60
61
__kernel_uid32_t st_uid;
62
__kernel_gid32_t st_gid;
63
64
unsigned long st_rdev;
65
unsigned long st_pad1[3]; /* Reserved for st_rdev expansion */
66
67
long long st_size;
68
69
/*
70
* Actually this should be timestruc_t st_atime, st_mtime and st_ctime
71
* but we don't have it under Linux.
72
*/
73
long st_atime;
74
unsigned long st_atime_nsec; /* Reserved for st_atime expansion */
75
76
long st_mtime;
77
unsigned long st_mtime_nsec; /* Reserved for st_mtime expansion */
78
79
long st_ctime;
80
unsigned long st_ctime_nsec; /* Reserved for st_ctime expansion */
81
82
unsigned long st_blksize;
83
unsigned long st_pad2;
84
85
long long st_blocks;
86
};
87
88
#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
89
90
#if _MIPS_SIM == _MIPS_SIM_ABI64
91
92
/* The memory layout is the same as of struct stat64 of the 32-bit kernel. */
93
struct stat {
94
unsigned int st_dev;
95
unsigned int st_pad0[3]; /* Reserved for st_dev expansion */
96
97
unsigned long st_ino;
98
99
__kernel_mode_t st_mode;
100
__u32 st_nlink;
101
102
__kernel_uid32_t st_uid;
103
__kernel_gid32_t st_gid;
104
105
unsigned int st_rdev;
106
unsigned int st_pad1[3]; /* Reserved for st_rdev expansion */
107
108
long st_size;
109
110
/*
111
* Actually this should be timestruc_t st_atime, st_mtime and st_ctime
112
* but we don't have it under Linux.
113
*/
114
unsigned int st_atime;
115
unsigned int st_atime_nsec;
116
117
unsigned int st_mtime;
118
unsigned int st_mtime_nsec;
119
120
unsigned int st_ctime;
121
unsigned int st_ctime_nsec;
122
123
unsigned int st_blksize;
124
unsigned int st_pad2;
125
126
unsigned long st_blocks;
127
};
128
129
#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
130
131
#define STAT_HAVE_NSEC 1
132
133
#endif /* _ASM_STAT_H */
134
135