Stephen Marz
|
723963e1ec
|
Resolved
|
2020-05-01 19:11:42 -04:00 |
|
Stephen Marz
|
21f16b4754
|
Resolved
|
2020-05-01 19:10:56 -04:00 |
|
Stephen Marz
|
6cd64c84bf
|
Do not spin lock in an interrupt context, and also add feedback to the caller.
|
2020-05-01 19:02:58 -04:00 |
|
Stephen Marz
|
fe5a909335
|
Create a system call to add a process to prevent data race with the process list.
|
2020-05-01 18:59:38 -04:00 |
|
Stephen Marz
|
30fcd7894a
|
Change lock to try_lock to better align with Rust's verbiage
|
2020-04-27 09:46:59 -04:00 |
|
Stephen Marz
|
d49ea6e040
|
Changed formatting settings.
|
2020-04-26 22:12:00 -04:00 |
|
Stephen Marz
|
532b246f7b
|
Added locking to the scheduler. Since this is invoked so often, it causes a race with the test_elf process.
|
2020-04-26 21:08:29 -04:00 |
|
Stephen Marz
|
ef0997be74
|
Add documentation for Mutex
|
2020-04-26 20:28:20 -04:00 |
|
Stephen Marz
|
a1f9d2c6cd
|
Add Mutex to process list.
|
2020-04-26 20:11:01 -04:00 |
|
Stephen Marz
|
03018cb55f
|
Removed warnings
|
2020-04-26 15:55:22 -04:00 |
|
Stephen Marz
|
7dfe0b8182
|
Run cargo fix
|
2020-04-26 15:53:26 -04:00 |
|
Stephen Marz
|
3d43bbd93c
|
asm is deprecated in Rust as my compiler warned me. So, let's switch to llvm_asm
|
2020-04-26 15:52:08 -04:00 |
|
Stephen Marz
|
591f0fdff8
|
Get rid of useless header.
|
2020-04-26 14:58:28 -04:00 |
|
Stephen Marz
|
29100f10ae
|
Updated comments
|
2020-04-26 14:05:50 -04:00 |
|
Stephen Marz
|
af29a0d267
|
Removed make_hdd.sh, it stores random bytes, now we have a filesystem
|
2020-04-26 13:55:08 -04:00 |
|
Stephen Marz
|
d62d3f3816
|
Added more rigorous test, fixed bug in ELF loader
|
2020-04-26 09:26:41 -04:00 |
|
Stephen Marz
|
bc6ef9d689
|
Fixed ELF loader and added offset.
|
2020-04-26 09:19:07 -04:00 |
|
Stephen Marz
|
8f61253aea
|
Removed old code and added comments.
|
2020-04-26 08:51:25 -04:00 |
|
Stephen Marz
|
cc3b78973c
|
Rearranged code, added comments.
|
2020-04-26 08:43:03 -04:00 |
|
Stephen Marz
|
42c14bf930
|
Check and use permission bits in ELF for user pages.
|
2020-04-26 08:40:43 -04:00 |
|
Stephen Marz
|
fa1a728bd9
|
Changed to run test_elf for ELF files
|
2020-04-26 08:34:00 -04:00 |
|
Stephen Marz
|
074dc9547a
|
Now we read ELF files instead of raw binaries
|
2020-04-26 08:33:49 -04:00 |
|
Stephen Marz
|
de97ebf12d
|
Added ELF structures for reading ELF files.
|
2020-04-26 08:33:25 -04:00 |
|
Stephen Marz
|
06894d3aff
|
Move BlockBuffer into fs.
|
2020-04-26 07:12:38 -04:00 |
|
Stephen Marz
|
25009aaa3c
|
Fixed bug in locating the inode.
|
2020-04-26 07:12:27 -04:00 |
|
Stephen Marz
|
fac882ea73
|
Clean up scheduler code.
|
2020-04-25 23:27:00 -04:00 |
|
Stephen Marz
|
fd9c9449b0
|
Allow sleeping processes that are awoken to immediately execute.
|
2020-04-25 23:26:14 -04:00 |
|
Stephen Marz
|
60edb9f72a
|
Remove the dumb done flag.
|
2020-04-25 23:24:55 -04:00 |
|
Stephen Marz
|
58b73e2208
|
Added tons of comments.
|
2020-04-25 22:25:32 -04:00 |
|
Stephen Marz
|
b8029e76ac
|
Make helloworld.cpp print a pointer so we can see how we directly affect
the stack.
|
2020-04-25 21:44:11 -04:00 |
|
Stephen Marz
|
f771883cb0
|
Added satp_fence. Probably don't need this since we don't reuse pids.
|
2020-04-25 21:44:05 -04:00 |
|
Stephen Marz
|
eab4a20a61
|
Added calculations to helloworld
|
2020-04-25 21:35:32 -04:00 |
|
Stephen Marz
|
0c649f5370
|
Change wording of helloworld.cpp so it's recognizable when printed to the screen.
|
2020-04-25 21:24:21 -04:00 |
|
Stephen Marz
|
1627cc7733
|
Read and start a process...Added userspace library...will switch this to newlib later.
|
2020-04-25 21:23:00 -04:00 |
|
Stephen Marz
|
cbff6afeca
|
Added comments.
|
2020-04-25 19:51:27 -04:00 |
|
Stephen Marz
|
cb06702afa
|
Act more like Rust by adding _mut() for those functions that return mutable references or pointers.
|
2020-04-25 19:36:58 -04:00 |
|
Stephen Marz
|
e5f3eb7f6b
|
Removed mapping the kernel memory into a process' virtual address space.
|
2020-04-25 19:34:20 -04:00 |
|
Stephen Marz
|
84e5126d29
|
Added formatting, made syscall.rs clearer to read.
|
2020-04-25 18:48:23 -04:00 |
|
Stephen Marz
|
056ef5bb2d
|
Added dump_registers as syscall 1--for debugging purposes.
|
2020-04-25 18:25:18 -04:00 |
|
Stephen Marz
|
d86c65a380
|
Added comments and removed llvm_asm -- it looks like I'll have to use this in the future
|
2020-04-25 17:34:06 -04:00 |
|
Stephen Marz
|
018faea21e
|
Check for a 0 zone before adding to blocks seen.
|
2020-04-25 16:47:13 -04:00 |
|
Stephen Marz
|
3eb61ad188
|
Remove redundant variable
|
2020-04-25 16:41:43 -04:00 |
|
Stephen Marz
|
bb4e2d118a
|
Minix reads Direct, Indirect, Doubly-indirect, and Triply-indirect zones
|
2020-04-25 16:39:50 -04:00 |
|
Stephen Marz
|
0de9b23b17
|
Change test and added comments
|
2020-04-25 16:06:29 -04:00 |
|
Stephen Marz
|
080a529f01
|
Reading up to indirect pointers
|
2020-04-25 15:15:25 -04:00 |
|
Stephen Marz
|
c2fb6cf90d
|
Fix system calls. Size always comes first now, followed by offset.
|
2020-04-25 14:16:03 -04:00 |
|
Stephen Marz
|
787f886b6f
|
Clean up code, added deleting a process if a user process causes a fault.
|
2020-04-24 22:19:41 -04:00 |
|
Stephen Marz
|
bb74161466
|
Remove use
|
2020-04-24 19:58:29 -04:00 |
|
Stephen Marz
|
2eb8acabd7
|
Remove syscall_exit, kernel processes will return via RA
|
2020-04-24 19:55:49 -04:00 |
|
Stephen Marz
|
71702acd43
|
Added comments and formatted.
|
2020-04-24 19:30:00 -04:00 |
|
Stephen Marz
|
0d924e6fab
|
Fixed not waking up the process who made the request.
|
2020-04-24 19:26:44 -04:00 |
|
Stephen Marz
|
4c31f8c563
|
Add inode number to fs_read
|
2020-04-24 19:22:27 -04:00 |
|
Stephen Marz
|
a113db700a
|
Added RA to call syscall_exit for kernel processes.
|
2020-04-24 19:16:45 -04:00 |
|
Stephen Marz
|
8ae5ebb085
|
Added syscall_block_read and syscall_fs_read.
|
2020-04-24 18:56:32 -04:00 |
|
Stephen Marz
|
8081863709
|
Fix inits loop. We will use WFI to avoid hogging resources.
|
2020-04-24 18:48:19 -04:00 |
|
Stephen Marz
|
e0a8be5522
|
Don't let init sleep. This will cause us to hang in the scheduler.
|
2020-04-24 18:47:49 -04:00 |
|
Stephen Marz
|
58ab3f3b6f
|
Don't let init sleep. This will cause us to hang in the scheduler.
|
2020-04-24 18:46:31 -04:00 |
|
Stephen Marz
|
73636c1de1
|
Updates to add a process for a file system read in the system call.
|
2020-04-24 18:37:48 -04:00 |
|
Stephen Marz
|
2e48b86656
|
Auto-drop processes, and added delete process.
|
2020-04-24 15:22:57 -04:00 |
|
Stephen Marz
|
a60d84ed98
|
Start adding block device stuff and file system stuff. Added test for block driver as a process.
|
2020-04-24 14:39:56 -04:00 |
|
Stephen Marz
|
599627b74a
|
Updated to allow for system calls that change process state
|
2020-04-24 14:39:33 -04:00 |
|
Stephen Marz
|
e39f6b71c5
|
Added information for release builds
|
2020-04-21 20:31:27 -04:00 |
|
Stephen Marz
|
625df1cf46
|
Added testing shell, no testing, yet.
|
2020-04-21 20:30:09 -04:00 |
|
Stephen Marz
|
da92f55d1b
|
Added codegen-units to avoid SEGV
|
2020-04-21 20:27:13 -04:00 |
|
Stephen Marz
|
8b2b670deb
|
Add testing shell
|
2020-04-21 20:25:39 -04:00 |
|
Stephen Marz
|
b3e99659de
|
Initial fix
|
2020-04-21 20:23:39 -04:00 |
|
Stephen Marz
|
f9572be05a
|
Add options in Cargo.toml for lto and optimizer
|
2020-04-21 20:21:56 -04:00 |
|
Stephen Marz
|
1ae7b115f7
|
Let's try BUILD.md this way
|
2020-04-21 20:14:20 -04:00 |
|
Stephen Marz
|
e6d9807c11
|
Short instructions for building.
|
2020-04-21 20:13:51 -04:00 |
|
Stephen Marz
|
d1dc1d7b32
|
Get rid of Makefile, use cargo build and cargo run now.
|
2020-04-21 19:51:30 -04:00 |
|
Stephen Marz
|
1c329244ce
|
Use Rust out-of-the-box now that it has full support for RISC-V. We need
cargo-binutils and so forth to run these. But, for now all we need is to
run cargo run and it should invoke qemu for us based on .cargo/config
|
2020-04-21 19:49:23 -04:00 |
|
Stephen Marz
|
86018d30a3
|
Added assembly module so that Rust will import RISC-V assembly code
without using GNU tools
|
2020-04-21 19:48:19 -04:00 |
|
Stephen Marz
|
aba5fe0e24
|
Use cargo to build out-of-the-box here.
|
2020-04-21 19:47:57 -04:00 |
|
Stephen Marz
|
abd3048afa
|
Use Rust's global_asm to import assembly files
|
2020-04-21 19:47:38 -04:00 |
|
Stephen Marz
|
4767b6d698
|
Fixed used index and available index. These are modded by the queue size in the ring only. The index continues to increase until it naturally wraps at the data size
|
2020-04-12 21:37:06 -04:00 |
|
Stephen Marz
|
fb3a9ccdae
|
Test block device
|
2020-03-31 11:41:32 -04:00 |
|
Stephen Marz
|
ce5e8b17b2
|
Fixed C++ isms when translating to Rust
|
2020-03-28 21:06:31 -04:00 |
|
Stephen Marz
|
55bcc79736
|
Added MmioDevice structure to put a structure to the MMIO virtio address space.
|
2020-03-28 21:05:45 -04:00 |
|
Stephen Marz
|
d2ab4a1ad7
|
Rename inode to node for a more generic filesystem.
|
2020-03-18 22:37:12 -04:00 |
|
Stephen Marz
|
61d8ace581
|
Added more FS stuff.
|
2020-03-18 22:01:05 -04:00 |
|
Stephen Marz
|
e033feee2b
|
Documentation says 0x80000, but I left off a zero :( Thanks to QiuhaoLi
|
2020-03-18 10:41:57 -04:00 |
|
Stephen Marz
|
b39db75cf4
|
Add fs and minix
|
2020-03-18 10:40:27 -04:00 |
|
Stephen Marz
|
d6bf3d2685
|
Remove testing code, change comments
|
2020-03-16 15:05:04 -04:00 |
|
Stephen Marz
|
40977c2e45
|
Add global entropy device list
|
2020-03-16 14:02:28 -04:00 |
|
Stephen Marz
|
4fd36bf898
|
Move individual chapters, use tags from now on
|
2020-03-15 20:21:42 -04:00 |
|
Stephen Marz
|
c184aae307
|
Add rng.rs for ch9 and overall
|
2020-03-15 20:18:46 -04:00 |
|
Stephen Marz
|
703c2cf5b0
|
Finish virtio
|
2020-03-15 20:18:09 -04:00 |
|
Stephen Marz
|
858c838e73
|
Updates to power of two ring size
|
2020-03-15 11:11:59 -04:00 |
|
Stephen Marz
|
973ec7449b
|
Added comments to describe functions and enumerations. Also, assumptions have been spelled out.
|
2020-03-15 11:09:01 -04:00 |
|
Stephen Marz
|
ea4c8ae9c2
|
Shortened some code using Rust
|
2020-03-13 21:45:13 -04:00 |
|
Stephen Marz
|
50df049fbb
|
I messed up the header size, which is why writes failed
|
2020-03-13 20:01:02 -04:00 |
|
Stephen Marz
|
a6c0ff96fe
|
Remove mepc, satp, and pid, we get these from the frame address
|
2020-03-13 19:38:31 -04:00 |
|
Stephen Marz
|
4487295308
|
Remove frame extraction
|
2020-03-13 19:38:06 -04:00 |
|
Stephen Marz
|
c3e7451997
|
Change trap frame structure to new function, and added quantum multiplier
|
2020-03-13 19:37:44 -04:00 |
|
Stephen Marz
|
f881eacf26
|
Remove unused imports, status isn't currently being used in trap, and removed unsafe from trap 7
|
2020-03-13 19:37:21 -04:00 |
|
Stephen Marz
|
44f2f3acb5
|
Changed testing apparatus
|
2020-03-13 19:36:53 -04:00 |
|
Stephen Marz
|
46afb47ab6
|
changed used ring to be page aligned
|
2020-03-13 19:36:34 -04:00 |
|
Stephen Marz
|
0954532a5b
|
changed used ring to be page aligned
|
2020-03-13 19:36:24 -04:00 |
|
Stephen Marz
|
cfbc4b516a
|
Remove block::init, it's not necessary anymore
|
2020-03-13 15:33:37 -04:00 |
|
Stephen Marz
|
8f55a9a6ec
|
Remove reference when using ref
|
2020-03-13 15:31:47 -04:00 |
|