diff --git a/Cargo.lock b/Cargo.lock index c5d260d0..262cefba 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -383,7 +383,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7e8c4821c88b95582ca69234a1d233f87e44182c42e121f740efb0bec1142e0" dependencies = [ "input-linux-sys", - "nix", + "nix 0.29.0", ] [[package]] @@ -393,7 +393,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b91b2248b0eaf0a576ef5e60b7f2107a749e705a876bc0b9fe952ac8d83a724" dependencies = [ "libc", - "nix", + "nix 0.29.0", ] [[package]] @@ -474,9 +474,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.161" +version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" +checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "libudev-sys" @@ -565,7 +565,7 @@ dependencies = [ "krun-sys", "log", "neli", - "nix", + "nix 0.30.1", "procfs", "rustix", "serde", @@ -611,6 +611,18 @@ name = "nix" version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" +dependencies = [ + "bitflags", + "cfg-if", + "cfg_aliases", + "libc", +] + +[[package]] +name = "nix" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ "bitflags", "cfg-if", diff --git a/crates/muvm/Cargo.toml b/crates/muvm/Cargo.toml index 378fbc02..df87995d 100644 --- a/crates/muvm/Cargo.toml +++ b/crates/muvm/Cargo.toml @@ -18,7 +18,7 @@ input-linux = { version = "0.7.0", default-features = false, features = [] } input-linux-sys = { version = "0.9.0", default-features = false, features = [] } krun-sys = { path = "../krun-sys", version = "1.9.1", default-features = false, features = [] } log = { version = "0.4.21", default-features = false, features = ["kv"] } -nix = { version = "0.29.0", default-features = false, features = ["event", "fs", "ioctl", "mman", "ptrace", "signal", "socket", "uio", "user"] } +nix = { version = "0.30.0", default-features = false, features = ["event", "fs", "ioctl", "mman", "ptrace", "signal", "socket", "uio", "user"] } neli = { version = "0.7.0-rc3", default-features = false, features = ["sync"] } procfs = { version = "0.17.0", default-features = false, features = [] } rustix = { version = "0.38.34", default-features = false, features = ["fs", "mount", "process", "pty", "std", "stdio", "system", "termios", "use-libc-auxv"] } diff --git a/crates/muvm/src/guest/bridge/common.rs b/crates/muvm/src/guest/bridge/common.rs index fab62f3d..bfa0badc 100644 --- a/crates/muvm/src/guest/bridge/common.rs +++ b/crates/muvm/src/guest/bridge/common.rs @@ -735,7 +735,7 @@ impl<'a, P: ProtocolHandler> Client<'a, P> { fn process_vgpu(&mut self) -> Result { let mut evt = DrmEvent::default(); // SAFETY: `read` will return a valid DrmEvent - read(self.gpu_ctx.fd.as_raw_fd(), unsafe { + read(self.gpu_ctx.fd.as_fd(), unsafe { slice::from_raw_parts_mut( &mut evt as *mut DrmEvent as *mut u8, mem::size_of::(), diff --git a/crates/muvm/src/guest/bridge/x11.rs b/crates/muvm/src/guest/bridge/x11.rs index d2e53e36..a1a4b0e6 100644 --- a/crates/muvm/src/guest/bridge/x11.rs +++ b/crates/muvm/src/guest/bridge/x11.rs @@ -3,7 +3,7 @@ use std::collections::{HashMap, VecDeque}; use std::ffi::{c_long, c_void, CString}; use std::fs::{read_to_string, remove_file, File}; use std::io::{IoSlice, Write}; -use std::os::fd::{AsFd, AsRawFd, FromRawFd, OwnedFd, RawFd}; +use std::os::fd::{AsFd, AsRawFd, BorrowedFd, OwnedFd}; use std::process::exit; use std::ptr::NonNull; use std::sync::atomic::{AtomicBool, AtomicU32, Ordering}; @@ -371,7 +371,7 @@ impl X11ProtocolHandler { } fn replace_futex_storage( - my_fd: RawFd, + my_fd: BorrowedFd, pid: Pid, shmem_path: &str, shmem_file: &mut File, @@ -388,7 +388,7 @@ impl X11ProtocolHandler { for entry in fs::read_dir(format!("/proc/{pid}/fd"))? { let entry = entry?; if let Ok(file) = File::options().open(entry.path()) { - if fstat(file.as_raw_fd())?.st_ino == my_ino { + if fstat(file.as_fd())?.st_ino == my_ino { fds_to_replace.push(entry.file_name().to_string_lossy().parse::()?); } } @@ -457,9 +457,9 @@ impl X11ProtocolHandler { return Err(Errno::EOPNOTSUPP.into()); } else { let (fd, shmem_path) = mkstemp(SHM_TEMPLATE)?; - let mut shmem_file = unsafe { File::from_raw_fd(fd) }; + let mut shmem_file = File::from(fd); let ret = Self::replace_futex_storage( - memfd.as_raw_fd(), + memfd.as_fd(), Pid::from_raw(pid), shmem_path.as_os_str().to_str().unwrap(), &mut shmem_file,