diff options
author | Jingkui Wang <jkwang@google.com> | 2019-03-08 20:41:57 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2019-03-17 21:33:08 -0700 |
commit | 100e6e48ad292406fb6f0a7eeb85465850bc28c7 (patch) | |
tree | 30f59fcb07b7cbee649a07390cd2397cfb65c463 /vm_control/src | |
parent | c324429b467d530fbeadef1fc9b527bb23ce1632 (diff) | |
download | crosvm-100e6e48ad292406fb6f0a7eeb85465850bc28c7.tar crosvm-100e6e48ad292406fb6f0a7eeb85465850bc28c7.tar.gz crosvm-100e6e48ad292406fb6f0a7eeb85465850bc28c7.tar.bz2 crosvm-100e6e48ad292406fb6f0a7eeb85465850bc28c7.tar.lz crosvm-100e6e48ad292406fb6f0a7eeb85465850bc28c7.tar.xz crosvm-100e6e48ad292406fb6f0a7eeb85465850bc28c7.tar.zst crosvm-100e6e48ad292406fb6f0a7eeb85465850bc28c7.zip |
implement xhci and add it to pci bus
Implement xhci controller, setup seccomp filters and add xhci to pci bus. CQ-DEPEND=CL:1512761 BUG=chromium:831850 TEST=local build Change-Id: I5c05452ece66e99d3a670e259e095fca616e835d Reviewed-on: https://chromium-review.googlesource.com/1512762 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Jingkui Wang <jkwang@google.com> Reviewed-by: Jingkui Wang <jkwang@google.com>
Diffstat (limited to 'vm_control/src')
-rw-r--r-- | vm_control/src/lib.rs | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/vm_control/src/lib.rs b/vm_control/src/lib.rs index ee24b61..c6115ad 100644 --- a/vm_control/src/lib.rs +++ b/vm_control/src/lib.rs @@ -220,6 +220,7 @@ impl VmRequest { run_mode: &mut Option<VmRunMode>, balloon_host_socket: &UnixSeqpacket, disk_host_sockets: &[MsgSocket<VmRequest, VmResponse>], + usb_control_socket: &UsbControlSocket, ) -> VmResponse { match *self { VmRequest::Exit => { @@ -316,8 +317,18 @@ impl VmRequest { } } VmRequest::UsbCommand(ref cmd) => { - error!("not implemented yet"); - VmResponse::Ok + let res = usb_control_socket.send(cmd); + if let Err(e) = res { + error!("fail to send command to usb control socket: {}", e); + return VmResponse::Err(SysError::new(EIO)); + } + match usb_control_socket.recv() { + Ok(response) => VmResponse::UsbResponse(response), + Err(e) => { + error!("fail to recv command from usb control socket: {}", e); + return VmResponse::Err(SysError::new(EIO)); + } + } } } } |