92 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
		
		
			
		
	
	
			92 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
|  | /*
 | ||
|  |  * Copyright (c) 2006-2022, RT-Thread Development Team | ||
|  |  * | ||
|  |  * SPDX-License-Identifier: Apache-2.0 | ||
|  |  * | ||
|  |  * Change Logs: | ||
|  |  * Date           Author       Notes | ||
|  |  * 2021-09-02     Meco Man     First version | ||
|  |  */ | ||
|  | 
 | ||
|  | #ifndef __SYS_STAT_H__
 | ||
|  | #define __SYS_STAT_H__
 | ||
|  | 
 | ||
|  | #include <sys/types.h>
 | ||
|  | #include <sys/time.h>
 | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | extern "C" { | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #define S_IFMT               00170000
 | ||
|  | #define S_IFSOCK             0140000
 | ||
|  | #define S_IFLNK              0120000
 | ||
|  | #define S_IFREG              0100000
 | ||
|  | #define S_IFBLK              0060000
 | ||
|  | #define S_IFDIR              0040000
 | ||
|  | #define S_IFCHR              0020000
 | ||
|  | #define S_IFIFO              0010000
 | ||
|  | #define S_ISUID              0004000
 | ||
|  | #define S_ISGID              0002000
 | ||
|  | #define S_ISVTX              0001000
 | ||
|  | 
 | ||
|  | #define S_ISLNK(m)           (((m) & S_IFMT) == S_IFLNK)
 | ||
|  | #define S_ISREG(m)           (((m) & S_IFMT) == S_IFREG)
 | ||
|  | #define S_ISDIR(m)           (((m) & S_IFMT) == S_IFDIR)
 | ||
|  | #define S_ISCHR(m)           (((m) & S_IFMT) == S_IFCHR)
 | ||
|  | #define S_ISBLK(m)           (((m) & S_IFMT) == S_IFBLK)
 | ||
|  | #define S_ISFIFO(m)          (((m) & S_IFMT) == S_IFIFO)
 | ||
|  | #define S_ISSOCK(m)          (((m) & S_IFMT) == S_IFSOCK)
 | ||
|  | 
 | ||
|  | #define S_IRWXU              00700
 | ||
|  | #define S_IRUSR              00400
 | ||
|  | #define S_IWUSR              00200
 | ||
|  | #define S_IXUSR              00100
 | ||
|  | 
 | ||
|  | #define S_IRWXG              00070
 | ||
|  | #define S_IRGRP              00040
 | ||
|  | #define S_IWGRP              00020
 | ||
|  | #define S_IXGRP              00010
 | ||
|  | 
 | ||
|  | #define S_IRWXO              00007
 | ||
|  | #define S_IROTH              00004
 | ||
|  | #define S_IWOTH              00002
 | ||
|  | #define S_IXOTH              00001
 | ||
|  | 
 | ||
|  | struct stat | ||
|  | { | ||
|  |     struct rt_device *st_dev; | ||
|  |     uint16_t  st_ino; | ||
|  |     uint16_t  st_mode; | ||
|  |     uint16_t  st_nlink; | ||
|  |     uint16_t  st_uid; | ||
|  |     uint16_t  st_gid; | ||
|  |     struct rt_device *st_rdev; | ||
|  |     uint32_t  st_size; | ||
|  |     time_t    st_atime; | ||
|  |     long      st_spare1; | ||
|  |     time_t    st_mtime; | ||
|  |     long      st_spare2; | ||
|  |     time_t    st_ctime; | ||
|  |     long      st_spare3; | ||
|  |     uint32_t  st_blksize; | ||
|  |     uint32_t  st_blocks; | ||
|  |     long      st_spare4[2]; | ||
|  | }; | ||
|  | 
 | ||
|  | int    chmod(const char *, mode_t); | ||
|  | int    fchmod(int, mode_t); | ||
|  | int    fstat(int, struct stat *); | ||
|  | int    lstat(const char *, struct stat *); | ||
|  | int    mkdir(const char *, mode_t); | ||
|  | int    mkfifo(const char *, mode_t); | ||
|  | int    mknod(const char *, mode_t, dev_t); | ||
|  | int    stat(const char *, struct stat *); | ||
|  | mode_t umask(mode_t); | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | } | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #endif
 |