aboutsummaryrefslogtreecommitdiff
path: root/lib/std/os/bits.zig
diff options
context:
space:
mode:
Diffstat (limited to 'lib/std/os/bits.zig')
-rw-r--r--lib/std/os/bits.zig27
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/std/os/bits.zig b/lib/std/os/bits.zig
new file mode 100644
index 0000000000..f16da2487b
--- /dev/null
+++ b/lib/std/os/bits.zig
@@ -0,0 +1,27 @@
+// Platform-dependent types and values that are used along with OS-specific APIs.
+// These are imported into `std.c`, `std.os`, and `std.os.linux`.
+
+const builtin = @import("builtin");
+
+pub usingnamespace switch (builtin.os) {
+ .macosx, .ios, .tvos, .watchos => @import("bits/darwin.zig"),
+ .freebsd => @import("bits/freebsd.zig"),
+ .linux => @import("bits/linux.zig"),
+ .netbsd => @import("bits/netbsd.zig"),
+ .wasi => @import("bits/wasi.zig"),
+ .windows => @import("bits/windows.zig"),
+ else => struct {},
+};
+
+pub const pthread_t = *@OpaqueType();
+pub const FILE = @OpaqueType();
+
+pub const iovec = extern struct {
+ iov_base: [*]u8,
+ iov_len: usize,
+};
+
+pub const iovec_const = extern struct {
+ iov_base: [*]const u8,
+ iov_len: usize,
+};