(
&mut self,
_helper: &mut EpollHelper,
event: &epoll::Event,
)
| 419 | |
| 420 | impl EpollHelperHandler for BalloonEpollHandler { |
| 421 | fn handle_event( |
| 422 | &mut self, |
| 423 | _helper: &mut EpollHelper, |
| 424 | event: &epoll::Event, |
| 425 | ) -> result::Result<(), EpollHelperError> { |
| 426 | let ev_type = event.data as u16; |
| 427 | match ev_type { |
| 428 | INFLATE_QUEUE_EVENT => { |
| 429 | self.inflate_queue_evt.read().map_err(|e| { |
| 430 | EpollHelperError::HandleEvent(anyhow!( |
| 431 | "Failed to get inflate queue event: {e:?}" |
| 432 | )) |
| 433 | })?; |
| 434 | self.process_queue(0).map_err(|e| { |
| 435 | EpollHelperError::HandleEvent(anyhow!( |
| 436 | "Failed to signal used inflate queue: {e:?}" |
| 437 | )) |
| 438 | })?; |
| 439 | } |
| 440 | DEFLATE_QUEUE_EVENT => { |
| 441 | self.deflate_queue_evt.read().map_err(|e| { |
| 442 | EpollHelperError::HandleEvent(anyhow!( |
| 443 | "Failed to get deflate queue event: {e:?}" |
| 444 | )) |
| 445 | })?; |
| 446 | self.process_queue(1).map_err(|e| { |
| 447 | EpollHelperError::HandleEvent(anyhow!( |
| 448 | "Failed to signal used deflate queue: {e:?}" |
| 449 | )) |
| 450 | })?; |
| 451 | } |
| 452 | REPORTING_QUEUE_EVENT => { |
| 453 | if let Some(reporting_queue_evt) = self.reporting_queue_evt.as_ref() { |
| 454 | reporting_queue_evt.read().map_err(|e| { |
| 455 | EpollHelperError::HandleEvent(anyhow!( |
| 456 | "Failed to get reporting queue event: {e:?}" |
| 457 | )) |
| 458 | })?; |
| 459 | self.process_reporting_queue(2).map_err(|e| { |
| 460 | EpollHelperError::HandleEvent(anyhow!( |
| 461 | "Failed to signal used inflate queue: {e:?}" |
| 462 | )) |
| 463 | })?; |
| 464 | } else { |
| 465 | return Err(EpollHelperError::HandleEvent(anyhow!( |
| 466 | "Invalid reporting queue event as no eventfd registered" |
| 467 | ))); |
| 468 | } |
| 469 | } |
| 470 | _ => { |
| 471 | return Err(EpollHelperError::HandleEvent(anyhow!( |
| 472 | "Unknown event for virtio-balloon" |
| 473 | ))); |
| 474 | } |
| 475 | } |
| 476 | |
| 477 | Ok(()) |
| 478 | } |
nothing calls this directly
no test coverage detected