Type S [src]

Members

Source

pub const S = switch (native_os) { .linux => linux.S, .emscripten => emscripten.S, .wasi => struct { // Match `S_*` constants from lib/libc/include/wasm-wasi-musl/__mode_t.h pub const IFBLK = 0x6000; pub const IFCHR = 0x2000; pub const IFDIR = 0x4000; pub const IFIFO = 0x1000; pub const IFLNK = 0xa000; pub const IFMT = IFBLK | IFCHR | IFDIR | IFIFO | IFLNK | IFREG | IFSOCK; pub const IFREG = 0x8000; pub const IFSOCK = 0xc000; pub fn ISBLK(m: u32) bool { return m & IFMT == IFBLK; } pub fn ISCHR(m: u32) bool { return m & IFMT == IFCHR; } pub fn ISDIR(m: u32) bool { return m & IFMT == IFDIR; } pub fn ISFIFO(m: u32) bool { return m & IFMT == IFIFO; } pub fn ISLNK(m: u32) bool { return m & IFMT == IFLNK; } pub fn ISREG(m: u32) bool { return m & IFMT == IFREG; } pub fn ISSOCK(m: u32) bool { return m & IFMT == IFSOCK; } }, .macos, .ios, .tvos, .watchos, .visionos => struct { pub const IFMT = 0o170000; pub const IFIFO = 0o010000; pub const IFCHR = 0o020000; pub const IFDIR = 0o040000; pub const IFBLK = 0o060000; pub const IFREG = 0o100000; pub const IFLNK = 0o120000; pub const IFSOCK = 0o140000; pub const IFWHT = 0o160000; pub const ISUID = 0o4000; pub const ISGID = 0o2000; pub const ISVTX = 0o1000; pub const IRWXU = 0o700; pub const IRUSR = 0o400; pub const IWUSR = 0o200; pub const IXUSR = 0o100; pub const IRWXG = 0o070; pub const IRGRP = 0o040; pub const IWGRP = 0o020; pub const IXGRP = 0o010; pub const IRWXO = 0o007; pub const IROTH = 0o004; pub const IWOTH = 0o002; pub const IXOTH = 0o001; pub fn ISFIFO(m: u32) bool { return m & IFMT == IFIFO; } pub fn ISCHR(m: u32) bool { return m & IFMT == IFCHR; } pub fn ISDIR(m: u32) bool { return m & IFMT == IFDIR; } pub fn ISBLK(m: u32) bool { return m & IFMT == IFBLK; } pub fn ISREG(m: u32) bool { return m & IFMT == IFREG; } pub fn ISLNK(m: u32) bool { return m & IFMT == IFLNK; } pub fn ISSOCK(m: u32) bool { return m & IFMT == IFSOCK; } pub fn IWHT(m: u32) bool { return m & IFMT == IFWHT; } }, .freebsd => struct { pub const IFMT = 0o170000; pub const IFIFO = 0o010000; pub const IFCHR = 0o020000; pub const IFDIR = 0o040000; pub const IFBLK = 0o060000; pub const IFREG = 0o100000; pub const IFLNK = 0o120000; pub const IFSOCK = 0o140000; pub const IFWHT = 0o160000; pub const ISUID = 0o4000; pub const ISGID = 0o2000; pub const ISVTX = 0o1000; pub const IRWXU = 0o700; pub const IRUSR = 0o400; pub const IWUSR = 0o200; pub const IXUSR = 0o100; pub const IRWXG = 0o070; pub const IRGRP = 0o040; pub const IWGRP = 0o020; pub const IXGRP = 0o010; pub const IRWXO = 0o007; pub const IROTH = 0o004; pub const IWOTH = 0o002; pub const IXOTH = 0o001; pub fn ISFIFO(m: u32) bool { return m & IFMT == IFIFO; } pub fn ISCHR(m: u32) bool { return m & IFMT == IFCHR; } pub fn ISDIR(m: u32) bool { return m & IFMT == IFDIR; } pub fn ISBLK(m: u32) bool { return m & IFMT == IFBLK; } pub fn ISREG(m: u32) bool { return m & IFMT == IFREG; } pub fn ISLNK(m: u32) bool { return m & IFMT == IFLNK; } pub fn ISSOCK(m: u32) bool { return m & IFMT == IFSOCK; } pub fn IWHT(m: u32) bool { return m & IFMT == IFWHT; } }, .solaris, .illumos => struct { pub const IFMT = 0o170000; pub const IFIFO = 0o010000; pub const IFCHR = 0o020000; pub const IFDIR = 0o040000; pub const IFBLK = 0o060000; pub const IFREG = 0o100000; pub const IFLNK = 0o120000; pub const IFSOCK = 0o140000; /// SunOS 2.6 Door pub const IFDOOR = 0o150000; /// Solaris 10 Event Port pub const IFPORT = 0o160000; pub const ISUID = 0o4000; pub const ISGID = 0o2000; pub const ISVTX = 0o1000; pub const IRWXU = 0o700; pub const IRUSR = 0o400; pub const IWUSR = 0o200; pub const IXUSR = 0o100; pub const IRWXG = 0o070; pub const IRGRP = 0o040; pub const IWGRP = 0o020; pub const IXGRP = 0o010; pub const IRWXO = 0o007; pub const IROTH = 0o004; pub const IWOTH = 0o002; pub const IXOTH = 0o001; pub fn ISFIFO(m: u32) bool { return m & IFMT == IFIFO; } pub fn ISCHR(m: u32) bool { return m & IFMT == IFCHR; } pub fn ISDIR(m: u32) bool { return m & IFMT == IFDIR; } pub fn ISBLK(m: u32) bool { return m & IFMT == IFBLK; } pub fn ISREG(m: u32) bool { return m & IFMT == IFREG; } pub fn ISLNK(m: u32) bool { return m & IFMT == IFLNK; } pub fn ISSOCK(m: u32) bool { return m & IFMT == IFSOCK; } pub fn ISDOOR(m: u32) bool { return m & IFMT == IFDOOR; } pub fn ISPORT(m: u32) bool { return m & IFMT == IFPORT; } }, .netbsd => struct { pub const IFMT = 0o170000; pub const IFIFO = 0o010000; pub const IFCHR = 0o020000; pub const IFDIR = 0o040000; pub const IFBLK = 0o060000; pub const IFREG = 0o100000; pub const IFLNK = 0o120000; pub const IFSOCK = 0o140000; pub const IFWHT = 0o160000; pub const ISUID = 0o4000; pub const ISGID = 0o2000; pub const ISVTX = 0o1000; pub const IRWXU = 0o700; pub const IRUSR = 0o400; pub const IWUSR = 0o200; pub const IXUSR = 0o100; pub const IRWXG = 0o070; pub const IRGRP = 0o040; pub const IWGRP = 0o020; pub const IXGRP = 0o010; pub const IRWXO = 0o007; pub const IROTH = 0o004; pub const IWOTH = 0o002; pub const IXOTH = 0o001; pub fn ISFIFO(m: u32) bool { return m & IFMT == IFIFO; } pub fn ISCHR(m: u32) bool { return m & IFMT == IFCHR; } pub fn ISDIR(m: u32) bool { return m & IFMT == IFDIR; } pub fn ISBLK(m: u32) bool { return m & IFMT == IFBLK; } pub fn ISREG(m: u32) bool { return m & IFMT == IFREG; } pub fn ISLNK(m: u32) bool { return m & IFMT == IFLNK; } pub fn ISSOCK(m: u32) bool { return m & IFMT == IFSOCK; } pub fn IWHT(m: u32) bool { return m & IFMT == IFWHT; } }, .dragonfly => struct { pub const IREAD = IRUSR; pub const IEXEC = IXUSR; pub const IWRITE = IWUSR; pub const IXOTH = 1; pub const IWOTH = 2; pub const IROTH = 4; pub const IRWXO = 7; pub const IXGRP = 8; pub const IWGRP = 16; pub const IRGRP = 32; pub const IRWXG = 56; pub const IXUSR = 64; pub const IWUSR = 128; pub const IRUSR = 256; pub const IRWXU = 448; pub const ISTXT = 512; pub const BLKSIZE = 512; pub const ISVTX = 512; pub const ISGID = 1024; pub const ISUID = 2048; pub const IFIFO = 4096; pub const IFCHR = 8192; pub const IFDIR = 16384; pub const IFBLK = 24576; pub const IFREG = 32768; pub const IFDB = 36864; pub const IFLNK = 40960; pub const IFSOCK = 49152; pub const IFWHT = 57344; pub const IFMT = 61440; pub fn ISCHR(m: u32) bool { return m & IFMT == IFCHR; } }, .haiku => struct { pub const IFMT = 0o170000; pub const IFSOCK = 0o140000; pub const IFLNK = 0o120000; pub const IFREG = 0o100000; pub const IFBLK = 0o060000; pub const IFDIR = 0o040000; pub const IFCHR = 0o020000; pub const IFIFO = 0o010000; pub const INDEX_DIR = 0o4000000000; pub const IUMSK = 0o7777; pub const ISUID = 0o4000; pub const ISGID = 0o2000; pub const ISVTX = 0o1000; pub const IRWXU = 0o700; pub const IRUSR = 0o400; pub const IWUSR = 0o200; pub const IXUSR = 0o100; pub const IRWXG = 0o070; pub const IRGRP = 0o040; pub const IWGRP = 0o020; pub const IXGRP = 0o010; pub const IRWXO = 0o007; pub const IROTH = 0o004; pub const IWOTH = 0o002; pub const IXOTH = 0o001; pub fn ISREG(m: u32) bool { return m & IFMT == IFREG; } pub fn ISLNK(m: u32) bool { return m & IFMT == IFLNK; } pub fn ISBLK(m: u32) bool { return m & IFMT == IFBLK; } pub fn ISDIR(m: u32) bool { return m & IFMT == IFDIR; } pub fn ISCHR(m: u32) bool { return m & IFMT == IFCHR; } pub fn ISFIFO(m: u32) bool { return m & IFMT == IFIFO; } pub fn ISSOCK(m: u32) bool { return m & IFMT == IFSOCK; } pub fn ISINDEX(m: u32) bool { return m & INDEX_DIR == INDEX_DIR; } }, .openbsd => struct { pub const IFMT = 0o170000; pub const IFIFO = 0o010000; pub const IFCHR = 0o020000; pub const IFDIR = 0o040000; pub const IFBLK = 0o060000; pub const IFREG = 0o100000; pub const IFLNK = 0o120000; pub const IFSOCK = 0o140000; pub const ISUID = 0o4000; pub const ISGID = 0o2000; pub const ISVTX = 0o1000; pub const IRWXU = 0o700; pub const IRUSR = 0o400; pub const IWUSR = 0o200; pub const IXUSR = 0o100; pub const IRWXG = 0o070; pub const IRGRP = 0o040; pub const IWGRP = 0o020; pub const IXGRP = 0o010; pub const IRWXO = 0o007; pub const IROTH = 0o004; pub const IWOTH = 0o002; pub const IXOTH = 0o001; pub fn ISFIFO(m: u32) bool { return m & IFMT == IFIFO; } pub fn ISCHR(m: u32) bool { return m & IFMT == IFCHR; } pub fn ISDIR(m: u32) bool { return m & IFMT == IFDIR; } pub fn ISBLK(m: u32) bool { return m & IFMT == IFBLK; } pub fn ISREG(m: u32) bool { return m & IFMT == IFREG; } pub fn ISLNK(m: u32) bool { return m & IFMT == IFLNK; } pub fn ISSOCK(m: u32) bool { return m & IFMT == IFSOCK; } }, // https://github.com/SerenityOS/serenity/blob/ec492a1a0819e6239ea44156825c4ee7234ca3db/Kernel/API/POSIX/sys/stat.h#L16-L51 .serenity => struct { pub const IFMT = 0o170000; pub const IFDIR = 0o040000; pub const IFCHR = 0o020000; pub const IFBLK = 0o060000; pub const IFREG = 0o100000; pub const IFIFO = 0o010000; pub const IFLNK = 0o120000; pub const IFSOCK = 0o140000; pub const ISUID = 0o4000; pub const ISGID = 0o2000; pub const ISVTX = 0o1000; pub const IRUSR = 0o400; pub const IWUSR = 0o200; pub const IXUSR = 0o100; pub const IREAD = IRUSR; pub const IWRITE = IWUSR; pub const IEXEC = IXUSR; pub const IRGRP = 0o040; pub const IWGRP = 0o020; pub const IXGRP = 0o010; pub const IROTH = 0o004; pub const IWOTH = 0o002; pub const IXOTH = 0o001; pub const IRWXU = IRUSR | IWUSR | IXUSR; pub const IRWXG = IRWXU >> 3; pub const IRWXO = IRWXG >> 3; pub fn ISDIR(m: u32) bool { return m & IFMT == IFDIR; } pub fn ISCHR(m: u32) bool { return m & IFMT == IFCHR; } pub fn ISBLK(m: u32) bool { return m & IFMT == IFBLK; } pub fn ISREG(m: u32) bool { return m & IFMT == IFREG; } pub fn ISFIFO(m: u32) bool { return m & IFMT == IFIFO; } pub fn ISLNK(m: u32) bool { return m & IFMT == IFLNK; } pub fn ISSOCK(m: u32) bool { return m & IFMT == IFSOCK; } }, else => void, }