Changeset 0ffbed9 in mainline for uspace/lib/posix/sys/stat.h
- Timestamp:
- 2011-06-19T17:49:29Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 5974661
- Parents:
- f48b637 (diff), 32fb6944 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/posix/sys/stat.h
rf48b637 r0ffbed9 1 1 /* 2 2 * Copyright (c) 2011 Jiri Zarevucky 3 * Copyright (c) 2011 Petr Koupy 3 4 * All rights reserved. 4 5 * … … 27 28 */ 28 29 30 /** @addtogroup libposix 31 * @{ 32 */ 33 /** @file 34 */ 35 29 36 #ifndef POSIX_SYS_STAT_H_ 30 37 #define POSIX_SYS_STAT_H_ 31 38 32 39 #include "../libc/sys/stat.h" 33 #include "time.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; 34 47 35 48 /* values are the same as on Linux */ 49 50 #undef S_IFMT 51 #undef S_IFSOCK 52 #undef S_IFLNK 53 #undef S_IFREG 54 #undef S_IFBLK 55 #undef S_IFDIR 56 #undef S_IFCHR 57 #undef S_IFIFO 36 58 #define S_IFMT 0170000 /* all file types */ 37 59 #define S_IFSOCK 0140000 /* socket */ … … 43 65 #define S_IFIFO 0010000 /* FIFO */ 44 66 67 #undef S_ISUID 68 #undef S_ISGID 69 #undef S_ISVTX 45 70 #define S_ISUID 0004000 /* SUID */ 46 71 #define S_ISGID 0002000 /* SGID */ 47 72 #define S_ISVTX 0001000 /* sticky */ 48 73 74 #undef S_IRWXU 75 #undef S_IRUSR 76 #undef S_IWUSR 77 #undef S_IXUSR 49 78 #define S_IRWXU 00700 /* owner permissions */ 50 79 #define S_IRUSR 00400 … … 52 81 #define S_IXUSR 00100 53 82 83 #undef S_IRWXG 84 #undef S_IRGRP 85 #undef S_IWGRP 86 #undef S_IXGRP 54 87 #define S_IRWXG 00070 /* group permissions */ 55 88 #define S_IRGRP 00040 … … 57 90 #define S_IXGRP 00010 58 91 92 #undef S_IRWXO 93 #undef S_IROTH 94 #undef S_IWOTH 95 #undef S_IXOTH 59 96 #define S_IRWXO 00007 /* other permissions */ 60 97 #define S_IROTH 00004 … … 62 99 #define S_IXOTH 00001 63 100 101 #undef S_ISREG 102 #undef S_ISDIR 103 #undef S_ISCHR 104 #undef S_ISBLK 105 #undef S_ISFIFO 106 #undef S_ISLNK 107 #undef S_ISSOCK 64 108 #define S_ISREG(m) ((m & S_IFREG) != 0) 65 109 #define S_ISDIR(m) ((m & S_IFDIR) != 0) … … 67 111 #define S_ISBLK(m) ((m & S_IFBLK) != 0) 68 112 #define S_ISFIFO(m) ((m & S_IFIFO) != 0) 69 #define S_ISLNK(m) ((m & S_IFLNK) != 0) 113 #define S_ISLNK(m) ((m & S_IFLNK) != 0) /* symbolic link? (Not in POSIX.1-1996.) */ 70 114 #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;80 115 81 116 struct posix_stat { 82 117 struct stat sys_stat; 83 118 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 */119 posix_dev_t st_dev; /* ID of device containing file */ 120 posix_ino_t st_ino; /* inode number */ 121 mode_t st_mode; /* protection */ 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 st_atime; /* time of last access */ 130 time_t st_mtime; /* time of last modification */ 131 time_t st_ctime; /* time of last status change */ 97 132 }; 98 133 99 extern int posix_fstat(int, struct posix_stat *); 100 extern int posix_stat(const char *, struct posix_stat *); 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); 101 139 102 140 #ifndef LIBPOSIX_INTERNAL 141 #define dev_t posix_dev_t 142 #define pid_t posix_pid_t 103 143 #define fstat posix_fstat 144 #define lstat posix_lstat 104 145 #define stat posix_stat 146 #define chmod posix_chmod 147 #define umask posix_umask 105 148 #endif 106 149 107 150 #endif /* POSIX_SYS_STAT_H */ 108 151 152 /** @} 153 */
Note:
See TracChangeset
for help on using the changeset viewer.