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

429 Commits

Author SHA1 Message Date
Jiajie Chen
81176e5561 Implement raw socket for ping and add SocketWrapper struct 2019-03-03 00:44:46 +08:00
WangRunji
0fd24ff92e impl sys_f(data)sync, sys_(f)truncate, sys_(un)link 2019-03-02 23:16:11 +08:00
WangRunji
451fe6b192 impl sys_chdir, sys_rename, sys_mkdir 2019-03-02 21:25:36 +08:00
WangRunji
2a6c4554d1 Merge remote-tracking branch 'course/biscuit' into biscuit 2019-03-02 20:48:49 +08:00
Jiajie Chen
687caf804d Implement sys_getcwd 2019-03-02 20:25:30 +08:00
Jiajie Chen
e543449836 Implement basic version of sys_munmap and sys_time 2019-03-02 20:15:55 +08:00
WangRunji
a979b6b5ec impl sys_getppid. fix checking pointer for process syscalls 2019-03-02 19:09:39 +08:00
WangRunji
132bc629fa fix bad address error code to EFAULT 2019-03-02 17:26:50 +08:00
WangRunji
472dac5d09 fix sys_getdent64. pass ls in coreutils & busybox 2019-03-02 17:17:57 +08:00
WangRunji
b66c8811d1 update bootloader to fix multi-core boot bug on x86_64 2019-03-02 12:37:55 +08:00
WangRunji
8ab991ebe1 remove global ActivePageTable, because it's CPU local 2019-03-02 11:19:47 +08:00
Jiajie Chen
d8345e96c7 Fix typo 2019-03-01 08:09:01 +08:00
Jiajie Chen
d9e05012f0 Implement socket sys_close 2019-03-01 08:03:10 +08:00
WangRunji
1b104029ce tiny refactor: convert 'get_file' & 'get_socket' to method 2019-02-28 23:33:31 +08:00
Jiajie Chen
6ea04c91b2 Fix line editing bug 2019-02-28 15:53:41 +08:00
Jiajie Chen
29865d7aaa Add line editing function to user shell and refactor net syscall 2019-02-28 15:50:58 +08:00
Jiajie Chen
6124cd60fc Add basic implementation for syscall: connect and write 2019-02-28 14:46:46 +08:00
Jiajie Chen
984df11971 Merge remote-tracking branch 'origin/biscuit' into biscuit 2019-02-28 12:33:10 +08:00
Jiajie Chen
71336aca5c Redesign NetDriver trait and update drivers 2019-02-28 12:31:10 +08:00
WangRunji
344a537684 fix SysError to match Linux error code 2019-02-28 10:59:52 +08:00
Jiajie Chen
36292e6fcd Add dummy implementations for more syscalls 2019-02-28 07:34:45 +08:00
WangRunji
c7f9921e06 support TLS for musl. partial impl sys_exit_group. 2019-02-28 00:15:44 +08:00
WangRunji
f76374000e fix x86_64 syscall register (r10) 2019-02-28 00:12:59 +08:00
equation314
7a278cd421 Merge branch 'master' into biscuit 2019-02-27 14:59:30 +08:00
equation314
50a8de35bc aarch64: save current TTBR1_EL1 in context switch
fixed a bug: when the context switch occurs in InactivePageTable::edit() or InactivePageTable::with() which modify TTBR1_EL1 temporarily, TTBR1_EL1 can be restored to the unmodified value after context switch.
2019-02-27 14:49:32 +08:00
Jiajie Chen
671b7c7b54 Implement backtrace support for x86_64 2019-02-26 23:59:18 +08:00
Jiajie Chen
6f1953b977 Add document for e1000 driver 2019-02-26 23:03:04 +08:00
Jiajie Chen
af9a978a9d Fix a bug in e1000 driver, run net thread and update Makefile 2019-02-26 20:46:51 +08:00
Jiajie Chen
7a3c66a923 Receiving from e1000 driver works 2019-02-26 19:33:20 +08:00
WangRunji
85ae4b1ba1 impl sys_stat, sys_readv, sys_writev. not tested yet 2019-02-26 18:37:50 +08:00
WangRunji
4e146ec491 impl sys_lseek 2019-02-26 17:01:38 +08:00
WangRunji
70a950bf40 fix struct stat to match Linux ABI 2019-02-26 16:21:55 +08:00
WangRunji
cab19688d5 rename File to FileHandle. impl create for sys_open. 2019-02-26 01:44:13 +08:00
WangRunji
6d78206f77 impl finding free area for mmap 2019-02-26 00:46:25 +08:00
Jiajie Chen
dd61ce30ba Implement reading pci memory address 2019-02-25 21:18:09 +08:00
Jiajie Chen
197bebb1d2 Implement pci bus probing and fix a bug in virtio_mmio 2019-02-25 19:12:41 +08:00
WangRunji
05310dcd7d refactor GDT mod 2019-02-25 00:44:22 +08:00
WangRunji
4404982a55 impl sys_arch_prctl set fs 2019-02-25 00:20:37 +08:00
WangRunji
7a704673d7 save fsbase to TrapFrame on x86_64 2019-02-25 00:17:16 +08:00
WangRunji
a224e85c8d split scheduler mod, make Scheduler Sync
biscuit: fix argc, argv
2019-02-23 19:28:38 +08:00
WangRunji
e678186b3d support idle for rcore-thread, remove idle thread in kernel 2019-02-23 16:54:02 +08:00
WangRunji
fc98719559 impl sys_mmap for annonymous 2019-02-23 00:07:28 +08:00
WangRunji
6e8a0e20ab fix device compile error, update crate pc_keyboard 2019-02-22 21:15:05 +08:00
WangRunji
08c8d89974 update SFS to new rcore-fs 2019-02-22 17:10:57 +08:00
WangRunji
ca45f8f152 fix check user ptr in syscalls 2019-02-22 16:30:56 +08:00
WangRunji
d26a1bc617 split syscall mod 2019-02-22 14:10:24 +08:00
WangRunji
2cf7e7bd87 fix File in Process 2019-02-22 13:09:42 +08:00
WangRunji
cf9ac9ccfd split fs mod 2019-02-22 13:08:40 +08:00
WangRunji
7927c7c168 Merge branch 'thread' into biscuit
# Conflicts:
#	kernel/src/process/mod.rs
#	kernel/src/process/structs.rs
#	kernel/src/syscall.rs
2019-02-22 12:06:21 +08:00
WangRunji
e1dacb28ef auto open stdin/out/err for new proc. pass biscuit hello,cat,echo ... 2019-02-22 11:44:48 +08:00
WangRunji
c69386fbc2 add rcore-user submodule 2019-02-21 18:35:10 +08:00
WangRunji
67e8bef0f5 modify syscall ids to match Linux 64. fix fork file bug. 2019-02-21 00:44:14 +08:00
WangRunji
8a1a38853e support 'syscall' instruction by handling invalid opcode exception 2019-02-18 22:34:44 +08:00
WangRunji
a6b0da0c2f rename x86_64 exception consts 2019-02-18 22:26:05 +08:00
WangRunji
32e7f0ed52 fix process startup stack for musl libc 2019-02-18 21:46:12 +08:00
WangRunji
a33d7632d6 rename 'KERN_VA_BASE' to 'KERNEL_OFFSET'. fix compile error 2019-02-18 14:42:25 +08:00
Jiajie Chen
fbf9409db2 Convert frame buffer to pa in virtio_gpu as well 2019-02-16 19:15:24 +08:00
Jiajie Chen
f399805196 Use KERN_VA_BASE and MEMORY_OFFSET to convert between kern va and pa 2019-02-16 18:06:32 +08:00
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
95dfb7684f update kflash.py, fix build k210 2019-02-16 14:31:47 +08:00
WangRunji
2766f49986 update README, Travis, Makefile 2019-02-15 16:10:24 +08:00
WangRunji
2303a8099b update Rust compiler to support riscv64 2019-02-15 14:54:42 +08:00
WangRunji
ac0c19cdb0 support Sv39
To test: make run arch=riscv64 board=u540
2019-02-01 01:09:23 +08:00
WangRunji
fc8888db72 update for new paging mechanism on riscv. move kernel va to 0x(ffffffff)c0000000. 2019-01-31 23:20:21 +08:00
WangRunji
1ceb7ae12d use #[repr(C)] instead of #[repr(packed)] to avoid warning 2019-01-31 18:07:15 +08:00
WangRunji
847a1c7576 use core::sync::atomic::fence 2019-01-29 16:08:00 +08:00
WangRunji
66c84b4599 update to x86_64 0.4 2019-01-28 14:24:56 +08:00
WangRunji
0ec5ad8056 split Process and Thread 2019-01-25 23:28:48 +08:00
WangRunji
5bffce787b rename 'process' crate to 'thread' 2019-01-24 19:03:45 +08:00
WangRunji
238de1b282 fix compile for rv64 2019-01-24 12:31:28 +08:00
WangRunji
047f4ffdcc cherry-pick jiegec's work (#3) from lab8-rv32: virtio drivers, network stack
Read and parse dtb upon boot

Implement virtio net device detection

Negotiate feature bits for virtio-net

Read MAC address from virtio-net device and detect virtqueues

Receiving from virtio net device is working for the first time

Implement driver interface and interrupt handling routines

Rearrange drivers into upper directory

Implement initial support for processing arp request and reply packet

Refactor MAC address and IPv4 address into structs, and implement ICMP echo reply

Fix typos

Implement initial support for virtio gpu driver

Complete first working version of virtio gpu driver with mandelbrot example

Use smoltcp and implement a udp and tcp server on top of it

Cleanup virtio net code
2019-01-23 22:28:45 +08:00
Jiajie Chen
b1d01928c3 Use core::mem::size_of instead of core:intrinsics::size_of. Thanks @wangrunji0408 2019-01-08 22:10:51 +08:00
Jiajie Chen
6e887d5505 Replace hardcoded instruction length with size_of in backtrace 2019-01-08 19:08:17 +08:00
Jiajie Chen
5350ecb09f Add addr2line tool for annotating backtrace 2019-01-08 19:04:34 +08:00
Jiajie Chen
e3262698be Fix aarch64 toolchain detection and add missing compiler_builtins v0.1.5 2019-01-08 13:49:49 +08:00
Jiajie Chen
4beb865d32 Update toolchain location and detection 2019-01-08 12:57:24 +08:00
Jiajie Chen
090796d3f0 Implement backtrace support for RISCV32 2019-01-08 12:05:29 +08:00
Jiajie Chen
7d6856ceab Implement backtrace support for RISCV64 2019-01-08 11:33:31 +08:00
Jiajie Chen
d8edd1a7db Implement backtrace support for AArch64 2019-01-08 11:05:28 +08:00
dzy
61eda6b19e Add 0.1.4 compiler_builtins. Git ignore llc. 2019-01-06 20:17:35 +08:00
WangRunji
0965d24083 fix map_kernel on riscv32 2019-01-05 15:29:27 +08:00
WangRunji
2d5178d0b7 rename ucore to rcore 2019-01-03 21:26:50 +08:00
WangRunji
f0ea48126d fix sys_wait arg type: isize -> i32 2019-01-03 18:37:27 +08:00
WangRunji
61dfcb5558 Merge remote-tracking branch 'equation314/arch-aarch64' into merging
# Conflicts:
#	kernel/Makefile
#	kernel/src/arch/aarch64/board/raspi3/irq.rs
#	kernel/src/arch/aarch64/memory.rs
#	kernel/src/arch/riscv32/paging.rs
#	kernel/src/arch/x86_64/paging.rs
2019-01-03 18:21:13 +08:00
equation314
dfb2d49cd6 aarch64/doc: add console driver 2019-01-02 19:15:47 +08:00
equation314
1aa8436d71 aarch64/doc: add interruption & timer drivers 2019-01-01 20:47:19 +08:00
equation314
7fda4e360f aarch64/doc: add GPIO, mini UART, mailbox drivers 2019-01-01 01:56:22 +08:00
WangRunji
e46b6c7b0c move target json. add kflash.py 2019-01-01 01:53:33 +08:00
WangRunji
190711fbc2 yet another riscv atomic fix 2019-01-01 01:40:34 +08:00
equation314
e1d0d2a020 aarch64/doc: add overview of AArch64 2018-12-31 22:51:13 +08:00
WangRunji
5d7e97d9e9 fix interrupt in process crate 2018-12-31 22:49:28 +08:00
WangRunji
681a90657a let Makefile support riscv64 2018-12-28 23:35:50 +08:00
WangRunji
259e7c842e update Cargo.toml & Makefile 2018-12-28 18:18:14 +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
c65b7357a4 use riscv crate from github 2018-12-28 17:00:59 +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
WangRunji
92ae57b251 fix user program memory layout on NoMMU 2018-12-27 22:44:01 +08:00
WangRunji
daee1e9f94 fix bugs on K210 2018-12-27 22:43:48 +08:00
WangRunji
b3a8e95d78 merge interrupt & context switch for rv32 & rv64 2018-12-27 19:48:08 +08:00
WangRunji
de24f6673c remove '\r' 2018-12-27 15:56:20 +08:00