From a5df86698b59f27e6b19c581cb35d25cd777ab53 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Fri, 20 Sep 2024 18:10:34 +0200 Subject: [PATCH] vmm: factor out stdout dup Signed-off-by: Alyssa Ross --- vmm/src/console_devices.rs | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/vmm/src/console_devices.rs b/vmm/src/console_devices.rs index cdadf1e95..b7dd91c3c 100644 --- a/vmm/src/console_devices.rs +++ b/vmm/src/console_devices.rs @@ -166,6 +166,16 @@ fn create_pty() -> io::Result<(File, File, PathBuf)> { Ok((main, unsafe { File::from_raw_fd(sub_fd) }, path)) } +fn dup_stdout() -> vmm_sys_util::errno::Result { + // SAFETY: FFI call to dup. Trivially safe. + let stdout = unsafe { libc::dup(libc::STDOUT_FILENO) }; + if stdout == -1 { + return vmm_sys_util::errno::errno_result(); + } + // SAFETY: stdout is valid and owned solely by us. + Ok(unsafe { File::from_raw_fd(stdout) }) +} + pub(crate) fn pre_create_console_devices(vmm: &mut Vmm) -> ConsoleDeviceResult { let vm_config = vmm.vm_config.as_mut().unwrap().clone(); let mut vmconfig = vm_config.lock().unwrap(); @@ -196,13 +206,7 @@ pub(crate) fn pre_create_console_devices(vmm: &mut Vmm) -> ConsoleDeviceResult ConsoleDeviceResult