From cb649b769c4a8d1d5d703994976c2c9e4ae4e03b Mon Sep 17 00:00:00 2001 From: Luna Date: Mon, 30 Mar 2020 17:06:45 -0300 Subject: [PATCH] Fix ifreq definition --- lib/std/net.zig | 2 +- lib/std/os/bits/linux.zig | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/std/net.zig b/lib/std/net.zig index 1596df2d7e..0bb797fd5e 100644 --- a/lib/std/net.zig +++ b/lib/std/net.zig @@ -551,7 +551,7 @@ fn if_nametoindex(name: []const u8) !u32 { else => {}, } - std.debug.warn("ival={}\n", .{ifr.ifr_ifru.ifru_ivalue}); + std.debug.warn("ival={}, rest={}\n", .{ ifr.ifr_ifru.ifru_ivalue, ifr.ifr_ifru }); return @bitCast(u32, ifr.ifr_ifru.ifru_ivalue); } diff --git a/lib/std/os/bits/linux.zig b/lib/std/os/bits/linux.zig index 773a61b3ce..97ca3e94e4 100644 --- a/lib/std/os/bits/linux.zig +++ b/lib/std/os/bits/linux.zig @@ -1709,31 +1709,31 @@ pub const termios = extern struct { pub const SIOCGIFINDEX = 0x8933; pub const IFNAMESIZE = 16; -pub const ifmap = struct { - mem_start: u32, - mem_end: u32, - base_addr: i16, +pub const ifmap = extern struct { + mem_start: c_ulong, + mem_end: c_ulong, + base_addr: c_ushort, irq: u8, dma: u8, port: u8, }; -pub const ifreq = extern union { - ifr_ifrn: struct { +pub const ifreq = extern struct { + ifr_ifrn: extern union { name: [IFNAMESIZE]u8, }, - ifr_ifru: struct { + ifr_ifru: extern union { ifru_addr: sockaddr, ifru_dstaddr: sockaddr, ifru_broadaddr: sockaddr, ifru_netmask: sockaddr, ifru_hwaddr: sockaddr, - ifru_flags: i16, + ifru_flags: c_short, ifru_ivalue: i32, ifru_mtu: i32, ifru_map: ifmap, ifru_slave: [IFNAMESIZE]u8, ifru_newname: [IFNAMESIZE]u8, - ifru_data: [*:0]u8, + ifru_data: [*c]u8, }, };