1
0
mirror of https://github.com/rcore-os/rCore.git synced 2024-11-27 18:23:29 +04:00
Commit Graph

460 Commits

Author SHA1 Message Date
WangRunji
16be828370 impl sys_fstat 2018-11-07 23:32:22 +08:00
WangRunji
128257c395 impl argc & argv for user process 2018-11-07 23:28:07 +08:00
WangRunji
e27aea47e1 impl file syscalls, without test 2018-11-07 13:35:59 +08:00
WangRunji
200a574a1f fix physical memory range on RV32 2018-11-07 13:16:52 +08:00
WangRunji
91bd411a8f fit for multi-thread sfs
- use global root inode
- remove global IDE on x86
2018-11-07 02:00:40 +08:00
WangRunji
16fb733497 Blocking getchar 2018-11-05 22:55:59 +08:00
WangRunji
0a6b4fb8f2 Modify const. Update cargo. 2018-11-02 16:14:29 +08:00
WangRunji
ba4a24ba3b Fix RV32 multi-core: Setup page table for other cores. 2018-11-02 16:13:58 +08:00
WangRunji
e5a196c00f Fix processor. Disable interrupt on switching. 2018-11-02 10:25:41 +08:00
WangRunji
5852881611 unwrap -> expect 2018-11-01 23:45:48 +08:00
WangRunji
b7d6b2989d Fix bugs. Pass test 'spin'
- Fix ACK IRQ on x86.
- Add process exit handler.
2018-11-01 21:10:19 +08:00
WangRunji
ed20aa45fd Fix user process bug on RV32.
Set sstatus.SIE = 0 on the initial TrapFrame, to prevent interrupt on switching.
2018-11-01 19:53:30 +08:00
WangRunji
6fc23e1134 Ugly impl sys_wait(0) 2018-11-01 00:45:02 +08:00
WangRunji
74facd8e87 Use Vec to replace array in ProcessManager. 2018-11-01 00:16:32 +08:00
WangRunji
182c595a20 Enable multi-core on RV32. 2018-10-31 11:46:50 +08:00
WangRunji
250f1385d3 Better debug print for TrapFrame on RV32 2018-10-31 11:39:42 +08:00
WangRunji
7229b49eb8 Use rust-lld for RV32. Remove riscv git submodule. 2018-10-30 13:30:20 +08:00
WangRunji
72dc3f62ad Remove kernel stack from MemorySet. 2018-10-27 15:17:15 +08:00
WangRunji
438e290b6d Fix PageTable::get_entry -> Option. 2018-10-26 23:43:12 +08:00
WangRunji
a42d6086c6 Simplify IDE code. 2018-10-26 18:18:11 +08:00
WangRunji
81196729e4 Fix RV32 atomic.
- Fix __atomic_compare_exchange_4().
- Add patch for core::sync::atomic.
- Revert kernel Mutex.
2018-10-26 15:22:03 +08:00
WangRunji
925a08f9ae Add OSLab/exp3 report 2018-10-26 02:32:48 +08:00
WangRunji
95ab9caba1 Add impl of atomic_fetch_* 2018-10-26 02:31:05 +08:00
WangRunji
0680023e35 Recover wait/sleep 2018-10-26 00:49:19 +08:00
WangRunji
c734f79699 Drop context when process exit. Remove util mod. 2018-10-25 01:04:31 +08:00
WangRunji
85a1dca684 Use weak linkage to provide dependencies for process::thread. 2018-10-24 21:32:23 +08:00
WangRunji
80b161db98 Recover set_priority and fork 2018-10-24 21:29:41 +08:00
WangRunji
5db908b1c5 Separate ProcessManager to a mod. 2018-10-24 00:38:22 +08:00
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.
2018-10-24 00:28:29 +08:00
WangRunji
6741ba399b Add arch::cpu::halt(). Halt when panic. 2018-10-24 00:23:40 +08:00
WangRunji
5bc392f388 Enable RV32 IPI. 2018-10-21 21:47:17 +08:00
WangRunji
ff18852c56 Reorganize docs. 2018-10-19 23:37:10 +08:00
WangRunji
1b4edf3bb2 Merge branch 'rv32-smp-porting' into dev
# Conflicts:
#	kernel/Makefile
2018-10-19 23:36:15 +08:00
WangRunji
72e92c07f9 Switch to RV64 GNU toolchain. Simplify compiler_rt. 2018-10-19 23:35:38 +08:00
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.
2018-10-19 01:14:21 +08:00
maoyuchaxue
f27fd37d82 replaced spin::Mutex with sync::SpinLock, now spinlock works well. 2018-10-17 21:34:15 +08:00
maoyuchaxue
6df13c57ca Merge branch 'rv32-smp-porting' of https://github.com/char-fish-after-lunch/RustOS into rv32-smp-porting 2018-10-17 19:38:19 +08:00
maoyuchaxue
f7b7b1bcd6 added workaround for atomic ops 2018-10-17 19:37:53 +08:00
maoyuchaxue
cfda03a0f2 trying to add atomic implementations in rv32, but still buggy 2018-10-17 00:21:18 +08:00
maoyuchaxue
a34783c277 a late proposal.pptx 2018-10-16 18:05:16 +08:00
maoyuchaxue
d55eae7122 a late proposal.md 2018-10-16 17:42:50 +08:00
maoyuchaxue
49cd04dce3 added rv32 smp booting, with slight modification to bbl 2018-10-14 22:28:01 +08:00
maoyuchaxue
6cf0d6db23 fixed setting in riscv-pk to enable rv32ia, added smp option in Makefile 2018-10-14 13:50:59 +08:00
WangRunji
6cdf505f62 Add OSLab/exp2 report 2018-10-10 00:50:13 +08:00
WangRunji
fc2fd18c36 Add docs for thread::spawn() 2018-09-22 17:32:16 +08:00
WangRunji
7dd9494389 Add Scheduler.move_to_head(pid) to replace Processor.next
Rename `set_reschedule` to `yield_now`
2018-09-22 15:54:22 +08:00
WangRunji
501ce6c4be Fix memory crate test compile. 2018-09-21 16:00:48 +08:00
WangRunji
528c919626 Remove root Makefile. Add dev docs link. 2018-09-20 21:13:47 +08:00
WangRunji
cd1bd55729 Update README, travis, riscv crate. 2018-09-19 20:58:00 +08:00
WangRunji
924c061d64 Merge branch 'x86-boot'
# Conflicts:
#	crate/riscv
#	kernel/Makefile
2018-09-19 20:18:14 +08:00