1
0
mirror of https://github.com/sgmarz/osblog.git synced 2024-11-27 11:53:32 +04:00

Remove testing code, change comments

This commit is contained in:
Stephen Marz 2020-03-16 15:05:04 -04:00
parent 40977c2e45
commit d6bf3d2685
3 changed files with 9 additions and 53 deletions

View File

@ -146,49 +146,8 @@ extern "C" fn kinit() {
}
// Set up virtio. This requires a working heap and page-grained allocator.
virtio::probe();
// This just tests the block device. We know that it connects backwards (8, 7, ..., 1).
let buffer = kmem::kmalloc(1024);
// Offset 1024 is the first block, which is the superblock. In the minix 3 file system, the first
// block is the "boot block", which in our case will be 0.
block::read(8, buffer, 512, 1024);
let mut i = 0;
loop {
if i > 100_000_000 {
break;
}
i += 1;
}
println!("Test hdd.dsk:");
unsafe {
print!(" ");
for i in 0..16 {
print!("{:02x} ", buffer.add(i).read());
}
println!();
print!(" ");
for i in 0..16 {
print!("{:02x} ", buffer.add(16+i).read());
}
println!();
print!(" ");
for i in 0..16 {
print!("{:02x} ", buffer.add(32+i).read());
}
println!();
print!(" ");
for i in 0..16 {
print!("{:02x} ", buffer.add(48+i).read());
}
println!();
buffer.add(0).write(0xaa);
buffer.add(1).write(0xbb);
buffer.add(2).write(0x7a);
}
block::write(8, buffer, 512, 0);
// Free the testing buffer.
kmem::kfree(buffer);
// We schedule the next context switch using a multiplier of 1
// Block testing code removed.
trap::schedule_next_context_switch(1);
rust_switch_to_user(sched::schedule());
// switch_to_user will not return, so we should never get here

View File

@ -151,9 +151,8 @@ pub fn handle_interrupt() {
}
},
// Non-UART interrupts go here and do nothing.
_ => {
println!("Non-UART external interrupt: {}", interrupt);
println!("Unknown external interrupt: {}", interrupt);
}
}
// We've claimed it, so now say that we've handled it. This resets the interrupt pending

View File

@ -3,11 +3,11 @@
// Stephen Marz
// 10 October 2019
use crate::cpu::{CONTEXT_SWITCH_TIME, TrapFrame};
use crate::plic;
use crate::syscall::do_syscall;
use crate::sched::schedule;
use crate::rust_switch_to_user;
use crate::{cpu::{TrapFrame, CONTEXT_SWITCH_TIME},
plic,
rust_switch_to_user,
sched::schedule,
syscall::do_syscall};
#[no_mangle]
/// The m_trap stands for "machine trap". Right now, we are handling
@ -65,7 +65,7 @@ extern "C" fn m_trap(epc: usize,
},
_ => {
panic!("Unhandled async trap CPU#{} -> {}\n", hart, cause_num);
}
},
}
}
else {
@ -118,7 +118,7 @@ extern "C" fn m_trap(epc: usize,
},
_ => {
panic!("Unhandled sync trap CPU#{} -> {}\n", hart, cause_num);
}
},
}
};
// Finally, return the updated program counter
@ -129,8 +129,6 @@ pub const MMIO_MTIMECMP: *mut u64 = 0x0200_4000usize as *mut u64;
pub const MMIO_MTIME: *const u64 = 0x0200_BFF8 as *const u64;
pub fn schedule_next_context_switch(qm: u16) {
// This is much too slow for normal operations, but it gives us
// a visual of what's happening behind the scenes.
unsafe {
MMIO_MTIMECMP.write_volatile(MMIO_MTIME.read_volatile().wrapping_add(CONTEXT_SWITCH_TIME * qm as u64));
}