Changes in uspace/lib/posix/sys/stat.h [e7f7c93:53900ab] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/posix/sys/stat.h
re7f7c93 r53900ab 1 1 /* 2 2 * Copyright (c) 2011 Jiri Zarevucky 3 * Copyright (c) 2011 Petr Koupy4 3 * All rights reserved. 5 4 * … … 28 27 */ 29 28 30 /** @addtogroup libposix31 * @{32 */33 /** @file34 */35 36 29 #ifndef POSIX_SYS_STAT_H_ 37 30 #define POSIX_SYS_STAT_H_ 38 31 39 32 #include "../libc/sys/stat.h" 40 #include "types.h" 41 #include "../time.h" 42 #include <ipc/devmap.h> 43 #include <task.h> 44 45 typedef devmap_handle_t posix_dev_t; 46 typedef task_id_t posix_pid_t; 33 #include "time.h" 47 34 48 35 /* values are the same as on Linux */ 49 50 #undef S_IFMT51 #undef S_IFSOCK52 #undef S_IFLNK53 #undef S_IFREG54 #undef S_IFBLK55 #undef S_IFDIR56 #undef S_IFCHR57 #undef S_IFIFO58 36 #define S_IFMT 0170000 /* all file types */ 59 37 #define S_IFSOCK 0140000 /* socket */ … … 65 43 #define S_IFIFO 0010000 /* FIFO */ 66 44 67 #undef S_ISUID68 #undef S_ISGID69 #undef S_ISVTX70 45 #define S_ISUID 0004000 /* SUID */ 71 46 #define S_ISGID 0002000 /* SGID */ 72 47 #define S_ISVTX 0001000 /* sticky */ 73 48 74 #undef S_IRWXU75 #undef S_IRUSR76 #undef S_IWUSR77 #undef S_IXUSR78 49 #define S_IRWXU 00700 /* owner permissions */ 79 50 #define S_IRUSR 00400 … … 81 52 #define S_IXUSR 00100 82 53 83 #undef S_IRWXG84 #undef S_IRGRP85 #undef S_IWGRP86 #undef S_IXGRP87 54 #define S_IRWXG 00070 /* group permissions */ 88 55 #define S_IRGRP 00040 … … 90 57 #define S_IXGRP 00010 91 58 92 #undef S_IRWXO93 #undef S_IROTH94 #undef S_IWOTH95 #undef S_IXOTH96 59 #define S_IRWXO 00007 /* other permissions */ 97 60 #define S_IROTH 00004 … … 99 62 #define S_IXOTH 00001 100 63 101 #undef S_ISREG102 #undef S_ISDIR103 #undef S_ISCHR104 #undef S_ISBLK105 #undef S_ISFIFO106 #undef S_ISLNK107 #undef S_ISSOCK108 64 #define S_ISREG(m) ((m & S_IFREG) != 0) 109 65 #define S_ISDIR(m) ((m & S_IFDIR) != 0) … … 111 67 #define S_ISBLK(m) ((m & S_IFBLK) != 0) 112 68 #define S_ISFIFO(m) ((m & S_IFIFO) != 0) 113 #define S_ISLNK(m) ((m & S_IFLNK) != 0) /* symbolic link? (Not in POSIX.1-1996.) */69 #define S_ISLNK(m) ((m & S_IFLNK) != 0) /* symbolic link? (Not in POSIX.1-1996.) */ 114 70 #define S_ISSOCK(m) ((m & S_IFSOCK) != 0) /* socket? (Not in POSIX.1-1996.) */ 71 72 typedef devmap_handle_t dev_t; 73 typedef unsigned int ino_t; 74 typedef unsigned int nlink_t; 75 typedef unsigned int uid_t; 76 typedef unsigned int gid_t; 77 typedef aoff64_t off_t; 78 typedef unsigned int blksize_t; 79 typedef unsigned int blkcnt_t; 115 80 116 81 struct posix_stat { 117 82 struct stat sys_stat; 118 83 119 posix_dev_t st_dev; /* ID of device containing file */120 posix_ino_t st_ino; /* inode number */121 mode_t 122 posix_nlink_t st_nlink; /* number of hard links */123 posix_uid_t st_uid; /* user ID of owner */124 posix_gid_t st_gid; /* group ID of owner */125 posix_dev_t st_rdev; /* device ID (if special file) */126 posix_off_t st_size; /* total size, in bytes */127 posix_blksize_t st_blksize; /* blocksize for file system I/O */128 posix_blkcnt_t st_blocks; /* number of 512B blocks allocated */129 time_t 130 time_t 131 time_t 84 dev_t st_dev; /* ID of device containing file */ 85 ino_t st_ino; /* inode number */ 86 mode_t st_mode; /* protection */ 87 nlink_t st_nlink; /* number of hard links */ 88 uid_t st_uid; /* user ID of owner */ 89 gid_t st_gid; /* group ID of owner */ 90 dev_t st_rdev; /* device ID (if special file) */ 91 off_t st_size; /* total size, in bytes */ 92 blksize_t st_blksize; /* blocksize for file system I/O */ 93 blkcnt_t st_blocks; /* number of 512B blocks allocated */ 94 time_t st_atime; /* time of last access */ 95 time_t st_mtime; /* time of last modification */ 96 time_t st_ctime; /* time of last status change */ 132 97 }; 133 98 134 extern int posix_fstat(int fd, struct posix_stat *st); 135 extern int posix_lstat(const char *restrict path, struct posix_stat *restrict st); 136 extern int posix_stat(const char *restrict path, struct posix_stat *restrict st); 137 extern int posix_chmod(const char *path, mode_t mode); 138 extern mode_t posix_umask(mode_t mask); 99 extern int posix_fstat(int, struct posix_stat *); 100 extern int posix_stat(const char *, struct posix_stat *); 139 101 140 102 #ifndef LIBPOSIX_INTERNAL 141 #define dev_t posix_dev_t142 #define pid_t posix_pid_t143 103 #define fstat posix_fstat 144 #define lstat posix_lstat145 104 #define stat posix_stat 146 #define chmod posix_chmod147 #define umask posix_umask148 105 #endif 149 106 150 107 #endif /* POSIX_SYS_STAT_H */ 151 108 152 /** @}153 */
Note:
See TracChangeset
for help on using the changeset viewer.