zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 7c42517151cf06b67268aec3be715b3e303e014a (tree)
parent 9f27d770a1832cf3017a8b2f7281b6faf0347a51
Author: Nameless <truemedian@gmail.com>
Date:   Fri,  2 Aug 2024 15:59:13 -0500

os: fix missing and incorrect msghdr definitions

Macos uses the BSD definition of msghdr

All linux architectures share a single msghdr definition. Many
architectures had manually inserted padding fields that were endian
specific and some had fields with different integers. This unifies all
architectures to use a single correct msghdr definition.

Diffstat:
Mlib/std/os/linux.zig | 23+++++++++++++++++++++--
Mlib/std/os/linux/aarch64.zig | 24------------------------
Mlib/std/os/linux/arm.zig | 20--------------------
Mlib/std/os/linux/mips.zig | 20--------------------
Mlib/std/os/linux/mips64.zig | 20--------------------
Mlib/std/os/linux/powerpc.zig | 20--------------------
Mlib/std/os/linux/powerpc64.zig | 20--------------------
Mlib/std/os/linux/riscv32.zig | 24------------------------
Mlib/std/os/linux/riscv64.zig | 24------------------------
Mlib/std/os/linux/sparc64.zig | 20--------------------
Mlib/std/os/linux/x86.zig | 20--------------------
Mlib/std/os/linux/x86_64.zig | 24------------------------
12 files changed, 21 insertions(+), 238 deletions(-)

diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig @@ -103,8 +103,6 @@ pub const dev_t = arch_bits.dev_t; pub const ino_t = arch_bits.ino_t; pub const mcontext_t = arch_bits.mcontext_t; pub const mode_t = arch_bits.mode_t; -pub const msghdr = arch_bits.msghdr; -pub const msghdr_const = arch_bits.msghdr_const; pub const nlink_t = arch_bits.nlink_t; pub const off_t = arch_bits.off_t; pub const time_t = arch_bits.time_t; @@ -9403,3 +9401,23 @@ pub const SHADOW_STACK = struct { /// Set up a restore token in the shadow stack. pub const SET_TOKEN: u64 = 1 << 0; }; + +pub const msghdr = extern struct { + name: ?*sockaddr, + namelen: socklen_t, + iov: [*]iovec, + iovlen: usize, + control: ?*anyopaque, + controllen: usize, + flags: u32, +}; + +pub const msghdr_const = extern struct { + name: ?*const sockaddr, + namelen: socklen_t, + iov: [*]const iovec_const, + iovlen: usize, + control: ?*const anyopaque, + controllen: usize, + flags: u32, +}; +\ No newline at end of file diff --git a/lib/std/os/linux/aarch64.zig b/lib/std/os/linux/aarch64.zig @@ -199,30 +199,6 @@ pub const Flock = extern struct { __unused: [4]u8, }; -pub const msghdr = extern struct { - name: ?*sockaddr, - namelen: socklen_t, - iov: [*]iovec, - iovlen: i32, - __pad1: i32 = 0, - control: ?*anyopaque, - controllen: socklen_t, - __pad2: socklen_t = 0, - flags: i32, -}; - -pub const msghdr_const = extern struct { - name: ?*const sockaddr, - namelen: socklen_t, - iov: [*]const iovec_const, - iovlen: i32, - __pad1: i32 = 0, - control: ?*const anyopaque, - controllen: socklen_t, - __pad2: socklen_t = 0, - flags: i32, -}; - pub const blksize_t = i32; pub const nlink_t = u32; pub const time_t = isize; diff --git a/lib/std/os/linux/arm.zig b/lib/std/os/linux/arm.zig @@ -237,26 +237,6 @@ pub const Flock = extern struct { __unused: [4]u8, }; -pub const msghdr = extern struct { - name: ?*sockaddr, - namelen: socklen_t, - iov: [*]iovec, - iovlen: i32, - control: ?*anyopaque, - controllen: socklen_t, - flags: i32, -}; - -pub const msghdr_const = extern struct { - name: ?*const sockaddr, - namelen: socklen_t, - iov: [*]const iovec_const, - iovlen: i32, - control: ?*const anyopaque, - controllen: socklen_t, - flags: i32, -}; - pub const blksize_t = i32; pub const nlink_t = u32; pub const time_t = isize; diff --git a/lib/std/os/linux/mips.zig b/lib/std/os/linux/mips.zig @@ -309,26 +309,6 @@ pub const Flock = extern struct { __unused: [4]u8, }; -pub const msghdr = extern struct { - name: ?*sockaddr, - namelen: socklen_t, - iov: [*]iovec, - iovlen: i32, - control: ?*anyopaque, - controllen: socklen_t, - flags: i32, -}; - -pub const msghdr_const = extern struct { - name: ?*const sockaddr, - namelen: socklen_t, - iov: [*]const iovec_const, - iovlen: i32, - control: ?*const anyopaque, - controllen: socklen_t, - flags: i32, -}; - pub const blksize_t = u32; pub const nlink_t = u32; pub const time_t = i32; diff --git a/lib/std/os/linux/mips64.zig b/lib/std/os/linux/mips64.zig @@ -288,26 +288,6 @@ pub const Flock = extern struct { __unused: [4]u8, }; -pub const msghdr = extern struct { - name: ?*sockaddr, - namelen: socklen_t, - iov: [*]iovec, - iovlen: i32, - control: ?*anyopaque, - controllen: socklen_t, - flags: i32, -}; - -pub const msghdr_const = extern struct { - name: ?*const sockaddr, - namelen: socklen_t, - iov: [*]const iovec_const, - iovlen: i32, - control: ?*const anyopaque, - controllen: socklen_t, - flags: i32, -}; - pub const blksize_t = u32; pub const nlink_t = u32; pub const time_t = i32; diff --git a/lib/std/os/linux/powerpc.zig b/lib/std/os/linux/powerpc.zig @@ -247,26 +247,6 @@ pub const Flock = extern struct { pid: pid_t, }; -pub const msghdr = extern struct { - name: ?*sockaddr, - namelen: socklen_t, - iov: [*]iovec, - iovlen: usize, - control: ?*anyopaque, - controllen: socklen_t, - flags: i32, -}; - -pub const msghdr_const = extern struct { - name: ?*const sockaddr, - namelen: socklen_t, - iov: [*]const iovec_const, - iovlen: usize, - control: ?*const anyopaque, - controllen: socklen_t, - flags: i32, -}; - pub const blksize_t = i32; pub const nlink_t = u32; pub const time_t = isize; diff --git a/lib/std/os/linux/powerpc64.zig b/lib/std/os/linux/powerpc64.zig @@ -233,26 +233,6 @@ pub const Flock = extern struct { __unused: [4]u8, }; -pub const msghdr = extern struct { - name: ?*sockaddr, - namelen: socklen_t, - iov: [*]iovec, - iovlen: usize, - control: ?*anyopaque, - controllen: usize, - flags: i32, -}; - -pub const msghdr_const = extern struct { - name: ?*const sockaddr, - namelen: socklen_t, - iov: [*]const iovec_const, - iovlen: usize, - control: ?*const anyopaque, - controllen: usize, - flags: i32, -}; - pub const blksize_t = i64; pub const nlink_t = u64; pub const time_t = i64; diff --git a/lib/std/os/linux/riscv32.zig b/lib/std/os/linux/riscv32.zig @@ -200,30 +200,6 @@ pub const Flock = extern struct { __unused: [4]u8, }; -pub const msghdr = extern struct { - name: ?*sockaddr, - namelen: socklen_t, - iov: [*]iovec, - iovlen: i32, - __pad1: i32 = 0, - control: ?*anyopaque, - controllen: socklen_t, - __pad2: socklen_t = 0, - flags: i32, -}; - -pub const msghdr_const = extern struct { - name: ?*const sockaddr, - namelen: socklen_t, - iov: [*]const iovec_const, - iovlen: i32, - __pad1: i32 = 0, - control: ?*const anyopaque, - controllen: socklen_t, - __pad2: socklen_t = 0, - flags: i32, -}; - // The `stat` definition used by the Linux kernel. pub const Stat = extern struct { dev: dev_t, diff --git a/lib/std/os/linux/riscv64.zig b/lib/std/os/linux/riscv64.zig @@ -200,30 +200,6 @@ pub const Flock = extern struct { __unused: [4]u8, }; -pub const msghdr = extern struct { - name: ?*sockaddr, - namelen: socklen_t, - iov: [*]iovec, - iovlen: i32, - __pad1: i32 = 0, - control: ?*anyopaque, - controllen: socklen_t, - __pad2: socklen_t = 0, - flags: i32, -}; - -pub const msghdr_const = extern struct { - name: ?*const sockaddr, - namelen: socklen_t, - iov: [*]const iovec_const, - iovlen: i32, - __pad1: i32 = 0, - control: ?*const anyopaque, - controllen: socklen_t, - __pad2: socklen_t = 0, - flags: i32, -}; - // The `stat` definition used by the Linux kernel. pub const Stat = extern struct { dev: dev_t, diff --git a/lib/std/os/linux/sparc64.zig b/lib/std/os/linux/sparc64.zig @@ -282,26 +282,6 @@ pub const Flock = extern struct { pid: pid_t, }; -pub const msghdr = extern struct { - name: ?*sockaddr, - namelen: socklen_t, - iov: [*]iovec, - iovlen: u64, - control: ?*anyopaque, - controllen: u64, - flags: i32, -}; - -pub const msghdr_const = extern struct { - name: ?*const sockaddr, - namelen: socklen_t, - iov: [*]const iovec_const, - iovlen: u64, - control: ?*const anyopaque, - controllen: u64, - flags: i32, -}; - pub const off_t = i64; pub const ino_t = u64; pub const time_t = isize; diff --git a/lib/std/os/linux/x86.zig b/lib/std/os/linux/x86.zig @@ -245,26 +245,6 @@ pub const Flock = extern struct { pid: pid_t, }; -pub const msghdr = extern struct { - name: ?*sockaddr, - namelen: socklen_t, - iov: [*]iovec, - iovlen: i32, - control: ?*anyopaque, - controllen: socklen_t, - flags: i32, -}; - -pub const msghdr_const = extern struct { - name: ?*const sockaddr, - namelen: socklen_t, - iov: [*]const iovec_const, - iovlen: i32, - control: ?*const anyopaque, - controllen: socklen_t, - flags: i32, -}; - pub const blksize_t = i32; pub const nlink_t = u32; pub const time_t = isize; diff --git a/lib/std/os/linux/x86_64.zig b/lib/std/os/linux/x86_64.zig @@ -233,30 +233,6 @@ pub const Flock = extern struct { pid: pid_t, }; -pub const msghdr = extern struct { - name: ?*sockaddr, - namelen: socklen_t, - iov: [*]iovec, - iovlen: i32, - __pad1: i32 = 0, - control: ?*anyopaque, - controllen: socklen_t, - __pad2: socklen_t = 0, - flags: i32, -}; - -pub const msghdr_const = extern struct { - name: ?*const sockaddr, - namelen: socklen_t, - iov: [*]const iovec_const, - iovlen: i32, - __pad1: i32 = 0, - control: ?*const anyopaque, - controllen: socklen_t, - __pad2: socklen_t = 0, - flags: i32, -}; - pub const off_t = i64; pub const ino_t = u64; pub const dev_t = u64;