Skip to content

Commit e9df799

Browse files
author
刘丰源
committed
run cargo fmt
1 parent 8a7f4ae commit e9df799

31 files changed

+383
-461
lines changed

os/build.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,17 @@ fn gen_link_user_asm() -> Result<()> {
1515
let user_img = std::env::var("USER_IMG").unwrap();
1616

1717
writeln!(f, "# generated by build.rs - do not edit")?;
18-
writeln!(f, r#"
18+
writeln!(
19+
f,
20+
r#"
1921
.section .data
2022
.global _user_img_start
2123
.global _user_img_end
2224
_user_img_start:
2325
.incbin "{}"
2426
_user_img_end:
25-
"#, user_img)?;
27+
"#,
28+
user_img
29+
)?;
2630
Ok(())
2731
}

os/src/context.rs

Lines changed: 21 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,33 @@
1-
use riscv::register::{
2-
sstatus::Sstatus,
3-
scause::Scause,
4-
};
5-
use riscv::register::sstatus;
61
use core::mem::zeroed;
2+
use riscv::register::sstatus;
3+
use riscv::register::{scause::Scause, sstatus::Sstatus};
74

85
#[repr(C)]
96
pub struct TrapFrame {
10-
pub x: [usize; 32], // General registers
7+
pub x: [usize; 32], // General registers
118
pub sstatus: Sstatus, // Supervisor Status Register
12-
pub sepc: usize, // Supervisor exception program counter
13-
pub stval: usize, // Supervisor trap value
14-
pub scause: Scause, // Scause register: record the cause of exception/interrupt/trap
9+
pub sepc: usize, // Supervisor exception program counter
10+
pub stval: usize, // Supervisor trap value
11+
pub scause: Scause, // Scause register: record the cause of exception/interrupt/trap
1512
}
1613

1714
#[repr(C)]
1815
pub struct Context {
1916
pub content_addr: usize,
2017
}
2118

22-
2319
impl Context {
2420
#[naked]
2521
#[inline(never)]
2622
pub unsafe extern "C" fn switch(&mut self, target: &mut Context) {
2723
asm!(include_str!("process/switch.asm") :::: "volatile");
2824
}
2925

30-
pub fn null() -> Context {
31-
Context { content_addr: 0, }
26+
pub fn null() -> Context {
27+
Context { content_addr: 0 }
3228
}
3329

34-
pub unsafe fn new_kernel_thread(
35-
entry: usize,
36-
kstack_top: usize,
37-
satp: usize
38-
) -> Context {
39-
30+
pub unsafe fn new_kernel_thread(entry: usize, kstack_top: usize, satp: usize) -> Context {
4031
ContextContent::new_kernel_thread(entry, kstack_top, satp).push_at(kstack_top)
4132
}
4233

@@ -46,12 +37,12 @@ impl Context {
4637
contextContent.tf.x[11] = args[1];
4738
contextContent.tf.x[12] = args[2];
4839
}
49-
50-
pub unsafe fn new_user_thread(
40+
41+
pub unsafe fn new_user_thread(
5142
entry: usize,
5243
ustack_top: usize,
5344
kstack_top: usize,
54-
satp: usize
45+
satp: usize,
5546
) -> Self {
5647
ContextContent::new_user_thread(entry, ustack_top, satp).push_at(kstack_top)
5748
}
@@ -66,16 +57,11 @@ pub struct ContextContent {
6657
}
6758

6859
extern "C" {
69-
fn __trapret();
60+
fn __trapret();
7061
}
7162

7263
impl ContextContent {
73-
fn new_kernel_thread(
74-
entry: usize,
75-
kstack_top: usize,
76-
satp: usize,
77-
) -> ContextContent {
78-
64+
fn new_kernel_thread(entry: usize, kstack_top: usize, satp: usize) -> ContextContent {
7965
let mut content = ContextContent {
8066
ra: __trapret as usize,
8167
satp,
@@ -89,16 +75,12 @@ impl ContextContent {
8975
tf.sstatus.set_spie(true);
9076
tf.sstatus.set_sie(false);
9177
tf
92-
}
78+
},
9379
};
9480
content
9581
}
9682

97-
fn new_user_thread(
98-
entry: usize,
99-
ustack_top: usize,
100-
satp: usize
101-
) -> Self {
83+
fn new_user_thread(entry: usize, ustack_top: usize, satp: usize) -> Self {
10284
ContextContent {
10385
ra: __trapret as usize,
10486
satp,
@@ -112,15 +94,15 @@ impl ContextContent {
11294
tf.sstatus.set_sie(false);
11395
tf.sstatus.set_spp(sstatus::SPP::User);
11496
tf
115-
}
97+
},
11698
}
11799
}
118100

119-
unsafe fn push_at(self, stack_top: usize) -> Context {
101+
unsafe fn push_at(self, stack_top: usize) -> Context {
120102
let ptr = (stack_top as *mut ContextContent).sub(1);
121103
*ptr = self;
122-
Context { content_addr: ptr as usize }
104+
Context {
105+
content_addr: ptr as usize,
106+
}
123107
}
124108
}
125-
126-

os/src/fs/device.rs

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,18 @@
1-
use spin::RwLock;
21
use rcore_fs::dev::*;
2+
use spin::RwLock;
33

44
pub struct MemBuf(RwLock<&'static mut [u8]>);
55

66
impl MemBuf {
77
pub unsafe fn new(begin: usize, end: usize) -> Self {
88
use core::slice;
9-
MemBuf(
10-
RwLock::new(
11-
slice::from_raw_parts_mut(
12-
begin as *mut u8,
13-
end - begin
14-
)
15-
)
16-
)
9+
MemBuf(RwLock::new(slice::from_raw_parts_mut(
10+
begin as *mut u8,
11+
end - begin,
12+
)))
1713
}
1814
}
1915

20-
2116
impl Device for MemBuf {
2217
fn read_at(&self, offset: usize, buf: &mut [u8]) -> Result<usize> {
2318
let slice = self.0.read();

os/src/fs/mod.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
mod device;
22
pub mod stdio;
33

4+
use alloc::{sync::Arc, vec::Vec};
45
use lazy_static::*;
56
use rcore_fs::vfs::*;
67
use rcore_fs_sfs::SimpleFileSystem;
7-
use alloc::{ sync::Arc, vec::Vec };
88

99
lazy_static! {
1010
pub static ref ROOT_INODE: Arc<dyn INode> = {
@@ -15,11 +15,10 @@ lazy_static! {
1515
};
1616
let start = _user_img_start as usize;
1717
let end = _user_img_end as usize;
18-
Arc::new(unsafe { device::MemBuf::new(start, end) })
18+
Arc::new(unsafe { device::MemBuf::new(start, end) })
1919
};
2020
let sfs = SimpleFileSystem::open(device).expect("failed to open SFS");
2121
sfs.root_inode()
22-
2322
};
2423
}
2524

os/src/fs/stdio.rs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
use alloc::{ collections::VecDeque, sync::Arc };
2-
use spin::Mutex;
31
use crate::process;
42
use crate::sync::condvar::*;
3+
use alloc::{collections::VecDeque, sync::Arc};
54
use lazy_static::*;
5+
use spin::Mutex;
66

77
pub struct Stdin {
88
buf: Mutex<VecDeque<char>>,
@@ -18,23 +18,19 @@ impl Stdin {
1818
}
1919

2020
pub fn push(&self, ch: char) {
21-
self.buf
22-
.lock()
23-
.push_back(ch);
21+
self.buf.lock().push_back(ch);
2422
self.pushed.notify();
2523
}
2624

27-
2825
pub fn pop(&self) -> char {
2926
loop {
3027
let ret = self.buf.lock().pop_front();
3128
match ret {
3229
Some(ch) => {
3330
return ch;
34-
},
31+
}
3532
None => {
3633
self.pushed.wait();
37-
3834
}
3935
}
4036
}

os/src/init.rs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@ global_asm!(include_str!("boot/entry64.asm"));
22
global_asm!(include_str!("link_user.S"));
33

44
use crate::consts::*;
5-
use crate::memory::{
6-
alloc_frame,
7-
dealloc_frame
8-
};
5+
use crate::memory::{alloc_frame, dealloc_frame};
96

107
#[no_mangle]
118
pub extern "C" fn rust_main() -> ! {
@@ -14,13 +11,12 @@ pub extern "C" fn rust_main() -> ! {
1411
}
1512
crate::memory::init(
1613
((end as usize - KERNEL_BEGIN_VADDR + KERNEL_BEGIN_PADDR) >> 12) + 1,
17-
PHYSICAL_MEMORY_END >> 12
14+
PHYSICAL_MEMORY_END >> 12,
1815
);
19-
crate::interrupt::init();
20-
crate::fs::init();
16+
crate::interrupt::init();
17+
crate::fs::init();
2118
crate::process::init();
2219
crate::timer::init();
2320
crate::process::run();
2421
loop {}
2522
}
26-

os/src/interrupt.rs

Lines changed: 27 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,32 @@
1-
use riscv::register::{
2-
scause::{
3-
self,
4-
Trap,
5-
Exception,
6-
Interrupt
7-
},
8-
sepc,
9-
stvec,
10-
sscratch,
11-
sstatus
12-
};
13-
use crate::timer::{
14-
TICKS,
15-
clock_set_next_event
16-
};
171
use crate::context::TrapFrame;
18-
use crate::process::tick;
192
use crate::memory::access_pa_via_va;
3+
use crate::process::tick;
4+
use crate::timer::{clock_set_next_event, TICKS};
205
use riscv::register::sie;
6+
use riscv::register::{
7+
scause::{self, Exception, Interrupt, Trap},
8+
sepc, sscratch, sstatus, stvec,
9+
};
2110

2211
global_asm!(include_str!("trap/trap.asm"));
2312

2413
pub fn init() {
2514
unsafe {
2615
extern "C" {
2716
fn __alltraps();
28-
}
17+
}
2918
sscratch::write(0);
3019
stvec::write(__alltraps as usize, stvec::TrapMode::Direct);
3120

32-
sstatus::set_sie();
21+
sstatus::set_sie();
3322

34-
// enable external interrupt
35-
sie::set_sext();
23+
// enable external interrupt
24+
sie::set_sext();
3625

37-
// closed by OpenSBI, so we open them manually
38-
// see https://github.com/rcore-os/rCore/blob/54fddfbe1d402ac1fafd9d58a0bd4f6a8dd99ece/kernel/src/arch/riscv32/board/virt/mod.rs#L4
39-
init_external_interrupt();
40-
enable_serial_interrupt();
26+
// closed by OpenSBI, so we open them manually
27+
// see https://github.com/rcore-os/rCore/blob/54fddfbe1d402ac1fafd9d58a0bd4f6a8dd99ece/kernel/src/arch/riscv32/board/virt/mod.rs#L4
28+
init_external_interrupt();
29+
enable_serial_interrupt();
4130
}
4231
println!("++++ setup interrupt! ++++");
4332
}
@@ -62,9 +51,9 @@ pub fn rust_trap(tf: &mut TrapFrame) {
6251
Trap::Exception(Exception::InstructionPageFault) => page_fault(tf),
6352
Trap::Exception(Exception::LoadPageFault) => page_fault(tf),
6453
Trap::Exception(Exception::StorePageFault) => page_fault(tf),
65-
Trap::Exception(Exception::UserEnvCall) => syscall(tf),
66-
Trap::Interrupt(Interrupt::SupervisorExternal) => external(),
67-
_ => panic!("undefined trap!")
54+
Trap::Exception(Exception::UserEnvCall) => syscall(tf),
55+
Trap::Interrupt(Interrupt::SupervisorExternal) => external(),
56+
_ => panic!("undefined trap!"),
6857
}
6958
}
7059

@@ -78,17 +67,18 @@ fn super_timer() {
7867
tick();
7968
}
8069
fn page_fault(tf: &mut TrapFrame) {
81-
println!("{:?} va = {:#x} instruction = {:#x}", tf.scause.cause(), tf.stval, tf.sepc);
70+
println!(
71+
"{:?} va = {:#x} instruction = {:#x}",
72+
tf.scause.cause(),
73+
tf.stval,
74+
tf.sepc
75+
);
8276
panic!("page fault!");
8377
}
8478

8579
fn syscall(tf: &mut TrapFrame) {
8680
tf.sepc += 4;
87-
let ret = crate::syscall::syscall(
88-
tf.x[17],
89-
[tf.x[10], tf.x[11], tf.x[12]],
90-
tf
91-
);
81+
let ret = crate::syscall::syscall(tf.x[17], [tf.x[10], tf.x[11], tf.x[12]], tf);
9282
tf.x[10] = ret as usize;
9383
}
9484

@@ -101,13 +91,12 @@ fn try_serial() -> bool {
10191
Some(ch) => {
10292
if (ch == '\r') {
10393
crate::fs::stdio::STDIN.push('\n');
104-
}
105-
else {
94+
} else {
10695
crate::fs::stdio::STDIN.push(ch);
10796
}
10897
true
109-
},
110-
None => false
98+
}
99+
None => false,
111100
}
112101
}
113102

0 commit comments

Comments
 (0)