aboutsummaryrefslogtreecommitdiff
path: root/std/c
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2018-11-27 21:06:35 -0500
committerAndrew Kelley <andrew@ziglang.org>2018-11-27 21:06:35 -0500
commit57f44eb2bd17fc0c4e9d09b8c8621867f784d2f0 (patch)
tree51f46cdc8f8ea0f4e642d62b3bf8fce58034362e /std/c
parent1fb15be05f1037aad53d2db32d13123363365d10 (diff)
parentdd2450b1b21809c3fe62920498c318fbe519f579 (diff)
downloadzig-57f44eb2bd17fc0c4e9d09b8c8621867f784d2f0.tar.gz
zig-57f44eb2bd17fc0c4e9d09b8c8621867f784d2f0.zip
Merge branch 'freebsd2'
Tier 2 support for FreeBSD
Diffstat (limited to 'std/c')
-rw-r--r--std/c/freebsd.zig33
-rw-r--r--std/c/index.zig1
2 files changed, 34 insertions, 0 deletions
diff --git a/std/c/freebsd.zig b/std/c/freebsd.zig
new file mode 100644
index 0000000000..421e964827
--- /dev/null
+++ b/std/c/freebsd.zig
@@ -0,0 +1,33 @@
+const timespec = @import("../os/freebsd/index.zig").timespec;
+
+extern "c" fn __error() *c_int;
+pub const _errno = __error;
+
+pub extern "c" fn kqueue() c_int;
+pub extern "c" fn kevent(
+ kq: c_int,
+ changelist: [*]const Kevent,
+ nchanges: c_int,
+ eventlist: [*]Kevent,
+ nevents: c_int,
+ timeout: ?*const timespec,
+) c_int;
+pub extern "c" fn sysctl(name: [*]c_int, namelen: c_uint, oldp: ?*c_void, oldlenp: ?*usize, newp: ?*c_void, newlen: usize) c_int;
+pub extern "c" fn sysctlbyname(name: [*]const u8, oldp: ?*c_void, oldlenp: ?*usize, newp: ?*c_void, newlen: usize) c_int;
+pub extern "c" fn sysctlnametomib(name: [*]const u8, mibp: ?*c_int, sizep: ?*usize) c_int;
+
+/// Renamed from `kevent` to `Kevent` to avoid conflict with function name.
+pub const Kevent = extern struct {
+ ident: usize,
+ filter: i16,
+ flags: u16,
+ fflags: u32,
+ data: i64,
+ udata: usize,
+ // TODO ext
+};
+
+pub const pthread_attr_t = extern struct {
+ __size: [56]u8,
+ __align: c_long,
+};
diff --git a/std/c/index.zig b/std/c/index.zig
index 6b20d718ef..4aab39d931 100644
--- a/std/c/index.zig
+++ b/std/c/index.zig
@@ -5,6 +5,7 @@ pub use switch (builtin.os) {
Os.linux => @import("linux.zig"),
Os.windows => @import("windows.zig"),
Os.macosx, Os.ios => @import("darwin.zig"),
+ Os.freebsd => @import("freebsd.zig"),
else => empty_import,
};
const empty_import = @import("../empty.zig");