Debug reads writes better, set up stdio for BSP
This commit is contained in:
parent
850792bbf1
commit
fb0df8530d
|
@ -89,7 +89,8 @@ macro_rules! interrupt_error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Push scratch registers
|
// Push scratch registers
|
||||||
asm!("push rax
|
asm!("xchg bx, bx
|
||||||
|
push rax
|
||||||
push rcx
|
push rcx
|
||||||
push rdx
|
push rdx
|
||||||
push rdi
|
push rdi
|
||||||
|
|
|
@ -133,6 +133,15 @@ pub extern fn kmain() {
|
||||||
let pid = syscall::getpid();
|
let pid = syscall::getpid();
|
||||||
println!("BSP: {:?}", pid);
|
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");
|
let elf = elf::Elf::from(include_bytes!("../init/main")).expect("could not load elf");
|
||||||
elf.run();
|
elf.run();
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ use super::{Error, Result};
|
||||||
|
|
||||||
/// Read syscall
|
/// Read syscall
|
||||||
pub fn read(fd: usize, buf: &mut [u8]) -> Result<usize> {
|
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() {
|
if let Some(context_lock) = context::contexts().current() {
|
||||||
let context = context_lock.read();
|
let context = context_lock.read();
|
||||||
if let Some(file) = context.files.get(fd) {
|
if let Some(file) = context.files.get(fd) {
|
||||||
|
@ -23,7 +23,7 @@ pub fn read(fd: usize, buf: &mut [u8]) -> Result<usize> {
|
||||||
|
|
||||||
/// Write syscall
|
/// Write syscall
|
||||||
pub fn write(fd: usize, buf: &[u8]) -> Result<usize> {
|
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() {
|
if let Some(context_lock) = context::contexts().current() {
|
||||||
let context = context_lock.read();
|
let context = context_lock.read();
|
||||||
if let Some(file) = context.files.get(fd) {
|
if let Some(file) = context.files.get(fd) {
|
||||||
|
|
Loading…
Reference in a new issue