Commit graph

257 commits

Author SHA1 Message Date
ddb1b65d61 Minor comments. 2025-02-14 08:05:35 +01:00
ca88006b5b Exercise 2.9.1 2025-02-10 06:01:08 +01:00
Robert Morris
de247db5e6 menvcfg also 2024-09-04 17:29:58 -04:00
Robert Morris
4060b671d8 change stimecmp to 0x14d 2024-09-04 15:21:52 -04:00
Robert Morris
f8bd2f9739 synchronize usertests and exec with util lab 2024-08-10 05:08:04 -04:00
Frans Kaashoek
e5d80dfee5 x 2024-07-26 20:10:08 -04:00
Frans Kaashoek
47cdb5f096 wfi to save CPU time on Athena 2024-07-26 20:08:40 -04:00
Frans Kaashoek
4d4d066d9f Thanks Taojie 2024-07-26 19:53:53 -04:00
Frans Kaashoek
6cc3d4f7de Thanks phosphagos@github 2024-07-26 19:43:03 -04:00
x653
72cb3849eb Update uart.c
added read of register ISR to clear interrupt source of UART16550.
2024-07-26 19:04:07 -04:00
Wenyang Duan
343d1ab482 Put parentheses around macro argument.
It might be too paranoid but makes it safe to deal with operators
with lower priorities than '+', '<<' for example.
2024-07-26 19:02:01 -04:00
Robert Morris
92e60dd833 switch from machine-mode to supervisor timer interrupts.
this requires qemu version >= 7.2.
2024-07-10 07:29:26 -04:00
Robert Morris
fe940f4d63 fix user.ld to get read-only text with riscv64-linux-gnu-ld 2.41 2024-01-01 13:10:35 -05:00
Robert Morris
dd2574bc10 tell gcc to check printf format strings
add %ld %lld %u %lu %llu %lx %llx to kernel and user printf
2023-12-31 12:21:46 -05:00
Robert Morris
2b552503c0 no need to check state == RUNNING in timer interrupt because
interrupts are always off (i.e. a lock is held) any time the
current process is not in RUNNING state.
2023-10-14 06:24:14 -04:00
Robert Morris
0c32c04b29 kernelvec only needs to save caller-saved registers 2023-10-14 06:23:09 -04:00
asselism
74c1eba516 Made va and size page aligned in mappages 2022-10-18 00:11:49 -04:00
Robert Morris
0802d56a9b x 2022-10-17 04:10:01 -04:00
Robert Morris
4a88273db5 oops. scheduler() inherits the interrupt status of the
most recent process to run, so it must explicitly
turn them on again. It would be better if cpu->intena
were really thread->intena.
2022-10-17 04:07:24 -04:00
Robert Morris
f376ad7f1f scheduler()'s intr_on() is in the wrong place, reflecting
the locking scheme from long ago.
2022-10-16 15:28:21 -04:00
Robert Morris
348cf7fee4 forkret first memory model 2022-10-12 13:07:55 -04:00
Robert Morris
d2b2dff749 fix copyout() to refuse to write a read-only page 2022-10-04 11:52:57 -04:00
Frans Kaashoek
989e8f2f1f Remove unused PLIC_M* macros 2022-09-18 16:32:21 -04:00
Robert Morris
463ae0abc3 handle negative arguments to sleep() a little better 2022-09-09 09:17:37 -04:00
Robert Morris
ed101befee comment the sfences 2022-08-24 13:47:47 -04:00
Robert Morris
581bc4cbd1 sfence before enabling paging 2022-08-24 13:42:59 -04:00
Robert Morris
29ce3161f8 Merge branch 'riscv' of g.csail.mit.edu:xv6-dev into riscv 2022-08-24 13:24:37 -04:00
Robert Morris
9c1b8a4eb0 sfence before writing satp, as well as after 2022-08-24 13:24:24 -04:00
Frans Kaashoek
cc486ddee0 Help students read this C syntax 2022-08-24 08:57:56 -04:00
Robert Morris
96047832c6 Merge branch 'riscv' of g.csail.mit.edu:xv6-dev into riscv 2022-08-23 12:26:39 -04:00
Robert Morris
7c1810e1ae tolerate running out of inodes 2022-08-23 12:26:26 -04:00
Frans Kaashoek
ac8c0bb177 x 2022-08-23 11:56:29 -04:00
Frans Kaashoek
858fc68bdf Linker script makes binaries bigger; use larger disk so that usertests
can run.

Must assumed_free in badwrite() be adjusted?
2022-08-23 11:19:33 -04:00
Frans Kaashoek
ccb7bd14c7 Merge branch 'riscv' into uvm-perm 2022-08-23 11:01:06 -04:00
Frans Kaashoek
4cd4d194b8 Use simple linker script to force data segment to be page aligned 2022-08-23 10:54:40 -04:00
Robert Morris
8621be8f3d tolerate out of disk when creating . and .. in mkdir() 2022-08-23 08:52:15 -04:00
Robert Morris
dc405cdb7b don't panic if out of disk space when extending a directory. 2022-08-23 08:23:12 -04:00
Frans Kaashoek
cd6207a972 Merge branch 'riscv-killed' into riscv 2022-08-23 07:31:08 -04:00
Frans Kaashoek
2f0b4d698b Use pp instead of np to be more consistent 2022-08-22 19:58:33 -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
7086197c27 Simplify uartputc slightly (thanks Harry Porter) 2022-08-22 19:36:11 -04:00
Robert Morris
63ef3b8c9f slightly better comments 2022-08-22 13:49:15 -04:00
Frans Kaashoek
1d4c437ea1 Use uint64 (thanks carlclone and Harry Porter) 2022-08-17 20:37:22 -04:00
Frans Kaashoek
cef1b57d4a Compile user binary to map text without W and data without X
Use the flags in elf header to set vm permissions
Modify pgbug() so that usertests text segment is without W
Add test to check app cannot write text segment
2022-08-15 19:02:19 -04:00
Frans Kaashoek
7a6d57235c Costmestic change (thanks Harry Porter) 2022-08-12 14:59:30 -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
8f58cc7df9 Cosmetic change (thanks Harry Porter) 2022-08-12 12:59:33 -04:00
Frans Kaashoek
62bc610424 cosmetic changes (thanks Harry Porter) 2022-08-12 11:47:39 -04:00
Frans Kaashoek
dd5a720044 cosmetic changes (thanks Harry Porter) 2022-08-12 10:57:16 -04:00
Frans Kaashoek
8bd04852c9 Delete rtcdate, which is a left-over from an old lab (thanks Harry Porter) 2022-08-12 09:43:18 -04:00