xref: /rk3399_rockchip-uboot/include/linux/stat.h (revision 6534c9c2489b87e5c40cfb8cfd41875a1bd9b33a)
1*6534c9c2Swdenk #ifndef _LINUX_STAT_H
2*6534c9c2Swdenk #define _LINUX_STAT_H
3*6534c9c2Swdenk 
4*6534c9c2Swdenk #include <linux/types.h>
5*6534c9c2Swdenk 
6*6534c9c2Swdenk #ifdef __cplusplus
7*6534c9c2Swdenk extern "C" {
8*6534c9c2Swdenk #endif
9*6534c9c2Swdenk 
10*6534c9c2Swdenk #define S_IFMT  00170000	/* type of file */
11*6534c9c2Swdenk #define S_IFSOCK 0140000	/* named socket */
12*6534c9c2Swdenk #define S_IFLNK	 0120000	/* symbolic link */
13*6534c9c2Swdenk #define S_IFREG  0100000	/* regular */
14*6534c9c2Swdenk #define S_IFBLK  0060000	/* block special */
15*6534c9c2Swdenk #define S_IFDIR  0040000	/* directory */
16*6534c9c2Swdenk #define S_IFCHR  0020000	/* character special */
17*6534c9c2Swdenk #define S_IFIFO  0010000	/* fifo */
18*6534c9c2Swdenk #define S_ISUID  0004000	/* set user id on execution */
19*6534c9c2Swdenk #define S_ISGID  0002000	/* set group id on execution */
20*6534c9c2Swdenk #define S_ISVTX  0001000	/* save swapped text even after use */
21*6534c9c2Swdenk 
22*6534c9c2Swdenk #define S_ISLNK(m)	(((m) & S_IFMT) == S_IFLNK)
23*6534c9c2Swdenk #define S_ISREG(m)	(((m) & S_IFMT) == S_IFREG)
24*6534c9c2Swdenk #define S_ISDIR(m)	(((m) & S_IFMT) == S_IFDIR)
25*6534c9c2Swdenk #define S_ISCHR(m)	(((m) & S_IFMT) == S_IFCHR)
26*6534c9c2Swdenk #define S_ISBLK(m)	(((m) & S_IFMT) == S_IFBLK)
27*6534c9c2Swdenk #define S_ISFIFO(m)	(((m) & S_IFMT) == S_IFIFO)
28*6534c9c2Swdenk #define S_ISSOCK(m)	(((m) & S_IFMT) == S_IFSOCK)
29*6534c9c2Swdenk 
30*6534c9c2Swdenk #define S_IRWXU 00700		/* rwx for owner */
31*6534c9c2Swdenk #define S_IRUSR 00400		/* read permission for owner */
32*6534c9c2Swdenk #define S_IWUSR 00200		/* write permission for owner */
33*6534c9c2Swdenk #define S_IXUSR 00100		/* execute/search permission for owner */
34*6534c9c2Swdenk 
35*6534c9c2Swdenk #define S_IRWXG 00070		/* rwx for group */
36*6534c9c2Swdenk #define S_IRGRP 00040		/* read permission for group */
37*6534c9c2Swdenk #define S_IWGRP 00020		/* write permission for group */
38*6534c9c2Swdenk #define S_IXGRP 00010		/* execute/search permission for group */
39*6534c9c2Swdenk 
40*6534c9c2Swdenk #define S_IRWXO 00007		/* rwx for other */
41*6534c9c2Swdenk #define S_IROTH 00004		/* read permission for other */
42*6534c9c2Swdenk #define S_IWOTH 00002		/* read permission for other */
43*6534c9c2Swdenk #define S_IXOTH 00001		/* execute/search permission for other */
44*6534c9c2Swdenk 
45*6534c9c2Swdenk #ifdef	__PPC__
46*6534c9c2Swdenk 
47*6534c9c2Swdenk struct stat {
48*6534c9c2Swdenk 	dev_t		st_dev;		/* file system id */
49*6534c9c2Swdenk 	ino_t		st_ino;		/* file id */
50*6534c9c2Swdenk 	mode_t		st_mode;	/* ownership/protection */
51*6534c9c2Swdenk 	nlink_t		st_nlink;	/* number of links */
52*6534c9c2Swdenk 	uid_t 		st_uid;		/* user id */
53*6534c9c2Swdenk 	gid_t 		st_gid;		/* group id */
54*6534c9c2Swdenk 	dev_t		st_rdev;
55*6534c9c2Swdenk 	off_t		st_size;	/* file size in # of bytes */
56*6534c9c2Swdenk 	unsigned long  	st_blksize;	/* block size */
57*6534c9c2Swdenk 	unsigned long  	st_blocks;	/* file size in # of blocks */
58*6534c9c2Swdenk 	unsigned long  	st_atime;	/* time file was last accessed */
59*6534c9c2Swdenk 	unsigned long  	__unused1;
60*6534c9c2Swdenk 	unsigned long  	st_mtime;	/* time file was last modified */
61*6534c9c2Swdenk 	unsigned long  	__unused2;
62*6534c9c2Swdenk 	unsigned long  	st_ctime;	/* time file status was last changed */
63*6534c9c2Swdenk 	unsigned long  	__unused3;
64*6534c9c2Swdenk 	unsigned long  	__unused4;
65*6534c9c2Swdenk 	unsigned long  	__unused5;
66*6534c9c2Swdenk };
67*6534c9c2Swdenk 
68*6534c9c2Swdenk #endif	/* __PPC__ */
69*6534c9c2Swdenk 
70*6534c9c2Swdenk #ifdef	__ARM__
71*6534c9c2Swdenk 
72*6534c9c2Swdenk struct stat {
73*6534c9c2Swdenk 	unsigned short st_dev;
74*6534c9c2Swdenk 	unsigned short __pad1;
75*6534c9c2Swdenk 	unsigned long st_ino;
76*6534c9c2Swdenk 	unsigned short st_mode;
77*6534c9c2Swdenk 	unsigned short st_nlink;
78*6534c9c2Swdenk 	unsigned short st_uid;
79*6534c9c2Swdenk 	unsigned short st_gid;
80*6534c9c2Swdenk 	unsigned short st_rdev;
81*6534c9c2Swdenk 	unsigned short __pad2;
82*6534c9c2Swdenk 	unsigned long  st_size;
83*6534c9c2Swdenk 	unsigned long  st_blksize;
84*6534c9c2Swdenk 	unsigned long  st_blocks;
85*6534c9c2Swdenk 	unsigned long  st_atime;
86*6534c9c2Swdenk 	unsigned long  __unused1;
87*6534c9c2Swdenk 	unsigned long  st_mtime;
88*6534c9c2Swdenk 	unsigned long  __unused2;
89*6534c9c2Swdenk 	unsigned long  st_ctime;
90*6534c9c2Swdenk 	unsigned long  __unused3;
91*6534c9c2Swdenk 	unsigned long  __unused4;
92*6534c9c2Swdenk 	unsigned long  __unused5;
93*6534c9c2Swdenk };
94*6534c9c2Swdenk 
95*6534c9c2Swdenk #endif	/* __ARM__ */
96*6534c9c2Swdenk 
97*6534c9c2Swdenk #ifdef __cplusplus
98*6534c9c2Swdenk }
99*6534c9c2Swdenk #endif
100*6534c9c2Swdenk 
101*6534c9c2Swdenk #endif
102