refactor: drop the dead shell probe and unused engine bindings

utils::detect_shell lost to the image probe; krun_set_root and
krun_set_env have had no caller since the root crossed as a block
device. Unused FFI bindings rot where they stand.
This commit is contained in:
vhaudiquet committed 2026-10-30 23:13:03 +01:00
1 parent a368a2e7cb
commit dabe66994b
2 files changed
+2 -48

No files matched your search

+2 -26
View File
@@ -117,18 +117,6 @@ impl Krun {
krun_ret(unsafe { f(ctx_id, vcpus, ram_mib) }, "krun_set_vm_config") krun_ret(unsafe { f(ctx_id, vcpus, ram_mib) }, "krun_set_vm_config")
} }
/// `krun_set_root`: the virtiofs share that becomes the guest root.
pub fn set_root(&self, ctx_id: u32, root: &Path) -> Result<()> {
let root_c = path_cstring(root)?;
let f = symbol!(
self.lib,
b"krun_set_root\0",
unsafe extern "C" fn(u32, *const c_char) -> i32
);
// Safety: root_c is NUL-terminated and outlives the call.
krun_ret(unsafe { f(ctx_id, root_c.as_ptr()) }, "krun_set_root")
}
/// `krun_add_disk`: a raw image as a virtio-blk device. An engine /// `krun_add_disk`: a raw image as a virtio-blk device. An engine
/// built without the blk feature ships no such symbol, and the /// built without the blk feature ships no such symbol, and the
/// lookup failure names that, not age. /// lookup failure names that, not age.
@@ -264,18 +252,6 @@ impl Krun {
) )
} }
/// `krun_set_env`: extra environment for the payload.
pub fn set_env(&self, ctx_id: u32, envp: &[String]) -> Result<()> {
let envp_c = CArgs::build(envp)?;
let f = symbol!(
self.lib,
b"krun_set_env\0",
unsafe extern "C" fn(u32, *const *const c_char) -> i32
);
// Safety: envp_c is NUL-terminated and outlives the call.
krun_ret(unsafe { f(ctx_id, envp_c.ptr()) }, "krun_set_env")
}
/// `krun_set_console_output`: redirect the guest console to a file. /// `krun_set_console_output`: redirect the guest console to a file.
pub fn set_console_output(&self, ctx_id: u32, path: &Path) -> Result<()> { pub fn set_console_output(&self, ctx_id: u32, path: &Path) -> Result<()> {
let path_c = path_cstring(path)?; let path_c = path_cstring(path)?;
@@ -437,9 +413,9 @@ mod tests {
#[test] #[test]
fn krun_ret_maps_negated_errno() { fn krun_ret_maps_negated_errno() {
let err = krun_ret(-2, "krun_set_root").unwrap_err(); let err = krun_ret(-2, "krun_set_vm_config").unwrap_err();
let msg = format!("{err:#}"); let msg = format!("{err:#}");
assert!(msg.contains("krun_set_root failed"), "{msg}"); assert!(msg.contains("krun_set_vm_config failed"), "{msg}");
assert!(msg.contains("No such file"), "{msg}"); assert!(msg.contains("No such file"), "{msg}");
} }
} }
-22
View File
@@ -160,28 +160,6 @@ pub fn map_oci_arch(arch: &str) -> String {
Arch::from_str(arch).oci_name().to_string() Arch::from_str(arch).oci_name().to_string()
} }
// ============================================================================
// Shell detection
// ============================================================================
/// Detect the best available shell in a rootfs
/// Checks for bash first, falls back to sh
/// Returns the path relative to the rootfs (e.g., "/bin/bash")
pub fn detect_shell(rootfs: &Path) -> &'static str {
// Check for bash first (preferred)
if rootfs.join("bin/bash").exists() {
"/bin/bash"
} else if rootfs.join("bin/sh").exists() {
"/bin/sh"
} else if rootfs.join("usr/bin/bash").exists() {
"/usr/bin/bash"
} else if rootfs.join("usr/bin/sh").exists() {
"/usr/bin/sh"
} else {
"/bin/sh" // Will fail with clear error if not present
}
}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;