Skip to content

Commit 1b0bde0

Browse files
authored
Merge pull request #25373 from mneumann/fix-dragonfly-bootstrap
Fix DragonFly bootstrap
2 parents 032df72 + 0352191 commit 1b0bde0

File tree

2 files changed

+57
-25
lines changed

2 files changed

+57
-25
lines changed

bootstrap.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ static const char *get_host_os(void) {
6464
return "linux";
6565
#elif defined(__FreeBSD__)
6666
return "freebsd";
67+
#elif defined(__DragonFly__)
68+
return "dragonfly";
6769
#elif defined(__HAIKU__)
6870
return "haiku";
6971
#else

lib/std/c.zig

Lines changed: 55 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2254,40 +2254,70 @@ pub const S = switch (native_os) {
22542254
}
22552255
},
22562256
.dragonfly => struct {
2257+
pub const IFMT = 0o170000;
2258+
2259+
pub const IFIFO = 0o010000;
2260+
pub const IFCHR = 0o020000;
2261+
pub const IFDIR = 0o040000;
2262+
pub const IFBLK = 0o060000;
2263+
pub const IFREG = 0o100000;
2264+
pub const IFLNK = 0o120000;
2265+
pub const IFSOCK = 0o140000;
2266+
pub const IFWHT = 0o160000;
2267+
2268+
pub const ISUID = 0o4000;
2269+
pub const ISGID = 0o2000;
2270+
pub const ISVTX = 0o1000;
2271+
pub const IRWXU = 0o700;
2272+
pub const IRUSR = 0o400;
2273+
pub const IWUSR = 0o200;
2274+
pub const IXUSR = 0o100;
2275+
pub const IRWXG = 0o070;
2276+
pub const IRGRP = 0o040;
2277+
pub const IWGRP = 0o020;
2278+
pub const IXGRP = 0o010;
2279+
pub const IRWXO = 0o007;
2280+
pub const IROTH = 0o004;
2281+
pub const IWOTH = 0o002;
2282+
pub const IXOTH = 0o001;
2283+
22572284
pub const IREAD = IRUSR;
22582285
pub const IEXEC = IXUSR;
22592286
pub const IWRITE = IWUSR;
2260-
pub const IXOTH = 1;
2261-
pub const IWOTH = 2;
2262-
pub const IROTH = 4;
2263-
pub const IRWXO = 7;
2264-
pub const IXGRP = 8;
2265-
pub const IWGRP = 16;
2266-
pub const IRGRP = 32;
2267-
pub const IRWXG = 56;
2268-
pub const IXUSR = 64;
2269-
pub const IWUSR = 128;
2270-
pub const IRUSR = 256;
2271-
pub const IRWXU = 448;
22722287
pub const ISTXT = 512;
22732288
pub const BLKSIZE = 512;
2274-
pub const ISVTX = 512;
2275-
pub const ISGID = 1024;
2276-
pub const ISUID = 2048;
2277-
pub const IFIFO = 4096;
2278-
pub const IFCHR = 8192;
2279-
pub const IFDIR = 16384;
2280-
pub const IFBLK = 24576;
2281-
pub const IFREG = 32768;
2282-
pub const IFDB = 36864;
2283-
pub const IFLNK = 40960;
2284-
pub const IFSOCK = 49152;
2285-
pub const IFWHT = 57344;
2286-
pub const IFMT = 61440;
2289+
2290+
pub fn ISFIFO(m: u32) bool {
2291+
return m & IFMT == IFIFO;
2292+
}
22872293

22882294
pub fn ISCHR(m: u32) bool {
22892295
return m & IFMT == IFCHR;
22902296
}
2297+
2298+
pub fn ISDIR(m: u32) bool {
2299+
return m & IFMT == IFDIR;
2300+
}
2301+
2302+
pub fn ISBLK(m: u32) bool {
2303+
return m & IFMT == IFBLK;
2304+
}
2305+
2306+
pub fn ISREG(m: u32) bool {
2307+
return m & IFMT == IFREG;
2308+
}
2309+
2310+
pub fn ISLNK(m: u32) bool {
2311+
return m & IFMT == IFLNK;
2312+
}
2313+
2314+
pub fn ISSOCK(m: u32) bool {
2315+
return m & IFMT == IFSOCK;
2316+
}
2317+
2318+
pub fn IWHT(m: u32) bool {
2319+
return m & IFMT == IFWHT;
2320+
}
22912321
},
22922322
.haiku => struct {
22932323
pub const IFMT = 0o170000;

0 commit comments

Comments
 (0)