lib/accy/src/kernel/library/histogram/family/runtime/arguments.zig
daab053ee43316e1809a84551d573ddd1e5bf3d2
1 const choir_abi = @import("choir_abi");
2 const accy = @import("../../../../../root.zig");
3 const library = @import("../../../root.zig");
4 const family = @import("../root.zig");
5
6 const extent = library.extent;
7 const Histogram = family.Histogram;
8
9 pub fn histogramRuntimeArguments(instance: Histogram) ![4]choir_abi.ScalarArgument {
10 return .{
11 .{ .u32 = try runtimeExtentArgument(instance.bins) },
12 .{ .u32 = try runtimeExtentArgument(instance.count) },
13 .{ .f32 = instance.lo },
14 .{ .f32 = instance.width },
15 };
16 }
17
18 fn runtimeExtentArgument(value: u64) !u32 {
19 if (value == 0 or value > extent.runtime_extent_max) return error.InvalidKernelLibraryEntry;
20 return @intCast(value);
21 }