virtio-devices: Make EpollHandler more generic

Instead of passing only the event type through the handle_event()
callback, we make the trait slightly more generic by providing the
epoll event to each virtio device implementation.

This is particularly useful for vsock as it will need the event set.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
This commit is contained in:
Sebastien Boeuf
2020-08-11 19:12:02 +02:00
committed by Rob Bradford
parent 1e0b516a84
commit 01e7bd7276
10 changed files with 39 additions and 30 deletions

View File

@@ -600,8 +600,9 @@ impl MemEpollHandler {
}
impl EpollHelperHandler for MemEpollHandler {
fn handle_event(&mut self, _helper: &mut EpollHelper, event: u16) -> bool {
match event {
fn handle_event(&mut self, _helper: &mut EpollHelper, event: &epoll::Event) -> bool {
let ev_type = event.data as u16;
match ev_type {
RESIZE_EVENT => {
if let Err(e) = self.resize.evt.read() {
error!("Failed to get resize event: {:?}", e);
@@ -663,7 +664,7 @@ impl EpollHelperHandler for MemEpollHandler {
}
}
_ => {
error!("Unexpected event: {}", event);
error!("Unexpected event: {}", ev_type);
return true;
}
}