(
&mut self,
_helper: &mut EpollHelper,
event: &epoll::Event,
)
| 902 | |
| 903 | impl EpollHelperHandler for IommuEpollHandler { |
| 904 | fn handle_event( |
| 905 | &mut self, |
| 906 | _helper: &mut EpollHelper, |
| 907 | event: &epoll::Event, |
| 908 | ) -> result::Result<(), EpollHelperError> { |
| 909 | let ev_type = event.data as u16; |
| 910 | match ev_type { |
| 911 | REQUEST_Q_EVENT => { |
| 912 | self.request_queue_evt.read().map_err(|e| { |
| 913 | EpollHelperError::HandleEvent(anyhow!("Failed to get queue event: {e:?}")) |
| 914 | })?; |
| 915 | |
| 916 | let needs_notification = self.request_queue().map_err(|e| { |
| 917 | EpollHelperError::HandleEvent(anyhow!( |
| 918 | "Failed to process request queue : {e:?}" |
| 919 | )) |
| 920 | })?; |
| 921 | if needs_notification { |
| 922 | self.signal_used_queue(0).map_err(|e| { |
| 923 | EpollHelperError::HandleEvent(anyhow!("Failed to signal used queue: {e:?}")) |
| 924 | })?; |
| 925 | } |
| 926 | } |
| 927 | _ => { |
| 928 | return Err(EpollHelperError::HandleEvent(anyhow!( |
| 929 | "Unexpected event: {ev_type}" |
| 930 | ))); |
| 931 | } |
| 932 | } |
| 933 | Ok(()) |
| 934 | } |
| 935 | } |
| 936 | |
| 937 | #[derive(Clone, Copy, Debug, Serialize, Deserialize)] |
nothing calls this directly
no test coverage detected