| ... | ... | @@ -876,3 +876,62 @@ pub const stack_t = extern struct { |
| 876 | 876 | ss_size: isize, |
| 877 | 877 | ss_flags: i32, |
| 878 | 878 | }; |
| 879 | |
| 880 | pub const S_IFMT = 0o170000; |
| 881 | |
| 882 | pub const S_IFIFO = 0o010000; |
| 883 | pub const S_IFCHR = 0o020000; |
| 884 | pub const S_IFDIR = 0o040000; |
| 885 | pub const S_IFBLK = 0o060000; |
| 886 | pub const S_IFREG = 0o100000; |
| 887 | pub const S_IFLNK = 0o120000; |
| 888 | pub const S_IFSOCK = 0o140000; |
| 889 | pub const S_IFWHT = 0o160000; |
| 890 | |
| 891 | pub const S_ISUID = 0o4000; |
| 892 | pub const S_ISGID = 0o2000; |
| 893 | pub const S_ISVTX = 0o1000; |
| 894 | pub const S_IRWXU = 0o700; |
| 895 | pub const S_IRUSR = 0o400; |
| 896 | pub const S_IWUSR = 0o200; |
| 897 | pub const S_IXUSR = 0o100; |
| 898 | pub const S_IRWXG = 0o070; |
| 899 | pub const S_IRGRP = 0o040; |
| 900 | pub const S_IWGRP = 0o020; |
| 901 | pub const S_IXGRP = 0o010; |
| 902 | pub const S_IRWXO = 0o007; |
| 903 | pub const S_IROTH = 0o004; |
| 904 | pub const S_IWOTH = 0o002; |
| 905 | pub const S_IXOTH = 0o001; |
| 906 | |
| 907 | pub fn S_ISFIFO(m: u32) bool { |
| 908 | return m & S_IFMT == S_IFIFO; |
| 909 | } |
| 910 | |
| 911 | pub fn S_ISCHR(m: u32) bool { |
| 912 | return m & S_IFMT == S_IFCHR; |
| 913 | } |
| 914 | |
| 915 | pub fn S_ISDIR(m: u32) bool { |
| 916 | return m & S_IFMT == S_IFDIR; |
| 917 | } |
| 918 | |
| 919 | pub fn S_ISBLK(m: u32) bool { |
| 920 | return m & S_IFMT == S_IFBLK; |
| 921 | } |
| 922 | |
| 923 | pub fn S_ISREG(m: u32) bool { |
| 924 | return m & S_IFMT == S_IFREG; |
| 925 | } |
| 926 | |
| 927 | pub fn S_ISLNK(m: u32) bool { |
| 928 | return m & S_IFMT == S_IFLNK; |
| 929 | } |
| 930 | |
| 931 | pub fn S_ISSOCK(m: u32) bool { |
| 932 | return m & S_IFMT == S_IFSOCK; |
| 933 | } |
| 934 | |
| 935 | pub fn S_IWHT(m: u32) bool { |
| 936 | return m & S_IFMT == S_IFWHT; |
| 937 | } |