mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-17 05:25:37 +03:00
std: xous: use constants for stdout and stderr
Use constants for the opcodes when writing to stdout or stderr. There still is no stdin operation. Signed-off-by: Sean Cross <sean@xobs.io>
This commit is contained in:
@@ -45,6 +45,17 @@ pub(crate) enum LogScalar<'a> {
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) enum LogLend {
|
||||
StandardOutput = 1,
|
||||
StandardError = 2,
|
||||
}
|
||||
|
||||
impl Into<usize> for LogLend {
|
||||
fn into(self) -> usize {
|
||||
self as usize
|
||||
}
|
||||
}
|
||||
|
||||
/// Return a `Connection` to the log server, which is used for printing messages to
|
||||
/// the console and reporting panics. If the log server has not yet started, this
|
||||
/// will block until the server is running. It is safe to call this multiple times,
|
||||
|
||||
@@ -5,7 +5,7 @@ pub struct Stdout {}
|
||||
pub struct Stderr;
|
||||
|
||||
use crate::os::xous::ffi::{lend, try_lend, try_scalar, Connection};
|
||||
use crate::os::xous::services::{log_server, try_connect, LogScalar};
|
||||
use crate::os::xous::services::{log_server, try_connect, LogLend, LogScalar};
|
||||
|
||||
impl Stdin {
|
||||
pub const fn new() -> Stdin {
|
||||
@@ -35,7 +35,8 @@ fn write(&mut self, buf: &[u8]) -> io::Result<usize> {
|
||||
for (dest, src) in lend_buffer.0.iter_mut().zip(chunk) {
|
||||
*dest = *src;
|
||||
}
|
||||
lend(connection, 1, &lend_buffer.0, 0, chunk.len()).unwrap();
|
||||
lend(connection, LogLend::StandardOutput.into(), &lend_buffer.0, 0, chunk.len())
|
||||
.unwrap();
|
||||
}
|
||||
Ok(buf.len())
|
||||
}
|
||||
@@ -61,7 +62,8 @@ fn write(&mut self, buf: &[u8]) -> io::Result<usize> {
|
||||
for (dest, src) in lend_buffer.0.iter_mut().zip(chunk) {
|
||||
*dest = *src;
|
||||
}
|
||||
lend(connection, 1, &lend_buffer.0, 0, chunk.len()).unwrap();
|
||||
lend(connection, LogLend::StandardError.into(), &lend_buffer.0, 0, chunk.len())
|
||||
.unwrap();
|
||||
}
|
||||
Ok(buf.len())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user