Commit daed2ba2a0

LemonBoy <thatlemon@gmail.com>
2020-12-29 20:36:30
std: Add more standard type definitions for FreeBSD
Closes #7550
1 parent 3634d44
Changed files (1)
lib
std
os
lib/std/os/bits/freebsd.zig
@@ -7,13 +7,23 @@ const std = @import("../../std.zig");
 const builtin = std.builtin;
 const maxInt = std.math.maxInt;
 
-// See https://svnweb.freebsd.org/base/head/sys/sys/_types.h?view=co
-// TODO: audit pid_t/mode_t. They should likely be i32 and u16, respectively
-pub const fd_t = c_int;
-pub const pid_t = c_int;
+pub const blksize_t = i32;
+pub const blkcnt_t = i64;
+pub const clockid_t = i32;
+pub const fsblkcnt_t = u64;
+pub const fsfilcnt_t = u64;
+pub const nlink_t = u64;
+pub const fd_t = i32;
+pub const pid_t = i32;
 pub const uid_t = u32;
 pub const gid_t = u32;
-pub const mode_t = c_uint;
+pub const mode_t = u16;
+pub const off_t = i64;
+pub const ino_t = u64;
+pub const dev_t = u64;
+pub const time_t = i64;
+// The signedness is not constant across different architectures.
+pub const clock_t = isize;
 
 pub const socklen_t = u32;
 
@@ -117,20 +127,17 @@ pub const msghdr_const = extern struct {
     msg_flags: i32,
 };
 
-pub const off_t = i64;
-pub const ino_t = u64;
-
 pub const libc_stat = extern struct {
-    dev: u64,
+    dev: dev_t,
     ino: ino_t,
-    nlink: usize,
+    nlink: nlink_t,
 
-    mode: u16,
+    mode: mode_t,
     __pad0: u16,
     uid: uid_t,
     gid: gid_t,
     __pad1: u32,
-    rdev: u64,
+    rdev: dev_t,
 
     atim: timespec,
     mtim: timespec,