WangRunji
16fb733497
Blocking getchar
6 years ago
WangRunji
e5a196c00f
Fix processor. Disable interrupt on switching.
6 years ago
WangRunji
5852881611
unwrap -> expect
6 years ago
WangRunji
b7d6b2989d
Fix bugs. Pass test 'spin'
...
- Fix ACK IRQ on x86.
- Add process exit handler.
6 years ago
WangRunji
74facd8e87
Use Vec to replace array in ProcessManager.
6 years ago
WangRunji
7229b49eb8
Use rust-lld for RV32. Remove riscv git submodule.
6 years ago
WangRunji
72dc3f62ad
Remove kernel stack from MemorySet.
6 years ago
WangRunji
438e290b6d
Fix PageTable::get_entry -> Option.
6 years ago
WangRunji
0680023e35
Recover wait/sleep
6 years ago
WangRunji
c734f79699
Drop context when process exit. Remove util mod.
6 years ago
WangRunji
85a1dca684
Use weak linkage to provide dependencies for process::thread.
6 years ago
WangRunji
80b161db98
Recover set_priority and fork
6 years ago
WangRunji
5db908b1c5
Separate ProcessManager to a mod.
6 years ago
WangRunji
f7eb09e856
Multicore processing WORKS! Basically ...
...
- Rewrite processor.rs
Refactor to `Processor` & `ProcessManager`
- Use Box<dyn> instead of generic.
- Wait/sleep/wakeup is not supported yet.
I'm considering to implement them with WaitQueue.
6 years ago
WangRunji
5bc392f388
Enable RV32 IPI.
6 years ago
WangRunji
fc2fd18c36
Add docs for thread::spawn()
6 years ago
WangRunji
7dd9494389
Add `Scheduler.move_to_head(pid)` to replace `Processor.next`
...
Rename `set_reschedule` to `yield_now`
6 years ago
WangRunji
501ce6c4be
Fix memory crate test compile.
6 years ago
WangRunji
cd1bd55729
Update README, travis, riscv crate.
6 years ago
WangRunji
924c061d64
Merge branch 'x86-boot'
...
# Conflicts:
# crate/riscv
# kernel/Makefile
6 years ago
dzy
5a0ce1e464
Refactored RISC-V page table identity mapping into a function.
6 years ago
dzy
906019f7c6
Add little notes for BitAllocator
6 years ago
WangRunji
caeff9ad97
Update packages and fit for new Rust nightly
6 years ago
WangRunji
b88648ff44
Fit for newest Rust nightly. x86_64 ok, riscv32 broken.
6 years ago
WangRunji
a2111a928f
Move thread mod to ucore-process crate
6 years ago
WangRunji
776dc976c9
Fix for user
6 years ago
WangRunji
06b39ed521
Impl remove any for StrideScheduler
6 years ago
WangRunji
04b62ec79f
Use Vec instead of array in Scheduler
6 years ago
WangRunji
c8a9eaf3e6
Split process mod to extern crate
6 years ago
WangRunji
0c9679b710
Fix fork and syscall return value.
6 years ago
WangRunji
27daa6d491
Fix user trap
6 years ago
WangRunji
1ad3ed738e
Can run user program in RV32
6 years ago
WangRunji
89bcd5f660
Fix kernel thread
6 years ago
WangRunji
96d8af8034
Use CowExt for RV32
6 years ago
WangRunji
7d856fe009
Fix memory::cow LLVM error for RV32
6 years ago
WangRunji
5530549a54
Recover `process` `thread` `sync` mod for RV32. Pass compile.
6 years ago
WangRunji
7c7dbc9ded
Add CR3 to Context (x86_64)
6 years ago
WangRunji
95ab3a2f3b
Allocate kernel stack from heap, remove stack allocator, remove guard page.
6 years ago
WangRunji
81ff6f13e5
Fix recursive mapping, finish kernel remap.
6 years ago
WangRunji
d3ed84ba61
Fix compile
6 years ago
WangRunji
aecb85d5e7
Move MemorySet out to memory crate
6 years ago
WangRunji
5c14673fe0
Setup a simple page table, enable paging.
6 years ago
WangRunji
b26fee1990
Make more mods common for both x86_64 & riscv32.
6 years ago
WangRunji
ee242b44b2
Timer interrupt
6 years ago
WangRunji
aeb7fce0e6
SBI: Support RISCV64
6 years ago
WangRunji
02b94db859
Fix crate `riscv` version
6 years ago
WangRunji
bf2ad7c6a5
Change target arch to RISCV32IMA. Recover some dependencies.
6 years ago
WangRunji
a44231435f
Fork crate `riscv` as a submodule
6 years ago
WangRunji
ced765fb5b
New crate `bbl`, port `sbi` mod.
6 years ago
WangRunji
98be93e215
Fix Fifo & Clock SwapManager, pass test.
7 years ago