Commit graph

1522 commits

Author SHA1 Message Date
RayAndrew
93c70ce0f9 Remove all files created during testing
Remove the following files to restore the state of the filesystem,
so subsequent tests don't fail unexpectedly by creating same filename.

q0             2 21 0
q?             2 22 0
q;             2 23 0
qC             2 24 0
q=             2 25 0
qA             2 26 0
q:             2 27 0
q<             2 28 0
q>             2 29 0
q@             2 30 0
qB             2 31 0
r0             2 32 0
r?             2 33 0
r;             2 34 0
rC             2 35 0
r=             2 36 0
rA             2 37 0
r:             2 38 0
r<             2 39 0
r>             2 40 0
r@             2 41 0
rB             2 42 0
s0             2 43 0
s?             2 44 0
s;             2 45 0
sC             2 46 0
s=             2 47 0
sA             2 48 0
s:             2 49 0
s<             2 50 0
s>             2 51 0
p?             2 52 0
p;             2 53 0
pC             2 54 0
p=             2 55 0
pA             2 56 0
p:             2 57 0
p<             2 58 0
p>             2 59 0
p@             2 60 0
pB             2 61 0
s@             2 62 0
sB             2 63 0
2024-07-26 19:11:05 -04:00
RayAndrew
7687b389c2 Report an error when n is not equal to MAXFILE
The variable `n` represents the number of blocks that have been read.
2024-07-26 19:10:21 -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
5a1a4d45a4 slightly more thorough testing that one can't write invalid addresses 2024-01-01 16:10:02 -05: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
Frans Kaashoek
4b46c0c6eb Use O_RDONLY instead of 0 2022-09-11 13:51:11 -04:00
Robert Morris
463ae0abc3 handle negative arguments to sleep() a little better 2022-09-09 09:17:37 -04:00
Frans Kaashoek
f5b93ef12f Update acks
61810
2022-08-25 14:20:52 -04:00
Frans Kaashoek
3d6ce9b308 Separate tests in slow and quick. The slow tests run xv6 out of
memory, out of disk space, or test big directories.

Support -q option to run only the quick tests, which saves about
7mins.

Clean up driver by removing duplicated code.
2022-08-25 09:45:35 -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
948cfbdb1f Rename test to textwrite 2022-08-23 11:21:26 -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
bc48c2be47 Add ref to this nice page about Chapter 9's regexp matcher 2022-08-22 20:44:02 -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
f2ee8690ad x 2022-08-17 20:38:11 -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
2175c6b0b6 Run tests in the order in which they appear in the file 2022-08-15 19:01:34 -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