Stephen Marz
|
e811451879
|
Clean up context switch code.
|
2020-05-17 17:30:10 -04:00 |
|
Stephen Marz
|
ba661749fc
|
Don't let scheduler grab a lock. If it can't get the lock, then go back to the process that caused this.
|
2020-05-17 15:26:20 -04:00 |
|
Stephen Marz
|
f5c94e377b
|
Protect the process list using mutex.
|
2020-05-17 15:20:30 -04:00 |
|
Stephen Marz
|
43e18b498d
|
Don't grab the table unless we really need it.
|
2020-05-17 15:13:53 -04:00 |
|
Stephen Marz
|
fe023e026e
|
Add testing printout.
|
2020-05-17 15:08:01 -04:00 |
|
Stephen Marz
|
9326255507
|
Get rid of unnecessary cast.
|
2020-05-17 15:07:03 -04:00 |
|
Stephen Marz
|
d6843c1b20
|
Create an exec system call and move loading an ELF file into that.
|
2020-05-17 15:06:30 -04:00 |
|
Stephen Marz
|
c68a0db582
|
We will need an exec type system call. The majority of the test code will need to work in there.
|
2020-05-16 12:17:58 -04:00 |
|
Stephen Marz
|
e3e8ba8ae6
|
Missed a register in the trap frame
|
2020-05-16 10:58:13 -04:00 |
|
Stephen Marz
|
c2ef6130fb
|
Use a map for environment variables in a process.
|
2020-05-16 10:43:21 -04:00 |
|
Stephen Marz
|
2d74b6e6fa
|
Formatting
|
2020-05-16 10:41:38 -04:00 |
|
Stephen Marz
|
23bca871a6
|
Change Buffer to accept usize and implement Clone
|
2020-05-15 19:36:24 -04:00 |
|
Stephen Marz
|
ff064acb3b
|
Replace after take for open
|
2020-05-15 14:43:44 -04:00 |
|
Stephen Marz
|
720d084364
|
During a trap, only save the FPU if the process changed them.
|
2020-05-15 13:11:19 -04:00 |
|
Stephen Marz
|
3793ad1e87
|
Added kernel support for floating point registers.
|
2020-05-15 13:01:57 -04:00 |
|
Stephen Marz
|
c649947707
|
Added Registers to CPU so we don't have to hardcode the register number. This makes it easier to read and figure out what's happening
|
2020-05-15 12:48:05 -04:00 |
|
Stephen Marz
|
adcc06d07a
|
Update syntax.
|
2020-05-15 12:38:48 -04:00 |
|
Stephen Marz
|
8a0c87a103
|
use &str instead of String for paths.
|
2020-05-15 12:36:49 -04:00 |
|
Stephen Marz
|
c435371969
|
Updates
|
2020-05-15 12:35:29 -04:00 |
|
Stephen Marz
|
9de528877c
|
Updates
|
2020-05-15 12:35:18 -04:00 |
|
Stephen Marz
|
26947251be
|
Add warnings
|
2020-05-15 12:32:39 -04:00 |
|
Stephen Marz
|
3dd49c615e
|
Use global cache. fs::init will now check to see if the global cache is good or not. If it is already good, do nothing, otherwise cache the inodes.
|
2020-05-15 12:29:59 -04:00 |
|
Stephen Marz
|
8e414c62be
|
Use Result instead of Option with LoadErrors
|
2020-05-15 12:11:28 -04:00 |
|
Stephen Marz
|
4a9aa3f658
|
Add comments
|
2020-05-15 12:05:18 -04:00 |
|
Stephen Marz
|
33f701e7ca
|
Formatted elf.rs
|
2020-05-15 12:03:24 -04:00 |
|
Stephen Marz
|
1de325b325
|
Add load_proc to load an ELF and give a process.
|
2020-05-15 12:01:03 -04:00 |
|
Stephen Marz
|
c74316adb5
|
Added ELF loader in elf.rs
|
2020-05-15 11:46:51 -04:00 |
|
Stephen Marz
|
bb4f3bc0a6
|
Move BlockBuffer to buffer.rs and renamed to Buffer.
|
2020-05-15 11:46:42 -04:00 |
|
Stephen Marz
|
f781c511f4
|
Let Rust figure out the data type String
|
2020-05-15 11:12:07 -04:00 |
|
Stephen Marz
|
9d6ee9fb35
|
Added comments and shrunk string
|
2020-05-15 11:11:20 -04:00 |
|
Stephen Marz
|
69c7e6c390
|
Reformatted
|
2020-05-15 11:00:51 -04:00 |
|
Stephen Marz
|
e1b2150f1b
|
Reduce stack size to 5 pages
|
2020-05-15 10:54:02 -04:00 |
|
Stephen Marz
|
f8fad1804f
|
Updated file string to avoid creating strings twice in test.
|
2020-05-15 10:40:37 -04:00 |
|
Stephen Marz
|
5b5e5d9e2b
|
Fix warnings
|
2020-05-15 10:37:40 -04:00 |
|
Stephen Marz
|
6367e064cf
|
Reworked file system, still much to do, however, now we can get a file by its name instead of inode number.
|
2020-05-15 10:34:37 -04:00 |
|
Stephen Marz
|
ea33bfe629
|
Added starting point for GPU code.
|
2020-05-15 10:34:22 -04:00 |
|
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 |
|