xref: /utopia/UTPA2-700.0.x/projects/tools/lint/mips-linux-gnu_include/asm/stat.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi /*
2*53ee8cc1Swenshuai.xi  * This file is subject to the terms and conditions of the GNU General Public
3*53ee8cc1Swenshuai.xi  * License.  See the file "COPYING" in the main directory of this archive
4*53ee8cc1Swenshuai.xi  * for more details.
5*53ee8cc1Swenshuai.xi  *
6*53ee8cc1Swenshuai.xi  * Copyright (C) 1995, 1999, 2000 Ralf Baechle
7*53ee8cc1Swenshuai.xi  * Copyright (C) 2000 Silicon Graphics, Inc.
8*53ee8cc1Swenshuai.xi  */
9*53ee8cc1Swenshuai.xi #ifndef _ASM_STAT_H
10*53ee8cc1Swenshuai.xi #define _ASM_STAT_H
11*53ee8cc1Swenshuai.xi 
12*53ee8cc1Swenshuai.xi #include <linux/types.h>
13*53ee8cc1Swenshuai.xi 
14*53ee8cc1Swenshuai.xi #include <asm/sgidefs.h>
15*53ee8cc1Swenshuai.xi 
16*53ee8cc1Swenshuai.xi #if (_MIPS_SIM == _MIPS_SIM_ABI32) || (_MIPS_SIM == _MIPS_SIM_NABI32)
17*53ee8cc1Swenshuai.xi 
18*53ee8cc1Swenshuai.xi struct stat {
19*53ee8cc1Swenshuai.xi 	unsigned	st_dev;
20*53ee8cc1Swenshuai.xi 	long		st_pad1[3];		/* Reserved for network id */
21*53ee8cc1Swenshuai.xi 	ino_t		st_ino;
22*53ee8cc1Swenshuai.xi 	mode_t		st_mode;
23*53ee8cc1Swenshuai.xi 	nlink_t		st_nlink;
24*53ee8cc1Swenshuai.xi 	uid_t		st_uid;
25*53ee8cc1Swenshuai.xi 	gid_t		st_gid;
26*53ee8cc1Swenshuai.xi 	unsigned 	st_rdev;
27*53ee8cc1Swenshuai.xi 	long		st_pad2[2];
28*53ee8cc1Swenshuai.xi 	off_t		st_size;
29*53ee8cc1Swenshuai.xi 	long		st_pad3;
30*53ee8cc1Swenshuai.xi 	/*
31*53ee8cc1Swenshuai.xi 	 * Actually this should be timestruc_t st_atime, st_mtime and st_ctime
32*53ee8cc1Swenshuai.xi 	 * but we don't have it under Linux.
33*53ee8cc1Swenshuai.xi 	 */
34*53ee8cc1Swenshuai.xi 	time_t		st_atime;
35*53ee8cc1Swenshuai.xi 	long		st_atime_nsec;
36*53ee8cc1Swenshuai.xi 	time_t		st_mtime;
37*53ee8cc1Swenshuai.xi 	long		st_mtime_nsec;
38*53ee8cc1Swenshuai.xi 	time_t		st_ctime;
39*53ee8cc1Swenshuai.xi 	long		st_ctime_nsec;
40*53ee8cc1Swenshuai.xi 	long		st_blksize;
41*53ee8cc1Swenshuai.xi 	long		st_blocks;
42*53ee8cc1Swenshuai.xi 	long		st_pad4[14];
43*53ee8cc1Swenshuai.xi };
44*53ee8cc1Swenshuai.xi 
45*53ee8cc1Swenshuai.xi /*
46*53ee8cc1Swenshuai.xi  * This matches struct stat64 in glibc2.1, hence the absolutely insane
47*53ee8cc1Swenshuai.xi  * amounts of padding around dev_t's.  The memory layout is the same as of
48*53ee8cc1Swenshuai.xi  * struct stat of the 64-bit kernel.
49*53ee8cc1Swenshuai.xi  */
50*53ee8cc1Swenshuai.xi 
51*53ee8cc1Swenshuai.xi struct stat64 {
52*53ee8cc1Swenshuai.xi 	unsigned long	st_dev;
53*53ee8cc1Swenshuai.xi 	unsigned long	st_pad0[3];	/* Reserved for st_dev expansion  */
54*53ee8cc1Swenshuai.xi 
55*53ee8cc1Swenshuai.xi 	unsigned long long	st_ino;
56*53ee8cc1Swenshuai.xi 
57*53ee8cc1Swenshuai.xi 	mode_t		st_mode;
58*53ee8cc1Swenshuai.xi 	nlink_t		st_nlink;
59*53ee8cc1Swenshuai.xi 
60*53ee8cc1Swenshuai.xi 	uid_t		st_uid;
61*53ee8cc1Swenshuai.xi 	gid_t		st_gid;
62*53ee8cc1Swenshuai.xi 
63*53ee8cc1Swenshuai.xi 	unsigned long	st_rdev;
64*53ee8cc1Swenshuai.xi 	unsigned long	st_pad1[3];	/* Reserved for st_rdev expansion  */
65*53ee8cc1Swenshuai.xi 
66*53ee8cc1Swenshuai.xi 	long long	st_size;
67*53ee8cc1Swenshuai.xi 
68*53ee8cc1Swenshuai.xi 	/*
69*53ee8cc1Swenshuai.xi 	 * Actually this should be timestruc_t st_atime, st_mtime and st_ctime
70*53ee8cc1Swenshuai.xi 	 * but we don't have it under Linux.
71*53ee8cc1Swenshuai.xi 	 */
72*53ee8cc1Swenshuai.xi 	time_t		st_atime;
73*53ee8cc1Swenshuai.xi 	unsigned long	st_atime_nsec;	/* Reserved for st_atime expansion  */
74*53ee8cc1Swenshuai.xi 
75*53ee8cc1Swenshuai.xi 	time_t		st_mtime;
76*53ee8cc1Swenshuai.xi 	unsigned long	st_mtime_nsec;	/* Reserved for st_mtime expansion  */
77*53ee8cc1Swenshuai.xi 
78*53ee8cc1Swenshuai.xi 	time_t		st_ctime;
79*53ee8cc1Swenshuai.xi 	unsigned long	st_ctime_nsec;	/* Reserved for st_ctime expansion  */
80*53ee8cc1Swenshuai.xi 
81*53ee8cc1Swenshuai.xi 	unsigned long	st_blksize;
82*53ee8cc1Swenshuai.xi 	unsigned long	st_pad2;
83*53ee8cc1Swenshuai.xi 
84*53ee8cc1Swenshuai.xi 	long long	st_blocks;
85*53ee8cc1Swenshuai.xi };
86*53ee8cc1Swenshuai.xi 
87*53ee8cc1Swenshuai.xi #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
88*53ee8cc1Swenshuai.xi 
89*53ee8cc1Swenshuai.xi #if _MIPS_SIM == _MIPS_SIM_ABI64
90*53ee8cc1Swenshuai.xi 
91*53ee8cc1Swenshuai.xi /* The memory layout is the same as of struct stat64 of the 32-bit kernel.  */
92*53ee8cc1Swenshuai.xi struct stat {
93*53ee8cc1Swenshuai.xi 	unsigned int		st_dev;
94*53ee8cc1Swenshuai.xi 	unsigned int		st_pad0[3]; /* Reserved for st_dev expansion */
95*53ee8cc1Swenshuai.xi 
96*53ee8cc1Swenshuai.xi 	unsigned long		st_ino;
97*53ee8cc1Swenshuai.xi 
98*53ee8cc1Swenshuai.xi 	mode_t			st_mode;
99*53ee8cc1Swenshuai.xi 	nlink_t			st_nlink;
100*53ee8cc1Swenshuai.xi 
101*53ee8cc1Swenshuai.xi 	uid_t			st_uid;
102*53ee8cc1Swenshuai.xi 	gid_t			st_gid;
103*53ee8cc1Swenshuai.xi 
104*53ee8cc1Swenshuai.xi 	unsigned int		st_rdev;
105*53ee8cc1Swenshuai.xi 	unsigned int		st_pad1[3]; /* Reserved for st_rdev expansion */
106*53ee8cc1Swenshuai.xi 
107*53ee8cc1Swenshuai.xi 	off_t			st_size;
108*53ee8cc1Swenshuai.xi 
109*53ee8cc1Swenshuai.xi 	/*
110*53ee8cc1Swenshuai.xi 	 * Actually this should be timestruc_t st_atime, st_mtime and st_ctime
111*53ee8cc1Swenshuai.xi 	 * but we don't have it under Linux.
112*53ee8cc1Swenshuai.xi 	 */
113*53ee8cc1Swenshuai.xi 	unsigned int		st_atime;
114*53ee8cc1Swenshuai.xi 	unsigned int		st_atime_nsec;
115*53ee8cc1Swenshuai.xi 
116*53ee8cc1Swenshuai.xi 	unsigned int		st_mtime;
117*53ee8cc1Swenshuai.xi 	unsigned int		st_mtime_nsec;
118*53ee8cc1Swenshuai.xi 
119*53ee8cc1Swenshuai.xi 	unsigned int		st_ctime;
120*53ee8cc1Swenshuai.xi 	unsigned int		st_ctime_nsec;
121*53ee8cc1Swenshuai.xi 
122*53ee8cc1Swenshuai.xi 	unsigned int		st_blksize;
123*53ee8cc1Swenshuai.xi 	unsigned int		st_pad2;
124*53ee8cc1Swenshuai.xi 
125*53ee8cc1Swenshuai.xi 	unsigned long		st_blocks;
126*53ee8cc1Swenshuai.xi };
127*53ee8cc1Swenshuai.xi 
128*53ee8cc1Swenshuai.xi #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
129*53ee8cc1Swenshuai.xi 
130*53ee8cc1Swenshuai.xi #define STAT_HAVE_NSEC 1
131*53ee8cc1Swenshuai.xi 
132*53ee8cc1Swenshuai.xi #endif /* _ASM_STAT_H */
133