1
0
mirror of https://github.com/sgmarz/osblog.git synced 2024-11-23 18:06:20 +04:00

Ugh. Remove target

This commit is contained in:
Stephen Marz 2020-03-09 17:51:10 -04:00
parent b139313874
commit ee92f8e123
203 changed files with 96 additions and 116 deletions

Binary file not shown.

View File

@ -94,6 +94,36 @@ m_trap_vector:
mret
.global switch_to_user
switch_to_user:
# a0 - Frame address
# a1 - Program counter
# a2 - SATP Register
csrw mscratch, a0
mv t6, a0
# 1 << 7 is MPIE
# Since user mode is 00, we don't need to set anything
# in MPP (bits 12:11)
li t0, 1 << 7
csrw mstatus, t0
csrw mepc, a1
csrw satp, a2
# This fence forces the MMU to flush the TLB. However, since
# we're using the PID as the address space identifier, we might
# only need this when we create a process. Right now, this ensures
# correctness, however it isn't the most efficient.
sfence.vma
# A0 is the context frame, so we need to reload it back
# and mret so we can start running the program.
.set i, 1
.rept 31
load_gp %i
.set i, i+1
.endr
mret
.global make_syscall
make_syscall:

View File

@ -144,7 +144,7 @@ extern "C" fn kinit() -> usize {
let mtime = 0x0200_bff8 as *const u64;
// The frequency given by QEMU is 10_000_000 Hz, so this sets
// the next interrupt to fire one second from now.
mtimecmp.write_volatile(mtime.read_volatile() + 10_000_000);
mtimecmp.write_volatile(mtime.read_volatile() + 1_000_000);
}
// When we return, we put the return value into mepc and start there. This
// should be init's starting point.
@ -182,6 +182,7 @@ pub mod kmem;
pub mod page;
pub mod plic;
pub mod process;
pub mod sched;
pub mod syscall;
pub mod trap;
pub mod uart;

View File

@ -117,6 +117,7 @@ pub fn init() -> usize {
// Waiting - means that the process is waiting on I/O
// Dead - We should never get here, but we can flag a process as Dead and clean
// it out of the list later.
#[repr(u8)]
pub enum ProcessState {
Running,
Sleeping,
@ -138,9 +139,28 @@ pub struct Process {
root: *mut Table,
state: ProcessState,
data: ProcessData,
sleep_until: usize,
}
impl Process {
pub fn get_frame_address(&self) -> usize {
((&self.frame) as *const TrapFrame) as usize
}
pub fn get_program_counter(&self) -> usize {
self.program_counter
}
pub fn get_table_address(&self) -> usize {
self.root as usize
}
pub fn get_state(&self) -> &ProcessState {
&self.state
}
pub fn get_pid(&self) -> u16 {
self.pid
}
pub fn get_sleep_until(&self) -> usize {
self.sleep_until
}
pub fn new_default(func: fn()) -> Self {
let func_addr = func as usize;
// We will convert NEXT_PID below into an atomic increment when
@ -153,7 +173,9 @@ impl Process {
pid: unsafe { NEXT_PID },
root: zalloc(1) as *mut Table,
state: ProcessState::Waiting,
data: ProcessData::zero(), };
data: ProcessData::zero(),
sleep_until: 0
};
unsafe {
NEXT_PID += 1;
}

View File

@ -3,13 +3,47 @@
// Stephen Marz
// 27 Dec 2019
use crate::process::{PROCESS_LIST, Process};
use crate::cpu::mscratch_write;
use crate::{process::{ProcessState, PROCESS_LIST}};
extern "C" {
fn switch_to_user(to: usize, mepc: usize, satp: usize) -> !;
}
pub fn schedule() {
}
pub fn switch_to(from: &mut Process, to: &mut Process) {
unsafe {
if let Some(mut pl) = PROCESS_LIST.take() {
pl.rotate_left(1);
let mut frame_addr: usize = 0;
let mut mepc: usize = 0;
let mut satp: usize = 0;
let mut pid: usize = 0;
if let Some(prc) = pl.front() {
match prc.get_state() {
ProcessState::Running => {
frame_addr =
prc.get_frame_address();
mepc = prc.get_program_counter();
satp = prc.get_table_address() >> 12;
pid = prc.get_pid() as usize;
},
ProcessState::Sleeping => {
},
_ => {},
}
}
PROCESS_LIST.replace(pl);
if frame_addr != 0 {
// MODE 8 is 39-bit virtual address MMU
// I'm using the PID as the address space identifier to hopefully
// help with (not?) flushing the TLB whenever we switch processes.
if satp != 0 {
switch_to_user(frame_addr, mepc, (8 << 60) | (pid << 44) | satp);
}
else {
switch_to_user(frame_addr, mepc, 0);
}
}
}
}
}

View File

@ -1 +0,0 @@
{"rustc_fingerprint":12397020595697137230,"outputs":{"4476964694761187371":["___\nlib___.rlib\nlib___.so\nlib___.so\nlib___.a\nlib___.so\n/home/smarz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu\ndebug_assertions\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"gnu\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"mmx\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_has_atomic_load_store=\"16\"\ntarget_has_atomic_load_store=\"32\"\ntarget_has_atomic_load_store=\"64\"\ntarget_has_atomic_load_store=\"8\"\ntarget_has_atomic_load_store=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_thread_local\ntarget_vendor=\"unknown\"\nunix\n",""],"7980669631894232998":["___\nlib___.rlib\nlib___.a\n/home/smarz/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu\ndebug_assertions\nproc_macro\ntarget_arch=\"riscv64\"\ntarget_endian=\"little\"\ntarget_env=\"\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_has_atomic_load_store=\"16\"\ntarget_has_atomic_load_store=\"32\"\ntarget_has_atomic_load_store=\"64\"\ntarget_has_atomic_load_store=\"8\"\ntarget_has_atomic_load_store=\"ptr\"\ntarget_os=\"none\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\n","warning: dropping unsupported crate type `dylib` for target `riscv64gc-unknown-none-elf`\n\nwarning: dropping unsupported crate type `cdylib` for target `riscv64gc-unknown-none-elf`\n\nwarning: dropping unsupported crate type `proc-macro` for target `riscv64gc-unknown-none-elf`\n\n"],"1164083562126845933":["rustc 1.41.0-nightly (25d8a9494 2019-11-29)\nbinary: rustc\ncommit-hash: 25d8a9494ca6d77361e47c1505ecf640b168819e\ncommit-date: 2019-11-29\nhost: x86_64-unknown-linux-gnu\nrelease: 1.41.0-nightly\nLLVM version: 9.0\n",""]},"successes":{}}

View File

@ -1 +0,0 @@
This file has an mtime of when this was started.

View File

@ -1 +0,0 @@
{"rustc":12886109189411355181,"features":"[]","target":18216300742983494906,"profile":14996655781355331481,"path":10872709659218687626,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"riscv64gc-unknown-none-elf/debug/.fingerprint/sos-045a100c2f1b204e/dep-lib-sos-045a100c2f1b204e"}}],"rustflags":[],"metadata":10316790824418844821}

View File

@ -1,3 +0,0 @@
{"message":"unused variable: `status`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"src/trap.rs","byte_start":569,"byte_end":575,"line_start":18,"line_end":18,"column_start":22,"column_end":28,"is_primary":true,"text":[{"text":" status: usize,","highlight_start":22,"highlight_end":28}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_variables)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"consider prefixing with an underscore","code":null,"level":"help","spans":[{"file_name":"src/trap.rs","byte_start":569,"byte_end":575,"line_start":18,"line_end":18,"column_start":22,"column_end":28,"is_primary":true,"text":[{"text":" status: usize,","highlight_start":22,"highlight_end":28}],"label":null,"suggested_replacement":"_status","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused variable: `status`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/trap.rs:18:22\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m18\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m status: usize,\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33mhelp: consider prefixing with an underscore: `_status`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_variables)]` on by default\u001b[0m\n\n"}
{"message":"unused variable: `frame`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"src/trap.rs","byte_start":605,"byte_end":610,"line_start":19,"line_end":19,"column_start":22,"column_end":27,"is_primary":true,"text":[{"text":" frame: *mut TrapFrame)","highlight_start":22,"highlight_end":27}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"consider prefixing with an underscore","code":null,"level":"help","spans":[{"file_name":"src/trap.rs","byte_start":605,"byte_end":610,"line_start":19,"line_end":19,"column_start":22,"column_end":27,"is_primary":true,"text":[{"text":" frame: *mut TrapFrame)","highlight_start":22,"highlight_end":27}],"label":null,"suggested_replacement":"_frame","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused variable: `frame`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/trap.rs:19:22\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m19\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m frame: *mut TrapFrame)\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33mhelp: consider prefixing with an underscore: `_frame`\u001b[0m\n\n"}
{"message":"field is never read: `cwd_path`","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src/process.rs","byte_start":7792,"byte_end":7811,"line_start":229,"line_end":229,"column_start":2,"column_end":21,"is_primary":true,"text":[{"text":"\tcwd_path: [u8; 128],","highlight_start":2,"highlight_end":21}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(dead_code)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: field is never read: `cwd_path`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/process.rs:229:2\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m229\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m cwd_path: [u8; 128],\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(dead_code)]` on by default\u001b[0m\n\n"}

View File

@ -1 +0,0 @@
This file has an mtime of when this was started.

View File

@ -1 +0,0 @@
{"rustc":15643956189553118024,"features":"[]","target":18216300742983494906,"profile":14996655781355331481,"path":10872709659218687626,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"riscv64gc-unknown-none-elf/debug/.fingerprint/sos-acfc70a7c1fcbfd7/dep-lib-sos-acfc70a7c1fcbfd7"}}],"rustflags":[],"metadata":10316790824418844821}

View File

@ -1,2 +0,0 @@
{"message":"unused variable: `status`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"src/trap.rs","byte_start":601,"byte_end":607,"line_start":19,"line_end":19,"column_start":22,"column_end":28,"is_primary":true,"text":[{"text":" status: usize,","highlight_start":22,"highlight_end":28}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_variables)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"consider prefixing with an underscore","code":null,"level":"help","spans":[{"file_name":"src/trap.rs","byte_start":601,"byte_end":607,"line_start":19,"line_end":19,"column_start":22,"column_end":28,"is_primary":true,"text":[{"text":" status: usize,","highlight_start":22,"highlight_end":28}],"label":null,"suggested_replacement":"_status","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused variable: `status`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/trap.rs:19:22\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m19\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m status: usize,\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33mhelp: consider prefixing with an underscore: `_status`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_variables)]` on by default\u001b[0m\n\n"}
{"message":"field is never read: `cwd_path`","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src/process.rs","byte_start":7796,"byte_end":7815,"line_start":229,"line_end":229,"column_start":2,"column_end":21,"is_primary":true,"text":[{"text":"\tcwd_path: [u8; 128],","highlight_start":2,"highlight_end":21}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(dead_code)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: field is never read: `cwd_path`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/process.rs:229:2\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m229\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m cwd_path: [u8; 128],\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(dead_code)]` on by default\u001b[0m\n\n"}

View File

@ -1 +0,0 @@
This file has an mtime of when this was started.

View File

@ -1 +0,0 @@
{"rustc":16843294504914232601,"features":"[]","target":18216300742983494906,"profile":14996655781355331481,"path":10872709659218687626,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"riscv64gc-unknown-none-elf/debug/.fingerprint/sos-bf5ecfa00c701166/dep-lib-sos-bf5ecfa00c701166"}}],"rustflags":[],"metadata":10316790824418844821}

View File

@ -1,5 +0,0 @@
{"message":"unused variable: `status`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"src/trap.rs","byte_start":569,"byte_end":575,"line_start":18,"line_end":18,"column_start":22,"column_end":28,"is_primary":true,"text":[{"text":" status: usize,","highlight_start":22,"highlight_end":28}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(unused_variables)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"consider prefixing with an underscore","code":null,"level":"help","spans":[{"file_name":"src/trap.rs","byte_start":569,"byte_end":575,"line_start":18,"line_end":18,"column_start":22,"column_end":28,"is_primary":true,"text":[{"text":" status: usize,","highlight_start":22,"highlight_end":28}],"label":null,"suggested_replacement":"_status","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused variable: `status`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/trap.rs:18:22\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m18\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m status: usize,\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33mhelp: consider prefixing with an underscore: `_status`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(unused_variables)]` on by default\u001b[0m\n\n"}
{"message":"unused variable: `frame`","code":{"code":"unused_variables","explanation":null},"level":"warning","spans":[{"file_name":"src/trap.rs","byte_start":605,"byte_end":610,"line_start":19,"line_end":19,"column_start":22,"column_end":27,"is_primary":true,"text":[{"text":" frame: &mut TrapFrame)","highlight_start":22,"highlight_end":27}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"consider prefixing with an underscore","code":null,"level":"help","spans":[{"file_name":"src/trap.rs","byte_start":605,"byte_end":610,"line_start":19,"line_end":19,"column_start":22,"column_end":27,"is_primary":true,"text":[{"text":" frame: &mut TrapFrame)","highlight_start":22,"highlight_end":27}],"label":null,"suggested_replacement":"_frame","suggestion_applicability":"MachineApplicable","expansion":null}],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: unused variable: `frame`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/trap.rs:19:22\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m19\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m frame: &mut TrapFrame)\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33mhelp: consider prefixing with an underscore: `_frame`\u001b[0m\n\n"}
{"message":"constant item is never used: `PROCESS_STARTING_ADDR`","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src/process.rs","byte_start":709,"byte_end":758,"line_start":24,"line_end":24,"column_start":1,"column_end":50,"is_primary":true,"text":[{"text":"const PROCESS_STARTING_ADDR: usize = 0x2000_0000;","highlight_start":1,"highlight_end":50}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"`#[warn(dead_code)]` on by default","code":null,"level":"note","spans":[],"children":[],"rendered":null}],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: constant item is never used: `PROCESS_STARTING_ADDR`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/process.rs:24:1\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m24\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0mconst PROCESS_STARTING_ADDR: usize = 0x2000_0000;\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: `#[warn(dead_code)]` on by default\u001b[0m\n\n"}
{"message":"static item is never used: `CURRENT`","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src/process.rs","byte_start":1237,"byte_end":1277,"line_start":34,"line_end":34,"column_start":1,"column_end":41,"is_primary":true,"text":[{"text":"static mut CURRENT: [usize; 2] = [0; 2];","highlight_start":1,"highlight_end":41}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: static item is never used: `CURRENT`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/process.rs:34:1\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m34\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0mstatic mut CURRENT: [usize; 2] = [0; 2];\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u001b[0m\n\n"}
{"message":"field is never used: `cwd_path`","code":{"code":"dead_code","explanation":null},"level":"warning","spans":[{"file_name":"src/process.rs","byte_start":5877,"byte_end":5896,"line_start":176,"line_end":176,"column_start":2,"column_end":21,"is_primary":true,"text":[{"text":"\tcwd_path: [u8; 128],","highlight_start":2,"highlight_end":21}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: field is never used: `cwd_path`\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/process.rs:176:2\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m176\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m cwd_path: [u8; 128],\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m^^^^^^^^^^^^^^^^^^^\u001b[0m\n\n"}

View File

@ -1,12 +0,0 @@
/home/smarz/Develop/blog/risc_v/ch6/target/riscv64gc-unknown-none-elf/debug/deps/libsos-045a100c2f1b204e.a: src/lib.rs src/cpu.rs src/kmem.rs src/page.rs src/plic.rs src/process.rs src/trap.rs src/uart.rs
/home/smarz/Develop/blog/risc_v/ch6/target/riscv64gc-unknown-none-elf/debug/deps/sos-045a100c2f1b204e.d: src/lib.rs src/cpu.rs src/kmem.rs src/page.rs src/plic.rs src/process.rs src/trap.rs src/uart.rs
src/lib.rs:
src/cpu.rs:
src/kmem.rs:
src/page.rs:
src/plic.rs:
src/process.rs:
src/trap.rs:
src/uart.rs:

View File

@ -1,13 +0,0 @@
/home/smarz/Develop/blog/risc_v/ch7/target/riscv64gc-unknown-none-elf/debug/deps/libsos-acfc70a7c1fcbfd7.a: src/lib.rs src/cpu.rs src/kmem.rs src/page.rs src/plic.rs src/process.rs src/syscall.rs src/trap.rs src/uart.rs
/home/smarz/Develop/blog/risc_v/ch7/target/riscv64gc-unknown-none-elf/debug/deps/sos-acfc70a7c1fcbfd7.d: src/lib.rs src/cpu.rs src/kmem.rs src/page.rs src/plic.rs src/process.rs src/syscall.rs src/trap.rs src/uart.rs
src/lib.rs:
src/cpu.rs:
src/kmem.rs:
src/page.rs:
src/plic.rs:
src/process.rs:
src/syscall.rs:
src/trap.rs:
src/uart.rs:

View File

@ -1,12 +0,0 @@
/home/smarz/Develop/blog/risc_v/ch6/target/riscv64gc-unknown-none-elf/debug/deps/libsos-bf5ecfa00c701166.a: src/lib.rs src/cpu.rs src/kmem.rs src/page.rs src/plic.rs src/process.rs src/trap.rs src/uart.rs
/home/smarz/Develop/blog/risc_v/ch6/target/riscv64gc-unknown-none-elf/debug/deps/sos-bf5ecfa00c701166.d: src/lib.rs src/cpu.rs src/kmem.rs src/page.rs src/plic.rs src/process.rs src/trap.rs src/uart.rs
src/lib.rs:
src/cpu.rs:
src/kmem.rs:
src/page.rs:
src/plic.rs:
src/process.rs:
src/trap.rs:
src/uart.rs:

Some files were not shown because too many files have changed in this diff Show More