Debug reads writes better, set up stdio for BSP
This commit is contained in:
		
							parent
							
								
									850792bbf1
								
							
						
					
					
						commit
						fb0df8530d
					
				
					 3 changed files with 13 additions and 3 deletions
				
			
		|  | @ -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 | ||||
|  |  | |||
|  | @ -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(); | ||||
| 
 | ||||
|  |  | |||
|  | @ -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) { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jeremy Soller
						Jeremy Soller