Zig 0.17.0-dev (Split by item)

This is an example of documentation generated by ZigDoc, an alternative to Zig's built-in Auto Doc feature. See also examples in other modes/formats. The project being documented here (as the example) is the Zig library itself.

F

linux.F
pub const F = struct

File

lib/std/os/linux.zig:1990

Code

pub const F = struct {
    pub const DUPFD = 0;
    pub const GETFD = 1;
    pub const SETFD = 2;
    pub const GETFL = 3;
    pub const SETFL = 4;

    pub const GETLK = GET_SET_LK.GETLK;
    pub const SETLK = GET_SET_LK.SETLK;
    pub const SETLKW = GET_SET_LK.SETLKW;

    pub const SETOWN = GET_SET_OWN.SETOWN;
    pub const GETOWN = GET_SET_OWN.GETOWN;

    const GET_SET_LK = switch (native_arch) {
        .mips, .mipsel => struct {
            const GETLK = 33;
            const SETLK = 34;
            const SETLKW = 35;
        },
        .mips64, .mips64el => switch (native_abi) {
            .gnuabin32, .muslabin32, .abin32 => struct {
                const GETLK = 33;
                const SETLK = 34;
                const SETLKW = 35;
            },
            else => struct {
                const GETLK = 14;
                const SETLK = 6;
                const SETLKW = 7;
            },
        },
        .alpha, .sparc, .sparc64 => struct {
            const GETLK = 7;
            const SETLK = 8;
            const SETLKW = 9;
        },
        .hppa, .hppa64 => struct {
            const GETLK = 8;
            const SETLK = 9;
            const SETLKW = 10;
        },
        else => if (@sizeOf(usize) == 8) struct {
            const GETLK = 5;
            const SETLK = 6;
            const SETLKW = 7;
        } else struct {
            const GETLK = 12;
            const SETLK = 13;
            const SETLKW = 14;
        },
    };
    const GET_SET_OWN = switch (native_arch) {
        .mips, .mipsel, .mips64, .mips64el => struct {
            const GETOWN = 23;
            const SETOWN = 24;
        },
        .alpha, .sparc, .sparc64 => struct {
            const GETOWN = 5;
            const SETOWN = 6;
        },
        .hppa, .hppa64 => struct {
            const GETOWN = 11;
            const SETOWN = 12;
        },
        else => struct {
            const GETOWN = 8;
            const SETOWN = 9;
        },
    };

    pub const SETSIG = if (is_hppa or native_arch == .alpha) 13 else 11;
    pub const GETSIG = if (is_hppa or native_arch == .alpha) 14 else 12;

    pub const SETOWN_EX = 15;
    pub const GETOWN_EX = 16;

    pub const GETOWNER_UIDS = 17;

    pub const OFD_GETLK = 36;
    pub const OFD_SETLK = 37;
    pub const OFD_SETLKW = 38;

    pub const RDLCK = if (is_sparc) 1 else 0;
    pub const WRLCK = if (is_sparc) 2 else 1;
    pub const UNLCK = if (is_sparc) 3 else if (native_arch == .alpha) 8 else 2;

    pub const LINUX_SPECIFIC_BASE = 1024;

    pub const SETLEASE = LINUX_SPECIFIC_BASE + 0;
    pub const GETLEASE = LINUX_SPECIFIC_BASE + 1;
    pub const NOTIFY = LINUX_SPECIFIC_BASE + 2;
    pub const DUPFD_QUERY = LINUX_SPECIFIC_BASE + 3;
    pub const CREATED_QUERY = LINUX_SPECIFIC_BASE + 4;
    pub const CANCELLK = LINUX_SPECIFIC_BASE + 5;
    pub const DUPFD_CLOEXEC = LINUX_SPECIFIC_BASE + 6;
    pub const SETPIPE_SZ = LINUX_SPECIFIC_BASE + 7;
    pub const GETPIPE_SZ = LINUX_SPECIFIC_BASE + 8;
    pub const ADD_SEALS = LINUX_SPECIFIC_BASE + 9;
    pub const GET_SEALS = LINUX_SPECIFIC_BASE + 10;

    pub const SEAL_SEAL = 0x0001;
    pub const SEAL_SHRINK = 0x0002;
    pub const SEAL_GROW = 0x0004;
    pub const SEAL_WRITE = 0x0008;
    pub const SEAL_FUTURE_WRITE = 0x0010;
    pub const SEAL_EXEC = 0x0020;

    pub const GET_RW_HINT = LINUX_SPECIFIC_BASE + 11;
    pub const SET_RW_HINT = LINUX_SPECIFIC_BASE + 12;
    pub const GET_FILE_RW_HINT = LINUX_SPECIFIC_BASE + 13;
    pub const SET_FILE_RW_HINT = LINUX_SPECIFIC_BASE + 14;
}