diff options
Diffstat (limited to 'vm_control/src/lib.rs')
-rw-r--r-- | vm_control/src/lib.rs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/vm_control/src/lib.rs b/vm_control/src/lib.rs index 3d92c8b..3ec6be7 100644 --- a/vm_control/src/lib.rs +++ b/vm_control/src/lib.rs @@ -20,20 +20,22 @@ use libc::{EINVAL, EIO, ENODEV}; use kvm::{IrqRoute, IrqSource, Vm}; use msg_socket::{MsgError, MsgOnSocket, MsgResult, MsgSocket, UnixSeqpacketExt}; +use msg_socket2_derive::SerializeWithFds; use resources::{Alloc, GpuMemoryDesc, MmioType, SystemAllocator}; use sys_util::net::UnixSeqpacket; use sys_util::{error, Error as SysError, EventFd, GuestAddress, MemoryMapping, MmapError, Result}; /// A data structure that either owns or borrows a file descriptor. -#[derive(Debug)] -pub enum MaybeOwnedFd<Owned> { +#[derive(SerializeWithFds, Debug)] +#[msg_socket2(strategy = "AsRawFd")] +pub enum MaybeOwnedFd<Owned: AsRawFd> { /// Owned by this enum variant, and will be destructed automatically if not moved out. Owned(Owned), /// A file descriptor borrwed by this enum. Borrowed(RawFd), } -impl<Owned> MaybeOwnedFd<Owned> { +impl<Owned: AsRawFd> MaybeOwnedFd<Owned> { pub fn new_borrowed(fd: &dyn AsRawFd) -> Self { Self::Borrowed(fd.as_raw_fd()) } |