Skip to content

Commit f7e7151

Browse files
committed
Static dummy tasks
1 parent 1e44ea2 commit f7e7151

File tree

3 files changed

+29
-10
lines changed

3 files changed

+29
-10
lines changed

kernel/src/multitasking/task.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ const MAX_TASKS: i8 = 127;
44

55
//each task has a 4KiB stack containg the cpu state in the bottom part of it
66
pub struct Task {
7-
stack: [u8; 4096],
8-
cpu_state: *mut CPUState,
9-
running: bool,
7+
pub stack: [u8; 4096],
8+
pub cpu_state: *mut CPUState,
9+
pub running: bool,
1010
}
1111

1212
impl Task {

kernel/src/shell/shell.rs

+25-6
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,30 @@
33
use crate::filesystem::fat::FAT;
44
use crate::syscalls::print::PRINTER;
55
use crate::multitasking::task::Task;
6+
use crate::multitasking::task::CPUState;
67
use crate::multitasking::task::TASK_MANAGER;
78

89
const APP_TARGET: u32 = 0x0050_0000;
910
const APP_SIGNATURE: u32 = 0xB16B00B5;
1011

12+
static mut TASK_A: Task = Task {
13+
stack: [0; 4096],
14+
cpu_state: 0 as *mut CPUState,
15+
running: false,
16+
};
17+
18+
static mut TASK_B: Task = Task {
19+
stack: [0; 4096],
20+
cpu_state: 0 as *mut CPUState,
21+
running: false,
22+
};
23+
24+
static mut TASK_C: Task = Task {
25+
stack: [0; 4096],
26+
cpu_state: 0 as *mut CPUState,
27+
running: false,
28+
};
29+
1130
const HELP: &'static str = "Available commands:
1231
ls - lists root directory entries
1332
cat <file> - displays content of a file
@@ -125,16 +144,16 @@ impl Shell {
125144

126145
match a {
127146
'a' => {
128-
let mut task1 = Task::new(task_a as u32);
129-
TASK_MANAGER.add_task(&mut task1 as *mut Task);
147+
TASK_A = Task::new(task_a as u32);
148+
TASK_MANAGER.add_task(&mut TASK_A as *mut Task);
130149
}
131150
'b' => {
132-
let mut task1 = Task::new(task_b as u32);
133-
TASK_MANAGER.add_task(&mut task1 as *mut Task);
151+
TASK_B = Task::new(task_b as u32);
152+
TASK_MANAGER.add_task(&mut TASK_B as *mut Task);
134153
}
135154
'c' => {
136-
let mut task1 = Task::new(task_c as u32);
137-
TASK_MANAGER.add_task(&mut task1 as *mut Task);
155+
TASK_C = Task::new(task_c as u32);
156+
TASK_MANAGER.add_task(&mut TASK_C as *mut Task);
138157
}
139158
_ => {
140159
libfelix::println!("Specify test a, b, or c!");

rust-toolchain.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
[toolchain]
2-
channel = "nightly-2023-05-04"
2+
channel = "nightly"
33
components = ["rustfmt", "rust-src"]

0 commit comments

Comments
 (0)