Path: blob/main/core/kernel/src/wasm/posix/netif.zig
1068 views
const std = @import("std");1const net_if = @cImport({2@cDefine("if_nameindex_struct", "struct if_nameindex");3@cInclude("net/if.h");4});56pub const constants = .{7.c_import = net_if,8.names = [_][:0]const u8{"IFNAMSIZ"},9};1011export fn createNameIndexArray(len: usize) ?[*]net_if.if_nameindex_struct {12const voidPtr = std.c.malloc((len + 1) * @sizeOf(net_if.if_nameindex_struct)) orelse return null;13const ni = @ptrCast([*]net_if.if_nameindex_struct, @alignCast(std.meta.alignment(*net_if.if_nameindex_struct), voidPtr));14setNameIndexElement(ni, len, 0, null);15return ni;16}1718export fn setNameIndexElement(ni: [*]net_if.if_nameindex_struct, i: usize, if_index: u32, if_name: ?[*:0]u8) void {19ni[i].if_index = if_index;20ni[i].if_name = if_name;21}2223export fn freeNameIndexArray(ni: [*]net_if.if_nameindex_struct) void {24var i: usize = 0;25while (ni[i].if_index != 0) : (i += 1) {26std.c.free(ni[i].if_name);27}28std.c.free(ni);29}303132