almost got out-of-memory test working
Signed-off-by: Sean Cross <sean@xobs.io>
This commit is contained in:
@@ -26,6 +26,38 @@ pub enum SyscallResultNumber {
|
||||
Scalar5 = 20,
|
||||
}
|
||||
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
pub enum SyscallErrorNumber {
|
||||
NoError = 0,
|
||||
BadAlignment = 1,
|
||||
BadAddress = 2,
|
||||
OutOfMemory = 3,
|
||||
MemoryInUse = 4,
|
||||
InterruptNotFound = 5,
|
||||
InterruptInUse = 6,
|
||||
InvalidString = 7,
|
||||
ServerExists = 8,
|
||||
ServerNotFound = 9,
|
||||
ProcessNotFound = 10,
|
||||
ProcessNotChild = 11,
|
||||
ProcessTerminated = 12,
|
||||
Timeout = 13,
|
||||
InternalError = 14,
|
||||
ServerQueueFull = 15,
|
||||
ThreadNotAvailable = 16,
|
||||
UnhandledSyscall = 17,
|
||||
InvalidSyscall = 18,
|
||||
ShareViolation = 19,
|
||||
InvalidThread = 20,
|
||||
InvalidPID = 21,
|
||||
UnknownError = 22,
|
||||
AccessDenied = 23,
|
||||
UseBeforeInit = 24,
|
||||
DoubleFree = 25,
|
||||
DebugInProgress = 26,
|
||||
InvalidLimit = 27,
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub enum Syscall {
|
||||
Unknown([i64; 8]),
|
||||
|
@@ -2,16 +2,20 @@ use std::sync::mpsc::Receiver;
|
||||
pub mod log;
|
||||
pub mod ticktimer;
|
||||
|
||||
pub type ResponseData = ([i64; 8], Option<(Vec<u8>, u64)>);
|
||||
|
||||
#[allow(dead_code)]
|
||||
pub enum ScalarResult {
|
||||
Scalar1(u32),
|
||||
Scalar2([u32; 2]),
|
||||
Scalar5([u32; 5]),
|
||||
WaitForResponse(Receiver<([i64; 8], Option<(Vec<u8>, u64)>)>),
|
||||
WaitForResponse(Receiver<ResponseData>),
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
pub enum LendResult {
|
||||
MemoryReturned([u32; 2]),
|
||||
WaitForResponse(Receiver<([i64; 8], Option<(Vec<u8>, u64)>)>),
|
||||
WaitForResponse(Receiver<ResponseData>),
|
||||
}
|
||||
|
||||
pub trait Service {
|
||||
|
@@ -39,10 +39,12 @@ impl Service for Log {
|
||||
let print_buffer = &buf[0..extra[1] as usize];
|
||||
// println!("Log stdout:");
|
||||
std::io::stdout().write_all(print_buffer).unwrap();
|
||||
std::io::stdout().flush().unwrap();
|
||||
} else if opcode == LogLendOpcode::StandardError as u32 {
|
||||
let print_buffer = &buf[0..extra[1] as usize];
|
||||
// println!("Log stderr:");
|
||||
std::io::stderr().write_all(print_buffer).unwrap();
|
||||
std::io::stderr().flush().unwrap();
|
||||
} else {
|
||||
panic!("Log lend {}: {} {:x?}", sender, opcode, buf);
|
||||
}
|
||||
|
Reference in New Issue
Block a user