diff options
author | Zach Reizner <zachr@google.com> | 2019-12-12 18:58:50 -0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-01-09 07:53:57 +0000 |
commit | 19ad1f3d3a24b25878f03c6f3bb917c4ae28ce85 (patch) | |
tree | 5465440731391ebbb4d69776b2a29489a4eeadfa /src/linux.rs | |
parent | 58df38b61519222911baa761ffd26da93613dbf6 (diff) | |
download | crosvm-19ad1f3d3a24b25878f03c6f3bb917c4ae28ce85.tar crosvm-19ad1f3d3a24b25878f03c6f3bb917c4ae28ce85.tar.gz crosvm-19ad1f3d3a24b25878f03c6f3bb917c4ae28ce85.tar.bz2 crosvm-19ad1f3d3a24b25878f03c6f3bb917c4ae28ce85.tar.lz crosvm-19ad1f3d3a24b25878f03c6f3bb917c4ae28ce85.tar.xz crosvm-19ad1f3d3a24b25878f03c6f3bb917c4ae28ce85.tar.zst crosvm-19ad1f3d3a24b25878f03c6f3bb917c4ae28ce85.zip |
devices: remove user_command from proxy device
The only device that used user_command was Serial. This change makes Serial device use a thread to read from its input instead of using user_command. BUG=chromium:1033787 TEST=./build_test run crosvm with stdio serial with and without sandbox Change-Id: Ia0f2ee83d94ad2fee3f1f4f89aa734b976e33507 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/1966435 Tested-by: Zach Reizner <zachr@chromium.org> Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Dylan Reid <dgreid@chromium.org> Commit-Queue: Zach Reizner <zachr@chromium.org> Auto-Submit: Zach Reizner <zachr@chromium.org>
Diffstat (limited to 'src/linux.rs')
-rw-r--r-- | src/linux.rs | 34 |
1 files changed, 2 insertions, 32 deletions
diff --git a/src/linux.rs b/src/linux.rs index 2aa135d..c7e6b0b 100644 --- a/src/linux.rs +++ b/src/linux.rs @@ -1602,7 +1602,6 @@ fn run_control( #[derive(PollToken)] enum Token { Exit, - Stdin, ChildSignal, CheckAvailableMemory, LowMemory, @@ -1611,9 +1610,7 @@ fn run_control( VmControl { index: usize }, } - let stdin_handle = stdin(); - let stdin_lock = stdin_handle.lock(); - stdin_lock + stdin() .set_raw_mode() .expect("failed to set terminal raw mode"); @@ -1623,10 +1620,6 @@ fn run_control( ]) .map_err(Error::PollContextAdd)?; - if let Err(e) = poll_ctx.add(&stdin_handle, Token::Stdin) { - warn!("failed to add stdin to poll context: {}", e); - } - if let Some(socket_server) = &control_server_socket { poll_ctx .add(socket_server, Token::VmControlServer) @@ -1715,26 +1708,6 @@ fn run_control( info!("vcpu requested shutdown"); break 'poll; } - Token::Stdin => { - let mut out = [0u8; 64]; - match stdin_lock.read_raw(&mut out[..]) { - Ok(0) => { - // Zero-length read indicates EOF. Remove from pollables. - let _ = poll_ctx.delete(&stdin_handle); - } - Err(e) => { - warn!("error while reading stdin: {}", e); - let _ = poll_ctx.delete(&stdin_handle); - } - Ok(count) => { - if let Some(ref stdio_serial) = linux.stdio_serial { - stdio_serial - .queue_input_bytes(&out[..count]) - .expect("failed to queue bytes into serial port"); - } - } - } - } Token::ChildSignal => { // Print all available siginfo structs, then exit the loop. while let Some(siginfo) = sigchld_fd.read().map_err(Error::SignalFd)? { @@ -1928,9 +1901,6 @@ fn run_control( for event in events.iter_hungup() { match event.token() { Token::Exit => {} - Token::Stdin => { - let _ = poll_ctx.delete(&stdin_handle); - } Token::ChildSignal => {} Token::CheckAvailableMemory => {} Token::LowMemory => {} @@ -2003,7 +1973,7 @@ fn run_control( // control sockets are closed when this function exits. mem::drop(linux); - stdin_lock + stdin() .set_canon_mode() .expect("failed to restore canonical mode for terminal"); |