| ... | ... | @@ -760,3 +760,62 @@ pub const stack_t = extern struct { |
| 760 | 760 | ss_size: isize, |
| 761 | 761 | ss_flags: i32, |
| 762 | 762 | }; |
| 763 | |
| 764 | pub const S_IFMT = 0o170000; |
| 765 | |
| 766 | pub const S_IFIFO = 0o010000; |
| 767 | pub const S_IFCHR = 0o020000; |
| 768 | pub const S_IFDIR = 0o040000; |
| 769 | pub const S_IFBLK = 0o060000; |
| 770 | pub const S_IFREG = 0o100000; |
| 771 | pub const S_IFLNK = 0o120000; |
| 772 | pub const S_IFSOCK = 0o140000; |
| 773 | pub const S_IFWHT = 0o160000; |
| 774 | |
| 775 | pub const S_ISUID = 0o4000; |
| 776 | pub const S_ISGID = 0o2000; |
| 777 | pub const S_ISVTX = 0o1000; |
| 778 | pub const S_IRWXU = 0o700; |
| 779 | pub const S_IRUSR = 0o400; |
| 780 | pub const S_IWUSR = 0o200; |
| 781 | pub const S_IXUSR = 0o100; |
| 782 | pub const S_IRWXG = 0o070; |
| 783 | pub const S_IRGRP = 0o040; |
| 784 | pub const S_IWGRP = 0o020; |
| 785 | pub const S_IXGRP = 0o010; |
| 786 | pub const S_IRWXO = 0o007; |
| 787 | pub const S_IROTH = 0o004; |
| 788 | pub const S_IWOTH = 0o002; |
| 789 | pub const S_IXOTH = 0o001; |
| 790 | |
| 791 | pub fn S_ISFIFO(m: u32) bool { |
| 792 | return m & S_IFMT == S_IFIFO; |
| 793 | } |
| 794 | |
| 795 | pub fn S_ISCHR(m: u32) bool { |
| 796 | return m & S_IFMT == S_IFCHR; |
| 797 | } |
| 798 | |
| 799 | pub fn S_ISDIR(m: u32) bool { |
| 800 | return m & S_IFMT == S_IFDIR; |
| 801 | } |
| 802 | |
| 803 | pub fn S_ISBLK(m: u32) bool { |
| 804 | return m & S_IFMT == S_IFBLK; |
| 805 | } |
| 806 | |
| 807 | pub fn S_ISREG(m: u32) bool { |
| 808 | return m & S_IFMT == S_IFREG; |
| 809 | } |
| 810 | |
| 811 | pub fn S_ISLNK(m: u32) bool { |
| 812 | return m & S_IFMT == S_IFLNK; |
| 813 | } |
| 814 | |
| 815 | pub fn S_ISSOCK(m: u32) bool { |
| 816 | return m & S_IFMT == S_IFSOCK; |
| 817 | } |
| 818 | |
| 819 | pub fn S_IWHT(m: u32) bool { |
| 820 | return m & S_IFMT == S_IFWHT; |
| 821 | } |