rdif-vsock 0.1.1

Driver Interface vsock definition.
Documentation
use crate::{DriverGeneric, Event, VsockConnId, VsockError, VsockEvent};

pub trait Interface: DriverGeneric {
    fn guest_cid(&self) -> u64;

    fn listen(&mut self, port: u32) -> Result<(), VsockError>;

    fn connect(&mut self, id: VsockConnId) -> Result<(), VsockError>;

    fn send(&mut self, id: VsockConnId, buf: &[u8]) -> Result<usize, VsockError>;

    fn recv(&mut self, id: VsockConnId, buf: &mut [u8]) -> Result<usize, VsockError>;

    fn recv_avail(&mut self, id: VsockConnId) -> Result<usize, VsockError>;

    fn disconnect(&mut self, id: VsockConnId) -> Result<(), VsockError>;

    fn abort(&mut self, id: VsockConnId) -> Result<(), VsockError>;

    fn poll_event(&mut self) -> Result<Option<VsockEvent>, VsockError>;

    fn enable_irq(&mut self) {}

    fn disable_irq(&mut self) {}

    fn is_irq_enabled(&self) -> bool {
        false
    }

    fn handle_irq(&mut self) -> Event {
        Event::none()
    }
}