Debug reads writes better, set up stdio for BSP

This commit is contained in:
Jeremy Soller 2016-09-07 21:32:09 -06:00
parent 850792bbf1
commit fb0df8530d
3 changed files with 13 additions and 3 deletions

View file

@ -89,7 +89,8 @@ macro_rules! interrupt_error {
}
// Push scratch registers
asm!("push rax
asm!("xchg bx, bx
push rax
push rcx
push rdx
push rdi

View file

@ -133,6 +133,15 @@ pub extern fn kmain() {
let pid = syscall::getpid();
println!("BSP: {:?}", pid);
let stdin = syscall::open("debug:".as_bytes(), 0);
println!("STDIN: {:?}", stdin);
let stdout = syscall::open("debug:".as_bytes(), 0);
println!("STDOUT: {:?}", stdout);
let stderr = syscall::open("debug:".as_bytes(), 0);
println!("STDERR: {:?}", stderr);
let elf = elf::Elf::from(include_bytes!("../init/main")).expect("could not load elf");
elf.run();

View file

@ -7,7 +7,7 @@ use super::{Error, Result};
/// Read syscall
pub fn read(fd: usize, buf: &mut [u8]) -> Result<usize> {
println!("Read {}: {}", fd, buf.len());
println!("Read {}: {:X} {}", fd, buf.as_ptr() as usize, buf.len());
if let Some(context_lock) = context::contexts().current() {
let context = context_lock.read();
if let Some(file) = context.files.get(fd) {
@ -23,7 +23,7 @@ pub fn read(fd: usize, buf: &mut [u8]) -> Result<usize> {
/// Write syscall
pub fn write(fd: usize, buf: &[u8]) -> Result<usize> {
println!("Write {}: {}", fd, buf.len());
println!("Write {}: {:X} {}", fd, buf.as_ptr() as usize, buf.len());
if let Some(context_lock) = context::contexts().current() {
let context = context_lock.read();
if let Some(file) = context.files.get(fd) {