Hyper.Node.FireVMM.VmLinux.Manifest (Hyper v0.1.0)

Copy Markdown View Source

The statically-embedded vmlinux release manifest.

priv/vmlinux/manifest.json is vendored verbatim from a pinned github.com/harmont-dev/hyper-vmlinux release and read at compile time, so the per-build SHA-256 sums (used by Hyper.Node.FireVMM.VmLinux.Provider to verify downloads) are baked into the compiled module and cannot drift from what was published. @external_resource forces a recompile if the file changes.

All functions here are pure; they never touch the network or the filesystem.

Summary

Functions

The download URL for build's asset on the pinned release.

All builds in the manifest.

All builds matching arch.

The default build for arch: the highest version, breaking ties toward the shorter name (so a plain build wins over a variant like -no-acpi). Returns nil if the manifest has no build for arch.

Look up a build by its name (e.g. "x86_64-6.1").

Functions

asset_url(build)

The download URL for build's asset on the pinned release.

builds()

All builds in the manifest.

builds_for(arch)

All builds matching arch.

default_for(arch)

The default build for arch: the highest version, breaking ties toward the shorter name (so a plain build wins over a variant like -no-acpi). Returns nil if the manifest has no build for arch.

fetch(name)

@spec fetch(String.t()) ::
  {:ok, Hyper.Node.FireVMM.VmLinux.Manifest.Build.t()} | :error

Look up a build by its name (e.g. "x86_64-6.1").