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

63 Commits

Author SHA1 Message Date
Jiajie Chen
8313b8854e cherry-pick virtio improvement from lab8-rv32
Move mandelbrot to test mod, cleanup virtio feature negotiation and add addr2line script to Makefile

Implement full virtqueue operations, virtio input driver

Use new virtqueue implementation for virtio net driver

Implement virtio blk device support and use it instead of memory sfs when available

fix dirty hack for virtio_blk
2019-02-16 16:52:11 +08:00
WangRunji
33eaded142 Merge remote-tracking branch 'bpc/user-lib-bin' into merge-1228
# Conflicts:
#	kernel/src/arch/riscv32/compiler_rt.c
#	kernel/src/arch/riscv32/consts.rs
#	kernel/src/arch/riscv32/context.rs
#	kernel/src/arch/riscv32/io.rs
#	kernel/src/arch/riscv32/memory.rs
#	kernel/src/arch/riscv32/paging.rs
#	user/ucore-ulib/src/syscall.rs
2018-12-28 17:41:21 +08:00
WangRunji
a852c96136 Merge branch 'master' into rust-rv64
# Conflicts:
#	crate/memory/src/memory_set.rs
#	kernel/src/arch/riscv32/compiler_rt.rs
#	kernel/src/arch/riscv32/memory.rs
#	kernel/src/arch/riscv32/paging.rs
#	kernel/src/memory.rs
#	kernel/src/process/mod.rs
2018-12-28 16:55:09 +08:00
Ben Pig Chu
6e8c80d328 panicless default fs implement 2018-12-20 17:13:00 +08:00
Ben Pig Chu
fa03f7b112 use the simple-filesystem crate with FsError 2018-12-20 12:27:21 +08:00
WangRunji
d4b6cc1082 compile rv64 pass on macOS 2018-12-20 01:13:42 +08:00
Ben Pig Chu
6eb49a0106 maually remove warning, pt5 2018-12-18 16:29:09 +08:00
Ben Pig Chu
935c595083 maually remove warning, pt3 2018-12-18 13:32:05 +08:00
Ben Pig Chu
1ca2bde069 maually remove warning, pt1 2018-12-17 23:54:13 +08:00
equation314
5a165178cc aarch64: implement IRQ register & serial IRQ 2018-12-11 15:07:13 +08:00
Wang Runji
3f2beab52d
Merge branch 'master' into user-img 2018-12-02 22:39:59 +08:00
WangRunji
e7039945c1 move user img, remove useless files 2018-12-02 21:18:37 +08:00
WangRunji
acafe19e26 fix runtime error on aarch64
- InactivePageTable::activate should be separated for user & kernel (TTBR1/0)
- disable swappable for aarch64 (bug?)
- use polling getchar as serial interrupt is not implemented
2018-12-02 21:17:53 +08:00
WangRunji
b5ced136f7 fix merge compile error 2018-12-02 00:58:15 +08:00
WangRunji
2afe8c731e Merge remote-tracking branch 'equation314/arch-aarch64' into dev
# Conflicts:
#	crate/memory/src/memory_set.rs
#	kernel/Cargo.lock
#	kernel/src/arch/aarch64/interrupt/handler.rs
#	kernel/src/arch/aarch64/interrupt/mod.rs
#	kernel/src/arch/aarch64/memory.rs
#	kernel/src/arch/aarch64/mod.rs
#	kernel/src/arch/aarch64/paging.rs
#	kernel/src/consts.rs
#	kernel/src/fs.rs
#	kernel/src/lib.rs
#	kernel/src/memory.rs
#	kernel/src/process/context.rs
#	tools/riscv-pk/.gitignore
#	tools/riscv-pk/LICENSE
#	tools/riscv-pk/Makefile.in
#	tools/riscv-pk/README.md
#	tools/riscv-pk/aclocal.m4
#	tools/riscv-pk/bbl/bbl.ac
#	tools/riscv-pk/bbl/bbl.c
#	tools/riscv-pk/bbl/bbl.h
#	tools/riscv-pk/bbl/bbl.lds
#	tools/riscv-pk/bbl/bbl.mk.in
#	tools/riscv-pk/bbl/logo.c
#	tools/riscv-pk/bbl/payload.S
#	tools/riscv-pk/bbl/raw_logo.S
#	tools/riscv-pk/bbl/riscv_logo.txt
#	tools/riscv-pk/config.h.in
#	tools/riscv-pk/configure
#	tools/riscv-pk/configure.ac
#	tools/riscv-pk/dummy_payload/dummy_entry.S
#	tools/riscv-pk/dummy_payload/dummy_payload.lds
#	tools/riscv-pk/dummy_payload/dummy_payload.mk.in
#	tools/riscv-pk/machine/atomic.h
#	tools/riscv-pk/machine/bits.h
#	tools/riscv-pk/machine/disabled_hart_mask.h
#	tools/riscv-pk/machine/emulation.c
#	tools/riscv-pk/machine/emulation.h
#	tools/riscv-pk/machine/encoding.h
#	tools/riscv-pk/machine/fdt.c
#	tools/riscv-pk/machine/fdt.h
#	tools/riscv-pk/machine/finisher.c
#	tools/riscv-pk/machine/finisher.h
#	tools/riscv-pk/machine/flush_icache.c
#	tools/riscv-pk/machine/htif.c
#	tools/riscv-pk/machine/htif.h
#	tools/riscv-pk/machine/machine.ac
#	tools/riscv-pk/machine/machine.mk.in
#	tools/riscv-pk/machine/mcall.h
#	tools/riscv-pk/machine/mentry.S
#	tools/riscv-pk/machine/minit.c
#	tools/riscv-pk/machine/misaligned_ldst.c
#	tools/riscv-pk/machine/mtrap.c
#	tools/riscv-pk/machine/mtrap.h
#	tools/riscv-pk/machine/muldiv_emulation.c
#	tools/riscv-pk/machine/uart.c
#	tools/riscv-pk/machine/uart.h
#	tools/riscv-pk/machine/uart16550.c
#	tools/riscv-pk/machine/uart16550.h
#	tools/riscv-pk/machine/unprivileged_memory.h
#	tools/riscv-pk/machine/vm.h
#	tools/riscv-pk/scripts/config.guess
#	tools/riscv-pk/scripts/config.sub
#	tools/riscv-pk/scripts/install.sh
#	tools/riscv-pk/scripts/mk-install-dirs.sh
#	tools/riscv-pk/scripts/vcs-version.sh
#	tools/riscv-pk/util/snprintf.c
#	tools/riscv-pk/util/string.c
#	tools/riscv-pk/util/util.mk.in
2018-12-02 00:27:10 +08:00
equation314
4f592336ff aarch64: remove test functions 2018-12-01 22:39:21 +08:00
equation314
5a83d6a20f aarch64: add user program SFS image 2018-12-01 20:12:54 +08:00
WangRunji
fcf5074500 impl M-mode kernel for riscv32 2018-12-01 17:37:37 +08:00
equation314
f882a085d6 user: link created SFS image in kernel 2018-11-29 17:33:31 +08:00
WangRunji
52fe93188d disable delay allocating frame, remove memory_set_record 2018-11-27 01:18:30 +08:00
WangRunji
46f0e85230 add ucore-i386-pic.img user programs. reorganize imgs. 2018-11-22 18:06:39 +08:00
equation314
f398945ad3 aarch64: hard link user program 2018-11-20 18:29:51 +08:00
WangRunji
b1bdac7d0f fix merge for aarch64. now it works! 2018-11-20 01:08:39 +08:00
WangRunji
2daf8c188d Merge remote-tracking branch 'equation314/arch-aarch64' into dev
# Conflicts:
#	.gitignore
#	kernel/Cargo.lock
#	kernel/Cargo.toml
#	kernel/Makefile
#	kernel/riscv32-blog_os.json
#	kernel/src/consts.rs
#	kernel/src/fs.rs
#	kernel/src/lib.rs
#	kernel/src/process/context.rs
#	kernel/src/process/mod.rs
2018-11-20 00:15:19 +08:00
WangRunji
56fcad245a update kernel to 2018 edition 2018-11-19 20:11:17 +08:00
WangRunji
205f90a264 Merge branch 'dev' into g4-merge
# Conflicts:
#	crate/memory/src/cow.rs
#	crate/memory/src/memory_set.rs
#	crate/memory/src/paging/mod.rs
#	crate/memory/src/swap/mod.rs
#	crate/process/src/lib.rs
#	crate/process/src/process_manager.rs
#	crate/process/src/processor.rs
#	crate/process/src/thread.rs
#	crate/riscv
#	kernel/Cargo.lock
#	kernel/src/arch/riscv32/compiler_rt.rs
#	kernel/src/arch/riscv32/consts.rs
#	kernel/src/arch/riscv32/context.rs
#	kernel/src/arch/riscv32/interrupt.rs
#	kernel/src/arch/riscv32/memory.rs
#	kernel/src/arch/riscv32/mod.rs
#	kernel/src/arch/riscv32/paging.rs
#	kernel/src/arch/x86_64/driver/ide.rs
#	kernel/src/arch/x86_64/interrupt/handler.rs
#	kernel/src/arch/x86_64/mod.rs
#	kernel/src/console.rs
#	kernel/src/consts.rs
#	kernel/src/fs.rs
#	kernel/src/lib.rs
#	kernel/src/memory.rs
#	kernel/src/process/context.rs
#	kernel/src/process/mod.rs
#	kernel/src/syscall.rs
#	kernel/src/trap.rs
2018-11-16 18:58:29 +08:00
WangRunji
5ce7d0a9c0 use user shell by default. fix kernel shell removing user thread. 2018-11-16 01:22:59 +08:00
WangRunji
21b0bdcbca separate kernel shell to a mod, remove console mod 2018-11-16 00:49:42 +08:00
WangRunji
44bf3fb07a impl sys_exec 2018-11-15 23:41:22 +08:00
lcy1996
eb00b2bfd3 merge conflict 2018-11-14 21:54:26 +08:00
lcy1996
a8da42d521 Add expr4 report and some trace for synctest 2018-11-14 21:45:56 +08:00
chenqiuhao
4d8d48cf4d repair some bugs and move child control to processmanager 2018-11-14 18:36:47 +08:00
chenqiuhao
6652f8daf6 repair some bugs 2018-11-13 22:52:11 +08:00
chenqiuhao
8d6d3b7c37 debug for sleepkill 2018-11-13 19:56:17 +08:00
WangRunji
f97e8458b8 impl stdin & stdout as INode 2018-11-11 23:08:59 +08:00
lcy1996
5ee44588e0 Enlarge the physical and kernel heap memory. Fix the bug in map the kernel. 2018-11-09 11:08:45 +08:00
WangRunji
128257c395 impl argc & argv for user process 2018-11-07 23:28:07 +08:00
equation314
5610d0bdb0 aarch64: context switch is runnable! 2018-11-07 22:07:59 +08:00
WangRunji
e27aea47e1 impl file syscalls, without test 2018-11-07 13:35:59 +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
lcy1996
a145909998 Fix compile error after merge for the new processor. 2018-11-05 22:16:45 +08:00
lcy1996
fcdee71f9d Merge confilt 2018-11-05 21:31:04 +08:00
lcy1996
c8ea2cb0cf Fix bug and enable swap in/out and frame delayed allocating. 2018-11-05 20:37:05 +08:00
chenqiuhao
2002ddd5fa move processor from wrj 2018-11-03 21:45:03 +08:00
equation314
2e094d08bc common: add a logo 2018-10-29 13:41:25 +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
equation314
174e0da3b6 aarch64: basic framework 2018-10-26 11:22:22 +08:00
WangRunji
0680023e35 Recover wait/sleep 2018-10-26 00:49:19 +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
maoyuchaxue
f27fd37d82 replaced spin::Mutex with sync::SpinLock, now spinlock works well. 2018-10-17 21:34:15 +08:00