WangRunji
b3e5d1987e
update Cargo.lock
6 years ago
WangRunji
9b3294a5f2
fix clear bss when load user program. 'sh' works!
6 years ago
WangRunji
40b099ed79
clean riscv-pk in Makefile
6 years ago
WangRunji
44bf3fb07a
impl sys_exec
6 years ago
WangRunji
f97e8458b8
impl stdin & stdout as INode
6 years ago
WangRunji
ec0b1973a0
Update travis
6 years ago
WangRunji
a589ae90f3
use SysError in syscalls
6 years ago
WangRunji
beb6533059
impl sys_getdirentry. 'ls' ok.
6 years ago
WangRunji
124a5e0d5d
impl sys_dup
...
- Fix exit_code: i32
- Convert Box<File> to Arc<Mutex<File>> in Context
6 years ago
WangRunji
16be828370
impl sys_fstat
6 years ago
WangRunji
128257c395
impl argc & argv for user process
6 years ago
WangRunji
e27aea47e1
impl file syscalls, without test
6 years ago
WangRunji
200a574a1f
fix physical memory range on RV32
6 years ago
WangRunji
91bd411a8f
fit for multi-thread sfs
...
- use global root inode
- remove global IDE on x86
6 years ago
WangRunji
16fb733497
Blocking getchar
6 years ago
WangRunji
0a6b4fb8f2
Modify const. Update cargo.
6 years ago
WangRunji
ba4a24ba3b
Fix RV32 multi-core: Setup page table for other cores.
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
ed20aa45fd
Fix user process bug on RV32.
...
Set sstatus.SIE = 0 on the initial TrapFrame, to prevent interrupt on switching.
6 years ago
WangRunji
6fc23e1134
Ugly impl sys_wait(0)
6 years ago
WangRunji
74facd8e87
Use Vec to replace array in ProcessManager.
6 years ago
WangRunji
182c595a20
Enable multi-core on RV32.
6 years ago
WangRunji
250f1385d3
Better debug print for TrapFrame on RV32
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
a42d6086c6
Simplify IDE code.
6 years ago
WangRunji
81196729e4
Fix RV32 atomic.
...
- Fix __atomic_compare_exchange_4().
- Add patch for core::sync::atomic.
- Revert kernel Mutex.
6 years ago
WangRunji
925a08f9ae
Add OSLab/exp3 report
6 years ago
WangRunji
95ab9caba1
Add impl of atomic_fetch_*
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
6741ba399b
Add arch::cpu::halt(). Halt when panic.
6 years ago
WangRunji
5bc392f388
Enable RV32 IPI.
6 years ago
WangRunji
ff18852c56
Reorganize docs.
6 years ago
WangRunji
1b4edf3bb2
Merge branch 'rv32-smp-porting' into dev
...
# Conflicts:
# kernel/Makefile
6 years ago
WangRunji
72e92c07f9
Switch to RV64 GNU toolchain. Simplify compiler_rt.
6 years ago
WangRunji
f1771f8ef2
Finish x86 SMP startup. Support timer & IPI.
...
- Remove smp, apic mod.
Instead, use new bootloader & apic crate.
- Disable PIC & PIT.
Instead, use IOAPIC & APIC Timer.
6 years ago
maoyuchaxue
f27fd37d82
replaced spin::Mutex with sync::SpinLock, now spinlock works well.
6 years ago
maoyuchaxue
6df13c57ca
Merge branch 'rv32-smp-porting' of https://github.com/char-fish-after-lunch/RustOS into rv32-smp-porting
6 years ago
maoyuchaxue
f7b7b1bcd6
added workaround for atomic ops
6 years ago
maoyuchaxue
cfda03a0f2
trying to add atomic implementations in rv32, but still buggy
6 years ago
maoyuchaxue
a34783c277
a late proposal.pptx
6 years ago
maoyuchaxue
d55eae7122
a late proposal.md
6 years ago