Source
pub fn map_get_next_key(fd: fd_t, key: []const u8, next_key: []u8) !bool {
var attr = Attr{
.map_elem = std.mem.zeroes(MapElemAttr),
};
attr.map_elem.map_fd = fd;
attr.map_elem.key = @intFromPtr(key.ptr);
attr.map_elem.result.next_key = @intFromPtr(next_key.ptr);
const rc = linux.bpf(.map_get_next_key, &attr, @sizeOf(MapElemAttr));
switch (errno(rc)) {
.SUCCESS => return true,
.BADF => return error.BadFd,
.FAULT => unreachable,
.INVAL => return error.FieldInAttrNeedsZeroing,
.NOENT => return false,
.PERM => return error.PermissionDenied,
else => |err| return unexpectedErrno(err),
}
}