Frans Kaashoek
ac8c0bb177
x
2022-08-23 11:56:29 -04:00
Frans Kaashoek
ccb7bd14c7
Merge branch 'riscv' into uvm-perm
2022-08-23 11:01:06 -04:00
Frans Kaashoek
cd6207a972
Merge branch 'riscv-killed' into riscv
2022-08-23 07:31:08 -04:00
Frans Kaashoek
2a391ebc8b
Make argint() and argaddr() of type void (thanks Harry Porter)
2022-08-22 19:53:09 -04:00
Frans Kaashoek
899cc02660
Experiment with being more precise setting permissions for user pages.
...
Growing adds R|W pages (without X). Exec() marks the stack only R|W.
Probably could setup permissions for text and data better if we call
ld with --no-omagic instead of -N.
2022-08-12 13:22:10 -04:00
Frans Kaashoek
4f716c8550
Use p->lock to read p->killed
2022-08-11 14:22:00 -04:00
Frans Kaashoek
975f3b31d3
Clean up using killed()
2022-08-11 07:23:17 -04:00
Robert Morris
c908d20132
put walk() in defs.h so it's clear students can call it
2022-08-10 07:21:50 -04:00
Robert Morris
7d8bfdcbe3
nothing much
2022-08-09 15:11:25 -04:00
OptimisticSide
1226b09dc4
Remove setproc prototype
2021-08-31 14:14:38 -04:00
Frans Kaashoek
d4cecb269f
kvmmake() makes a complete kernel page table, matching Figure 3.3
2020-10-14 20:28:16 -04:00
Robert Morris
c61cc69413
eliminate virtio DMA into kernel stacks.
2020-10-05 19:30:27 -04:00
Frans Kaashoek
0bb2533f73
Adjust a few prototypes to be explicit that they don't take arguments
2020-08-21 11:00:45 -04:00
Robert Morris
0f50e9527c
fix printf() in interrupts
2020-08-10 11:19:10 -04:00
Robert Morris
27057bc9b4
interrupt-driven uart output, hopefully a nice example for teaching.
2020-08-10 11:19:10 -04:00
Robert Morris
af9eb9114c
make "echo hello > x" truncate file x.
2020-08-10 11:19:10 -04:00
Robert Morris
56583b1402
updated alarmtest
2019-10-03 15:02:19 -04:00
Frans Kaashoek
7e6c37e67e
Support exit status for exit/wait
...
One test case for returning a exit status
Passes usertests, but haven't used it to simplify tests
2019-09-10 12:30:10 -04:00
Frans Kaashoek
2501560cd6
Cosmetic cleanup: fsinit reads sb and calls loginit. initialize icache
...
in main.c and don't make it disk specific; the icache is shared. This
doesn't matter since we have only one disk, but conceptually cleaner
and maybe helpful to students for mount lab.
2019-08-18 14:35:11 -04:00
Frans Kaashoek
f37a3e3964
Make pin/unpin explicit
2019-07-30 08:54:43 -04:00
Frans Kaashoek
5304310452
Remove B_DIRTY
...
Use refcnt to pin blocks into the cache
Replace flags/B_VALID with a boolean field valid
Use info[id].status to signal completion of disk interrupt
Pass a read/write flag to virtio_disk_rw
2019-07-29 17:33:16 -04:00
Robert Morris
6507da772d
argptr no longer needed, since copyin checks
2019-07-28 06:29:37 -04:00
Robert Morris
281d450a08
split printf into a separate file, to make console.c more like a driver
2019-07-27 03:49:03 -04:00
Robert Morris
cc1a303d09
fetchint isn't used any more
2019-07-26 12:34:06 -04:00
Robert Morris
b19adf79f9
purge x86 stuff from defs.h
2019-07-25 05:37:35 -04:00
Robert Morris
9a817bd134
rationalize some vm function names
2019-07-24 15:28:37 -04:00
Robert Morris
a77287e924
no more PAGEBREAK
2019-07-24 13:33:43 -04:00
Robert Morris
54178ad94d
simplify kernel mapping calls
2019-07-23 12:17:17 -04:00
Frans Kaashoek
6c78af4a57
fix mapkstack
2019-07-22 20:58:15 -04:00
Frans Kaashoek
b2e9c8eea5
Clear U bit for second stack page so that it functions as a guard page
2019-07-22 15:38:08 -04:00
Frans Kaashoek
9156632701
One way of supporting a guard page below kstack: allocate kstacks in
...
procinit() and map them high up (below TRAMPOLNE) with an empty
mapping below each stack. Never free a kernel stack.
Another way would be to allocate and map them dynamically, but then we
need to reload page table when switching processes in scheduler()
and/or have a kernel pagetable per proc (if we want k->stack to be the
same virtual address in each process).
One gotcha: kernel addresses are not equal to physical addresses for
stack addresses. A stack address must be translated if we need its
physical address (e.g., virtio passes a stack address to the disk).
2019-07-19 08:38:51 -04:00
Robert Morris
f59c1bf1d8
try to continue from walk() failing to allocate a page-table page
2019-07-02 11:45:06 -04:00
Robert Morris
abfe9999f4
have fork() fail, not panic, if not enough phys mem
2019-07-01 17:46:06 -04:00
Robert Morris
de9d72c908
virtio disk driver
2019-06-13 06:49:02 -04:00
Robert Morris
5753553213
separate source into kernel/ user/ mkfs/
2019-06-11 09:57:14 -04:00