| ... | @@ -1116,3 +1116,53 @@ pub const stack_t = extern struct { | ... | @@ -1116,3 +1116,53 @@ pub const stack_t = extern struct { |
| 1116 | ss_size: isize, | 1116 | ss_size: isize, |
| 1117 | ss_flags: i32, | 1117 | ss_flags: i32, |
| 1118 | }; | 1118 | }; |
| | 1119 | |
| | 1120 | pub const S_IFMT = 0o170000; |
| | 1121 | |
| | 1122 | pub const S_IFIFO = 0o010000; |
| | 1123 | pub const S_IFCHR = 0o020000; |
| | 1124 | pub const S_IFDIR = 0o040000; |
| | 1125 | pub const S_IFBLK = 0o060000; |
| | 1126 | pub const S_IFREG = 0o100000; |
| | 1127 | pub const S_IFLNK = 0o120000; |
| | 1128 | pub const S_IFSOCK = 0o140000; |
| | 1129 | pub const S_IFWHT = 0o160000; |
| | 1130 | |
| | 1131 | pub const S_ISUID = 0o4000; |
| | 1132 | pub const S_ISGID = 0o2000; |
| | 1133 | pub const S_ISVTX = 0o1000; |
| | 1134 | pub const S_IRUSR = 0o400; |
| | 1135 | pub const S_IWUSR = 0o200; |
| | 1136 | pub const S_IXUSR = 0o100; |
| | 1137 | |
| | 1138 | pub fn S_ISFIFO(m: u32) bool { |
| | 1139 | return m & S_IFMT == S_IFIFO; |
| | 1140 | } |
| | 1141 | |
| | 1142 | pub fn S_ISCHR(m: u32) bool { |
| | 1143 | return m & S_IFMT == S_IFCHR; |
| | 1144 | } |
| | 1145 | |
| | 1146 | pub fn S_ISDIR(m: u32) bool { |
| | 1147 | return m & S_IFMT == S_IFDIR; |
| | 1148 | } |
| | 1149 | |
| | 1150 | pub fn S_ISBLK(m: u32) bool { |
| | 1151 | return m & S_IFMT == S_IFBLK; |
| | 1152 | } |
| | 1153 | |
| | 1154 | pub fn S_ISREG(m: u32) bool { |
| | 1155 | return m & S_IFMT == S_IFREG; |
| | 1156 | } |
| | 1157 | |
| | 1158 | pub fn S_ISLNK(m: u32) bool { |
| | 1159 | return m & S_IFMT == S_IFLNK; |
| | 1160 | } |
| | 1161 | |
| | 1162 | pub fn S_ISSOCK(m: u32) bool { |
| | 1163 | return m & S_IFMT == S_IFSOCK; |
| | 1164 | } |
| | 1165 | |
| | 1166 | pub fn S_IWHT(m: u32) bool { |
| | 1167 | return m & S_IFMT == S_IFWHT; |
| | 1168 | } |