| author | |
| committer | |
| log | 7c42517151cf06b67268aec3be715b3e303e014a |
| tree | 2a458266bfb3f3474c7ec5cdf8223815dcc22b8b |
| parent | 9f27d770a1832cf3017a8b2f7281b6faf0347a51 |
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.12 files changed, 20 insertions(+), 238 deletions(-)
lib/std/os/linux.zig+20-2| ... | @@ -103,8 +103,6 @@ pub const dev_t = arch_bits.dev_t; | ... | @@ -103,8 +103,6 @@ pub const dev_t = arch_bits.dev_t; |
| 103 | pub const ino_t = arch_bits.ino_t; | 103 | pub const ino_t = arch_bits.ino_t; |
| 104 | pub const mcontext_t = arch_bits.mcontext_t; | 104 | pub const mcontext_t = arch_bits.mcontext_t; |
| 105 | pub const mode_t = arch_bits.mode_t; | 105 | pub const mode_t = arch_bits.mode_t; |
| 106 | pub const msghdr = arch_bits.msghdr; | ||
| 107 | pub const msghdr_const = arch_bits.msghdr_const; | ||
| 108 | pub const nlink_t = arch_bits.nlink_t; | 106 | pub const nlink_t = arch_bits.nlink_t; |
| 109 | pub const off_t = arch_bits.off_t; | 107 | pub const off_t = arch_bits.off_t; |
| 110 | pub const time_t = arch_bits.time_t; | 108 | pub const time_t = arch_bits.time_t; |
| ... | @@ -9403,3 +9401,23 @@ pub const SHADOW_STACK = struct { | ... | @@ -9403,3 +9401,23 @@ pub const SHADOW_STACK = struct { |
| 9403 | /// Set up a restore token in the shadow stack. | 9401 | /// Set up a restore token in the shadow stack. |
| 9404 | pub const SET_TOKEN: u64 = 1 << 0; | 9402 | pub const SET_TOKEN: u64 = 1 << 0; |
| 9405 | }; | 9403 | }; |
| 9404 | |||
| 9405 | pub const msghdr = extern struct { | ||
| 9406 | name: ?*sockaddr, | ||
| 9407 | namelen: socklen_t, | ||
| 9408 | iov: [*]iovec, | ||
| 9409 | iovlen: usize, | ||
| 9410 | control: ?*anyopaque, | ||
| 9411 | controllen: usize, | ||
| 9412 | flags: u32, | ||
| 9413 | }; | ||
| 9414 | |||
| 9415 | pub const msghdr_const = extern struct { | ||
| 9416 | name: ?*const sockaddr, | ||
| 9417 | namelen: socklen_t, | ||
| 9418 | iov: [*]const iovec_const, | ||
| 9419 | iovlen: usize, | ||
| 9420 | control: ?*const anyopaque, | ||
| 9421 | controllen: usize, | ||
| 9422 | flags: u32, | ||
| 9423 | }; | ||
| \ No newline at end of file | |||
lib/std/os/linux/aarch64.zig-24| ... | @@ -199,30 +199,6 @@ pub const Flock = extern struct { | ... | @@ -199,30 +199,6 @@ pub const Flock = extern struct { |
| 199 | __unused: [4]u8, | 199 | __unused: [4]u8, |
| 200 | }; | 200 | }; |
| 201 | 201 | ||
| 202 | pub const msghdr = extern struct { | ||
| 203 | name: ?*sockaddr, | ||
| 204 | namelen: socklen_t, | ||
| 205 | iov: [*]iovec, | ||
| 206 | iovlen: i32, | ||
| 207 | __pad1: i32 = 0, | ||
| 208 | control: ?*anyopaque, | ||
| 209 | controllen: socklen_t, | ||
| 210 | __pad2: socklen_t = 0, | ||
| 211 | flags: i32, | ||
| 212 | }; | ||
| 213 | |||
| 214 | pub const msghdr_const = extern struct { | ||
| 215 | name: ?*const sockaddr, | ||
| 216 | namelen: socklen_t, | ||
| 217 | iov: [*]const iovec_const, | ||
| 218 | iovlen: i32, | ||
| 219 | __pad1: i32 = 0, | ||
| 220 | control: ?*const anyopaque, | ||
| 221 | controllen: socklen_t, | ||
| 222 | __pad2: socklen_t = 0, | ||
| 223 | flags: i32, | ||
| 224 | }; | ||
| 225 | |||
| 226 | pub const blksize_t = i32; | 202 | pub const blksize_t = i32; |
| 227 | pub const nlink_t = u32; | 203 | pub const nlink_t = u32; |
| 228 | pub const time_t = isize; | 204 | pub const time_t = isize; |
lib/std/os/linux/arm.zig-20| ... | @@ -237,26 +237,6 @@ pub const Flock = extern struct { | ... | @@ -237,26 +237,6 @@ pub const Flock = extern struct { |
| 237 | __unused: [4]u8, | 237 | __unused: [4]u8, |
| 238 | }; | 238 | }; |
| 239 | 239 | ||
| 240 | pub const msghdr = extern struct { | ||
| 241 | name: ?*sockaddr, | ||
| 242 | namelen: socklen_t, | ||
| 243 | iov: [*]iovec, | ||
| 244 | iovlen: i32, | ||
| 245 | control: ?*anyopaque, | ||
| 246 | controllen: socklen_t, | ||
| 247 | flags: i32, | ||
| 248 | }; | ||
| 249 | |||
| 250 | pub const msghdr_const = extern struct { | ||
| 251 | name: ?*const sockaddr, | ||
| 252 | namelen: socklen_t, | ||
| 253 | iov: [*]const iovec_const, | ||
| 254 | iovlen: i32, | ||
| 255 | control: ?*const anyopaque, | ||
| 256 | controllen: socklen_t, | ||
| 257 | flags: i32, | ||
| 258 | }; | ||
| 259 | |||
| 260 | pub const blksize_t = i32; | 240 | pub const blksize_t = i32; |
| 261 | pub const nlink_t = u32; | 241 | pub const nlink_t = u32; |
| 262 | pub const time_t = isize; | 242 | pub const time_t = isize; |
lib/std/os/linux/mips.zig-20| ... | @@ -309,26 +309,6 @@ pub const Flock = extern struct { | ... | @@ -309,26 +309,6 @@ pub const Flock = extern struct { |
| 309 | __unused: [4]u8, | 309 | __unused: [4]u8, |
| 310 | }; | 310 | }; |
| 311 | 311 | ||
| 312 | pub const msghdr = extern struct { | ||
| 313 | name: ?*sockaddr, | ||
| 314 | namelen: socklen_t, | ||
| 315 | iov: [*]iovec, | ||
| 316 | iovlen: i32, | ||
| 317 | control: ?*anyopaque, | ||
| 318 | controllen: socklen_t, | ||
| 319 | flags: i32, | ||
| 320 | }; | ||
| 321 | |||
| 322 | pub const msghdr_const = extern struct { | ||
| 323 | name: ?*const sockaddr, | ||
| 324 | namelen: socklen_t, | ||
| 325 | iov: [*]const iovec_const, | ||
| 326 | iovlen: i32, | ||
| 327 | control: ?*const anyopaque, | ||
| 328 | controllen: socklen_t, | ||
| 329 | flags: i32, | ||
| 330 | }; | ||
| 331 | |||
| 332 | pub const blksize_t = u32; | 312 | pub const blksize_t = u32; |
| 333 | pub const nlink_t = u32; | 313 | pub const nlink_t = u32; |
| 334 | pub const time_t = i32; | 314 | pub const time_t = i32; |
lib/std/os/linux/mips64.zig-20| ... | @@ -288,26 +288,6 @@ pub const Flock = extern struct { | ... | @@ -288,26 +288,6 @@ pub const Flock = extern struct { |
| 288 | __unused: [4]u8, | 288 | __unused: [4]u8, |
| 289 | }; | 289 | }; |
| 290 | 290 | ||
| 291 | pub const msghdr = extern struct { | ||
| 292 | name: ?*sockaddr, | ||
| 293 | namelen: socklen_t, | ||
| 294 | iov: [*]iovec, | ||
| 295 | iovlen: i32, | ||
| 296 | control: ?*anyopaque, | ||
| 297 | controllen: socklen_t, | ||
| 298 | flags: i32, | ||
| 299 | }; | ||
| 300 | |||
| 301 | pub const msghdr_const = extern struct { | ||
| 302 | name: ?*const sockaddr, | ||
| 303 | namelen: socklen_t, | ||
| 304 | iov: [*]const iovec_const, | ||
| 305 | iovlen: i32, | ||
| 306 | control: ?*const anyopaque, | ||
| 307 | controllen: socklen_t, | ||
| 308 | flags: i32, | ||
| 309 | }; | ||
| 310 | |||
| 311 | pub const blksize_t = u32; | 291 | pub const blksize_t = u32; |
| 312 | pub const nlink_t = u32; | 292 | pub const nlink_t = u32; |
| 313 | pub const time_t = i32; | 293 | pub const time_t = i32; |
lib/std/os/linux/powerpc.zig-20| ... | @@ -247,26 +247,6 @@ pub const Flock = extern struct { | ... | @@ -247,26 +247,6 @@ pub const Flock = extern struct { |
| 247 | pid: pid_t, | 247 | pid: pid_t, |
| 248 | }; | 248 | }; |
| 249 | 249 | ||
| 250 | pub const msghdr = extern struct { | ||
| 251 | name: ?*sockaddr, | ||
| 252 | namelen: socklen_t, | ||
| 253 | iov: [*]iovec, | ||
| 254 | iovlen: usize, | ||
| 255 | control: ?*anyopaque, | ||
| 256 | controllen: socklen_t, | ||
| 257 | flags: i32, | ||
| 258 | }; | ||
| 259 | |||
| 260 | pub const msghdr_const = extern struct { | ||
| 261 | name: ?*const sockaddr, | ||
| 262 | namelen: socklen_t, | ||
| 263 | iov: [*]const iovec_const, | ||
| 264 | iovlen: usize, | ||
| 265 | control: ?*const anyopaque, | ||
| 266 | controllen: socklen_t, | ||
| 267 | flags: i32, | ||
| 268 | }; | ||
| 269 | |||
| 270 | pub const blksize_t = i32; | 250 | pub const blksize_t = i32; |
| 271 | pub const nlink_t = u32; | 251 | pub const nlink_t = u32; |
| 272 | pub const time_t = isize; | 252 | pub const time_t = isize; |
lib/std/os/linux/powerpc64.zig-20| ... | @@ -233,26 +233,6 @@ pub const Flock = extern struct { | ... | @@ -233,26 +233,6 @@ pub const Flock = extern struct { |
| 233 | __unused: [4]u8, | 233 | __unused: [4]u8, |
| 234 | }; | 234 | }; |
| 235 | 235 | ||
| 236 | pub const msghdr = extern struct { | ||
| 237 | name: ?*sockaddr, | ||
| 238 | namelen: socklen_t, | ||
| 239 | iov: [*]iovec, | ||
| 240 | iovlen: usize, | ||
| 241 | control: ?*anyopaque, | ||
| 242 | controllen: usize, | ||
| 243 | flags: i32, | ||
| 244 | }; | ||
| 245 | |||
| 246 | pub const msghdr_const = extern struct { | ||
| 247 | name: ?*const sockaddr, | ||
| 248 | namelen: socklen_t, | ||
| 249 | iov: [*]const iovec_const, | ||
| 250 | iovlen: usize, | ||
| 251 | control: ?*const anyopaque, | ||
| 252 | controllen: usize, | ||
| 253 | flags: i32, | ||
| 254 | }; | ||
| 255 | |||
| 256 | pub const blksize_t = i64; | 236 | pub const blksize_t = i64; |
| 257 | pub const nlink_t = u64; | 237 | pub const nlink_t = u64; |
| 258 | pub const time_t = i64; | 238 | pub const time_t = i64; |
lib/std/os/linux/riscv32.zig-24| ... | @@ -200,30 +200,6 @@ pub const Flock = extern struct { | ... | @@ -200,30 +200,6 @@ pub const Flock = extern struct { |
| 200 | __unused: [4]u8, | 200 | __unused: [4]u8, |
| 201 | }; | 201 | }; |
| 202 | 202 | ||
| 203 | pub const msghdr = extern struct { | ||
| 204 | name: ?*sockaddr, | ||
| 205 | namelen: socklen_t, | ||
| 206 | iov: [*]iovec, | ||
| 207 | iovlen: i32, | ||
| 208 | __pad1: i32 = 0, | ||
| 209 | control: ?*anyopaque, | ||
| 210 | controllen: socklen_t, | ||
| 211 | __pad2: socklen_t = 0, | ||
| 212 | flags: i32, | ||
| 213 | }; | ||
| 214 | |||
| 215 | pub const msghdr_const = extern struct { | ||
| 216 | name: ?*const sockaddr, | ||
| 217 | namelen: socklen_t, | ||
| 218 | iov: [*]const iovec_const, | ||
| 219 | iovlen: i32, | ||
| 220 | __pad1: i32 = 0, | ||
| 221 | control: ?*const anyopaque, | ||
| 222 | controllen: socklen_t, | ||
| 223 | __pad2: socklen_t = 0, | ||
| 224 | flags: i32, | ||
| 225 | }; | ||
| 226 | |||
| 227 | // The `stat` definition used by the Linux kernel. | 203 | // The `stat` definition used by the Linux kernel. |
| 228 | pub const Stat = extern struct { | 204 | pub const Stat = extern struct { |
| 229 | dev: dev_t, | 205 | dev: dev_t, |
lib/std/os/linux/riscv64.zig-24| ... | @@ -200,30 +200,6 @@ pub const Flock = extern struct { | ... | @@ -200,30 +200,6 @@ pub const Flock = extern struct { |
| 200 | __unused: [4]u8, | 200 | __unused: [4]u8, |
| 201 | }; | 201 | }; |
| 202 | 202 | ||
| 203 | pub const msghdr = extern struct { | ||
| 204 | name: ?*sockaddr, | ||
| 205 | namelen: socklen_t, | ||
| 206 | iov: [*]iovec, | ||
| 207 | iovlen: i32, | ||
| 208 | __pad1: i32 = 0, | ||
| 209 | control: ?*anyopaque, | ||
| 210 | controllen: socklen_t, | ||
| 211 | __pad2: socklen_t = 0, | ||
| 212 | flags: i32, | ||
| 213 | }; | ||
| 214 | |||
| 215 | pub const msghdr_const = extern struct { | ||
| 216 | name: ?*const sockaddr, | ||
| 217 | namelen: socklen_t, | ||
| 218 | iov: [*]const iovec_const, | ||
| 219 | iovlen: i32, | ||
| 220 | __pad1: i32 = 0, | ||
| 221 | control: ?*const anyopaque, | ||
| 222 | controllen: socklen_t, | ||
| 223 | __pad2: socklen_t = 0, | ||
| 224 | flags: i32, | ||
| 225 | }; | ||
| 226 | |||
| 227 | // The `stat` definition used by the Linux kernel. | 203 | // The `stat` definition used by the Linux kernel. |
| 228 | pub const Stat = extern struct { | 204 | pub const Stat = extern struct { |
| 229 | dev: dev_t, | 205 | dev: dev_t, |
lib/std/os/linux/sparc64.zig-20| ... | @@ -282,26 +282,6 @@ pub const Flock = extern struct { | ... | @@ -282,26 +282,6 @@ pub const Flock = extern struct { |
| 282 | pid: pid_t, | 282 | pid: pid_t, |
| 283 | }; | 283 | }; |
| 284 | 284 | ||
| 285 | pub const msghdr = extern struct { | ||
| 286 | name: ?*sockaddr, | ||
| 287 | namelen: socklen_t, | ||
| 288 | iov: [*]iovec, | ||
| 289 | iovlen: u64, | ||
| 290 | control: ?*anyopaque, | ||
| 291 | controllen: u64, | ||
| 292 | flags: i32, | ||
| 293 | }; | ||
| 294 | |||
| 295 | pub const msghdr_const = extern struct { | ||
| 296 | name: ?*const sockaddr, | ||
| 297 | namelen: socklen_t, | ||
| 298 | iov: [*]const iovec_const, | ||
| 299 | iovlen: u64, | ||
| 300 | control: ?*const anyopaque, | ||
| 301 | controllen: u64, | ||
| 302 | flags: i32, | ||
| 303 | }; | ||
| 304 | |||
| 305 | pub const off_t = i64; | 285 | pub const off_t = i64; |
| 306 | pub const ino_t = u64; | 286 | pub const ino_t = u64; |
| 307 | pub const time_t = isize; | 287 | pub const time_t = isize; |
lib/std/os/linux/x86.zig-20| ... | @@ -245,26 +245,6 @@ pub const Flock = extern struct { | ... | @@ -245,26 +245,6 @@ pub const Flock = extern struct { |
| 245 | pid: pid_t, | 245 | pid: pid_t, |
| 246 | }; | 246 | }; |
| 247 | 247 | ||
| 248 | pub const msghdr = extern struct { | ||
| 249 | name: ?*sockaddr, | ||
| 250 | namelen: socklen_t, | ||
| 251 | iov: [*]iovec, | ||
| 252 | iovlen: i32, | ||
| 253 | control: ?*anyopaque, | ||
| 254 | controllen: socklen_t, | ||
| 255 | flags: i32, | ||
| 256 | }; | ||
| 257 | |||
| 258 | pub const msghdr_const = extern struct { | ||
| 259 | name: ?*const sockaddr, | ||
| 260 | namelen: socklen_t, | ||
| 261 | iov: [*]const iovec_const, | ||
| 262 | iovlen: i32, | ||
| 263 | control: ?*const anyopaque, | ||
| 264 | controllen: socklen_t, | ||
| 265 | flags: i32, | ||
| 266 | }; | ||
| 267 | |||
| 268 | pub const blksize_t = i32; | 248 | pub const blksize_t = i32; |
| 269 | pub const nlink_t = u32; | 249 | pub const nlink_t = u32; |
| 270 | pub const time_t = isize; | 250 | pub const time_t = isize; |
lib/std/os/linux/x86_64.zig-24| ... | @@ -233,30 +233,6 @@ pub const Flock = extern struct { | ... | @@ -233,30 +233,6 @@ pub const Flock = extern struct { |
| 233 | pid: pid_t, | 233 | pid: pid_t, |
| 234 | }; | 234 | }; |
| 235 | 235 | ||
| 236 | pub const msghdr = extern struct { | ||
| 237 | name: ?*sockaddr, | ||
| 238 | namelen: socklen_t, | ||
| 239 | iov: [*]iovec, | ||
| 240 | iovlen: i32, | ||
| 241 | __pad1: i32 = 0, | ||
| 242 | control: ?*anyopaque, | ||
| 243 | controllen: socklen_t, | ||
| 244 | __pad2: socklen_t = 0, | ||
| 245 | flags: i32, | ||
| 246 | }; | ||
| 247 | |||
| 248 | pub const msghdr_const = extern struct { | ||
| 249 | name: ?*const sockaddr, | ||
| 250 | namelen: socklen_t, | ||
| 251 | iov: [*]const iovec_const, | ||
| 252 | iovlen: i32, | ||
| 253 | __pad1: i32 = 0, | ||
| 254 | control: ?*const anyopaque, | ||
| 255 | controllen: socklen_t, | ||
| 256 | __pad2: socklen_t = 0, | ||
| 257 | flags: i32, | ||
| 258 | }; | ||
| 259 | |||
| 260 | pub const off_t = i64; | 236 | pub const off_t = i64; |
| 261 | pub const ino_t = u64; | 237 | pub const ino_t = u64; |
| 262 | pub const dev_t = u64; | 238 | pub const dev_t = u64; |