52 lines
885 B
Markdown
52 lines
885 B
Markdown
# miclib Zig wrapper
|
|
|
|
Zig 0.16 wrapper for Intel/CIRCL `miclib.h` / `libmicmgmt`.
|
|
|
|
## Build
|
|
|
|
```sh
|
|
zig build
|
|
```
|
|
|
|
## Use as a dependency
|
|
|
|
```sh
|
|
zig fetch --save git+https://git.kbz8.me/kbz_8/miclib-zig.git
|
|
```
|
|
|
|
Then in your `build.zig`:
|
|
|
|
```zig
|
|
const miclib_dep = b.dependency("miclib", .{
|
|
.target = target,
|
|
.optimize = optimize,
|
|
});
|
|
|
|
exe.root_module.addImport("miclib", miclib_dep.module("miclib"));
|
|
```
|
|
|
|
Then in Zig:
|
|
|
|
```zig
|
|
const mic = @import("miclib");
|
|
|
|
try mic.load();
|
|
defer mic.unload();
|
|
|
|
var list = try mic.DeviceList.init();
|
|
defer list.deinit();
|
|
|
|
const count = try list.count();
|
|
for (0..count) |index| {
|
|
const device_num = try list.deviceAtIndex(index);
|
|
var device = try mic.Device.open(device_num);
|
|
defer device.deinit();
|
|
|
|
var memory = try device.memoryInfo();
|
|
defer memory.deinit();
|
|
|
|
const mem_mib = try memory.size();
|
|
_ = mem_mib;
|
|
}
|
|
```
|