Skip to content

Commit dcaa268

Browse files
committed
Implement WriteVolatile for std::io::Stdout
This is needed for vm-virtio/virtio-console, to be able to wire up the console to stdout. Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
1 parent 961a017 commit dcaa268

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

src/io.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
use crate::bitmap::BitmapSlice;
77
use crate::volatile_memory::copy_slice_impl::{copy_from_volatile_slice, copy_to_volatile_slice};
88
use crate::{VolatileMemoryError, VolatileSlice};
9-
use std::io::ErrorKind;
9+
use std::io::{ErrorKind, Stdout};
1010
use std::os::fd::AsRawFd;
1111

1212
/// A version of the standard library's [`Read`] trait that operates on volatile memory instead of
@@ -134,6 +134,15 @@ macro_rules! impl_read_write_volatile_for_raw_fd {
134134
};
135135
}
136136

137+
impl WriteVolatile for Stdout {
138+
fn write_volatile<B: BitmapSlice>(
139+
&mut self,
140+
buf: &VolatileSlice<B>,
141+
) -> Result<usize, VolatileMemoryError> {
142+
write_volatile_raw_fd(self, buf)
143+
}
144+
}
145+
137146
impl_read_write_volatile_for_raw_fd!(std::fs::File);
138147
impl_read_write_volatile_for_raw_fd!(std::os::unix::net::UnixStream);
139148
impl_read_write_volatile_for_raw_fd!(std::os::fd::OwnedFd);

0 commit comments

Comments
 (0)