aboutsummaryrefslogtreecommitdiff
path: root/lib/std/os/bits.zig
blob: f16da2487b862a633beb3b5aab29e3893c3eef4c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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,
};