Skip to content

Commit a78c4f3

Browse files
committed
Bump Rust version to nightly-2025-02-18(2024 Edition)
1 parent 1fedfe2 commit a78c4f3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+474
-409
lines changed

.github/workflows/doc-and-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on: [push]
44

55
env:
66
CARGO_TERM_COLOR: always
7-
rust_toolchain: nightly-2024-01-18
7+
rust_toolchain: nightly-2025-02-18
88

99
jobs:
1010
build-doc:

os/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name = "os"
33
version = "0.1.0"
44
authors = ["Yifan Wu <[email protected]>"]
5-
edition = "2021"
5+
edition = "2024"
66

77
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
88

os/src/drivers/block/virtio_blk.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
use super::BlockDevice;
2+
use crate::DEV_NON_BLOCKING_ACCESS;
23
use crate::drivers::bus::virtio::VirtioHal;
34
use crate::sync::{Condvar, UPIntrFreeCell};
45
use crate::task::schedule;
5-
use crate::DEV_NON_BLOCKING_ACCESS;
66
use alloc::collections::BTreeMap;
77
use virtio_drivers::{BlkResp, RespStatus, VirtIOBlk, VirtIOHeader};
88

os/src/drivers/bus/virtio.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::mm::{
2-
frame_alloc_more, frame_dealloc, kernel_token, FrameTracker, PageTable, PhysAddr, PhysPageNum,
3-
StepByOne, VirtAddr,
2+
FrameTracker, PageTable, PhysAddr, PhysPageNum, StepByOne, VirtAddr, frame_alloc_more,
3+
frame_dealloc, kernel_token,
44
};
55
use crate::sync::UPIntrFreeCell;
66
use alloc::vec::Vec;

os/src/fs/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ pub trait File: Send + Sync {
1111
fn write(&self, buf: UserBuffer) -> usize;
1212
}
1313

14-
pub use inode::{list_apps, open_file, OpenFlags};
14+
pub use inode::{OpenFlags, list_apps, open_file};
1515
pub use pipe::make_pipe;
1616
pub use stdio::{Stdin, Stdout};

os/src/lang_items.rs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,28 +11,30 @@ fn panic(info: &PanicInfo) -> ! {
1111
"[kernel] Panicked at {}:{} {}",
1212
location.file(),
1313
location.line(),
14-
info.message().unwrap()
14+
info.message()
1515
);
1616
} else {
17-
error!("[kernel] Panicked: {}", info.message().unwrap());
18-
}
19-
unsafe {
20-
backtrace();
17+
error!("[kernel] Panicked: {}", info.message());
2118
}
19+
backtrace();
2220
shutdown(true)
2321
}
2422

25-
unsafe fn backtrace() {
23+
fn backtrace() {
2624
let mut fp: usize;
2725
let stop = current_kstack_top();
28-
asm!("mv {}, s0", out(reg) fp);
26+
unsafe {
27+
asm!("mv {}, s0", out(reg) fp);
28+
}
2929
println!("---START BACKTRACE---");
3030
for i in 0..10 {
3131
if fp == stop {
3232
break;
3333
}
34-
println!("#{}:ra={:#x}", i, *((fp - 8) as *const usize));
35-
fp = *((fp - 16) as *const usize);
34+
unsafe {
35+
println!("#{}:ra={:#x}", i, *((fp - 8) as *const usize));
36+
fp = *((fp - 16) as *const usize);
37+
}
3638
}
3739
println!("---END BACKTRACE---");
3840
}

os/src/main.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#![no_std]
22
#![no_main]
3-
#![feature(panic_info_message)]
43
#![feature(alloc_error_handler)]
54

65
//use crate::drivers::{GPU_DEVICE, KEYBOARD_DEVICE, MOUSE_DEVICE, INPUT_CONDVAR};
@@ -37,9 +36,9 @@ use crate::drivers::chardev::UART;
3736
core::arch::global_asm!(include_str!("entry.asm"));
3837

3938
fn clear_bss() {
40-
extern "C" {
41-
fn sbss();
42-
fn ebss();
39+
unsafe extern "C" {
40+
safe fn sbss();
41+
safe fn ebss();
4342
}
4443
unsafe {
4544
core::slice::from_raw_parts_mut(sbss as usize as *mut u8, ebss as usize - sbss as usize)
@@ -55,7 +54,7 @@ lazy_static! {
5554
unsafe { UPIntrFreeCell::new(false) };
5655
}
5756

58-
#[no_mangle]
57+
#[unsafe(no_mangle)]
5958
pub fn rust_main() -> ! {
6059
clear_bss();
6160
logging::init();

os/src/mm/frame_allocator.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,8 @@ lazy_static! {
9999
}
100100

101101
pub fn init_frame_allocator() {
102-
extern "C" {
103-
fn ekernel();
102+
unsafe extern "C" {
103+
safe fn ekernel();
104104
}
105105
FRAME_ALLOCATOR.exclusive_access().init(
106106
PhysAddr::from(ekernel as usize).ceil(),

os/src/mm/heap_allocator.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use crate::config::KERNEL_HEAP_SIZE;
22
use buddy_system_allocator::LockedHeap;
3+
use core::ptr::addr_of_mut;
34

45
#[global_allocator]
56
static HEAP_ALLOCATOR: LockedHeap = LockedHeap::empty();
@@ -15,17 +16,17 @@ pub fn init_heap() {
1516
unsafe {
1617
HEAP_ALLOCATOR
1718
.lock()
18-
.init(HEAP_SPACE.as_ptr() as usize, KERNEL_HEAP_SIZE);
19+
.init(addr_of_mut!(HEAP_SPACE) as usize, KERNEL_HEAP_SIZE);
1920
}
2021
}
2122

2223
#[allow(unused)]
2324
pub fn heap_test() {
2425
use alloc::boxed::Box;
2526
use alloc::vec::Vec;
26-
extern "C" {
27-
fn sbss();
28-
fn ebss();
27+
unsafe extern "C" {
28+
safe fn sbss();
29+
safe fn ebss();
2930
}
3031
let bss_range = sbss as usize..ebss as usize;
3132
let a = Box::new(5);

os/src/mm/memory_set.rs

Lines changed: 33 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use super::{frame_alloc, FrameTracker};
1+
use super::{FrameTracker, frame_alloc};
22
use super::{PTEFlags, PageTable, PageTableEntry};
33
use super::{PhysAddr, PhysPageNum, VirtAddr, VirtPageNum};
44
use super::{StepByOne, VPNRange};
@@ -11,17 +11,17 @@ use core::arch::asm;
1111
use lazy_static::*;
1212
use riscv::register::satp;
1313

14-
extern "C" {
15-
fn stext();
16-
fn etext();
17-
fn srodata();
18-
fn erodata();
19-
fn sdata();
20-
fn edata();
21-
fn sbss_with_stack();
22-
fn ebss();
23-
fn ekernel();
24-
fn strampoline();
14+
unsafe extern "C" {
15+
safe fn stext();
16+
safe fn etext();
17+
safe fn srodata();
18+
safe fn erodata();
19+
safe fn sdata();
20+
safe fn edata();
21+
safe fn sbss_with_stack();
22+
safe fn ebss();
23+
safe fn ekernel();
24+
safe fn strampoline();
2525
}
2626

2727
lazy_static! {
@@ -361,20 +361,26 @@ pub fn remap_test() {
361361
let mid_text: VirtAddr = ((stext as usize + etext as usize) / 2).into();
362362
let mid_rodata: VirtAddr = ((srodata as usize + erodata as usize) / 2).into();
363363
let mid_data: VirtAddr = ((sdata as usize + edata as usize) / 2).into();
364-
assert!(!kernel_space
365-
.page_table
366-
.translate(mid_text.floor())
367-
.unwrap()
368-
.writable(),);
369-
assert!(!kernel_space
370-
.page_table
371-
.translate(mid_rodata.floor())
372-
.unwrap()
373-
.writable(),);
374-
assert!(!kernel_space
375-
.page_table
376-
.translate(mid_data.floor())
377-
.unwrap()
378-
.executable(),);
364+
assert!(
365+
!kernel_space
366+
.page_table
367+
.translate(mid_text.floor())
368+
.unwrap()
369+
.writable(),
370+
);
371+
assert!(
372+
!kernel_space
373+
.page_table
374+
.translate(mid_rodata.floor())
375+
.unwrap()
376+
.writable(),
377+
);
378+
assert!(
379+
!kernel_space
380+
.page_table
381+
.translate(mid_data.floor())
382+
.unwrap()
383+
.executable(),
384+
);
379385
println!("remap_test passed!");
380386
}

0 commit comments

Comments
 (0)