1/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License.  See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 1995, 1999, 2000 Ralf Baechle
7 * Copyright (C) 2000 Silicon Graphics, Inc.
8 */
9#ifndef _ASM_STAT_H
10#define _ASM_STAT_H
11
12#include <linux/types.h>
13
14struct stat32 {
15	__kernel_dev_t32    st_dev;
16	int		    st_pad1[3];
17	__kernel_ino_t32    st_ino;
18	__kernel_mode_t32   st_mode;
19	__kernel_nlink_t32  st_nlink;
20	__kernel_uid_t32    st_uid;
21	__kernel_gid_t32    st_gid;
22	__kernel_dev_t32    st_rdev;
23	int		    st_pad2[2];
24	__kernel_off_t32    st_size;
25	int		    st_pad3;
26	__kernel_time_t32   st_atime;
27	int		    reserved0;
28	__kernel_time_t32   st_mtime;
29	int		    reserved1;
30	__kernel_time_t32   st_ctime;
31	int		    reserved2;
32	int		    st_blksize;
33	int		    st_blocks;
34	int		    st_pad4[14];
35};
36
37/* The memory layout is the same as of struct stat64 of the 32-bit kernel.  */
38struct stat {
39	dev_t		st_dev;
40	unsigned int	st_pad0[3];	/* Reserved for st_dev expansion  */
41
42	unsigned long	st_ino;
43
44	mode_t		st_mode;
45	nlink_t		st_nlink;
46
47	uid_t		st_uid;
48	gid_t		st_gid;
49
50	dev_t		st_rdev;
51	unsigned int	st_pad1[3];	/* Reserved for st_rdev expansion  */
52
53	off_t		st_size;
54
55	/*
56	 * Actually this should be timestruc_t st_atime, st_mtime and st_ctime
57	 * but we don't have it under Linux.
58	 */
59	unsigned int	st_atime;
60	unsigned int	reserved0;	/* Reserved for st_atime expansion  */
61
62	unsigned int	st_mtime;
63	unsigned int	reserved1;	/* Reserved for st_mtime expansion  */
64
65	unsigned int	st_ctime;
66	unsigned int	reserved2;	/* Reserved for st_ctime expansion  */
67
68	unsigned int	st_blksize;
69	unsigned int	st_pad2;
70
71	unsigned long	st_blocks;
72};
73
74#endif /* _ASM_STAT_H */
75