Commit graph

133 commits

Author SHA1 Message Date
Frans Kaashoek 1f555198d6 Change tf -> trapframe in a few comments 2020-08-10 11:19:10 -04:00
Robert Morris 7f35d7a14e modify each page in usertests countfree()
get rid of static for walk() and freewalk()
2020-08-10 11:19:10 -04:00
Robert Morris 2ae9c8e272 defines for UART register bits 2020-08-10 11:19:10 -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 1e72d5ca08 cpu->scheduler -> cpu->context to reduce confusion 2020-08-10 11:19:10 -04:00
Robert Morris 5494c91705 rename p->tf to p->trapframe, for consistency with p->context 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 028af27646 mention LRU list a bit more in comments. 2019-10-29 04:32:55 -04:00
Robert Morris e7ffb74ad1 fix a potential memory leak 2019-10-27 13:36:46 -04:00
Robert Morris d9160fb4b9 nits 2019-10-27 08:03:19 -04:00
Anish Athalye f2ab0eb644 Clean up linker script
This patch does the following:

- Add .text.* to the .text section in the output
- Add an assertion that the trampoline does not overflow a page
- Add the .rodata section
- Make .sdata and .sdata.* (which is for small data) be absorbed into
  the .data section, because we don't need to distinguish between them;
  this prevents .sdata from appearing in the output
- Make the analogous change for .srodata and .sbss
- Make all the data sections 16-byte aligned

This patch also updates the .editorconfig for *.ld files.
2019-10-21 22:27:18 -04:00
Robert Morris 2821d43cc9 nits 2019-10-16 12:27:08 -04:00
Robert Morris 56583b1402 updated alarmtest 2019-10-03 15:02:19 -04:00
Robert Morris deaff5d8a6 no buf->qnext 2019-09-24 14:41:51 -04:00
Xi Wang 9ead904afe fix major validation
fileread/filewrite should validate major to avoid buffer overflows
or bogus function pointers.
2019-09-23 20:01:56 -04:00
Robert Morris 37df68e5de story is more complex than I thought. 2019-09-23 07:24:41 -04:00
Robert Morris d175beadf5 bug fix: reparent() sometimes deadlocked
bug fix: exit() sometimes released a different parent lock than it acquired
usertests
2019-09-23 06:50:25 -04:00
Robert Morris d940fd122d don't leak memory if exec() arguments are invalid. 2019-09-21 04:54:25 -04:00
Robert Morris 7c7ed20822 don't leak a file system block if the buf argument to write is invalid
and a usertest
2019-09-20 13:09:26 -04:00
Robert Morris e1a37303c8 yet another sbrk() bug fix, and usertest 2019-09-20 12:13:57 -04:00
Robert Morris 4de161f973 don't panic if a program frees all its memory with sbrk().
if a program sbrk()'s to a non-page-boundary, don't free that page.
corresponding usertests.
2019-09-20 11:35:27 -04:00
Robert Morris ca30cac702 more incorrect cast to uint 2019-09-20 10:27:03 -04:00
Robert Morris 402e7b5605 fix a potential kernel crash
add a regression test for it
2019-09-20 09:41:03 -04:00
Robert Morris 57e40a0204 nits 2019-09-20 06:02:47 -04:00
Robert Morris 2df42355f7 all of PTE_FLAGS 2019-09-17 06:07:58 -04:00
Robert Morris 036b5edf12 set architecture riscv:rv64 -- fix gdb trampoline disassembly, thanks jonathan 2019-09-12 10:48:48 -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 035cca95fe Make the end variable be really at the end of bss, and delete + 4096 in freerange() 2019-09-08 15:19:19 -04:00
Robert Morris e5b7fa62cc thanks to Anthony Coulter 2019-09-08 06:51:58 -04:00
Robert Morris 25e113138d sfence.vma in trampoline as well 2019-09-03 16:29:48 -04:00
Robert Morris 9b9e2dd0f2 fix sfence_vma comment 2019-09-03 16:25:11 -04:00
Robert Morris 86a1d4b295 sfence_vma after satp 2019-09-03 15:45:07 -04:00
Frans Kaashoek 510bcde894 Add major/minor/mkdev
Maybe apply this change to master
2019-08-23 19:41:53 -04:00
Frans Kaashoek d98ddadd79 Also release buffer on failed copyout 2019-08-20 12:46:56 -04:00
Frans Kaashoek 6005ef5a1c Release buffer also when copyin fails 2019-08-20 11:57:24 -04:00
Frans Kaashoek d9818b89e1 512 -> BSIZE 2019-08-20 11:56:56 -04:00
Frans Kaashoek a825f22cf8 Merge remote-tracking branch 'origin/master' into riscv 2019-08-19 19:27:29 -04:00
Frans Kaashoek 21ad8c76bc A few now unused DOC 2019-08-19 18:12:19 -04:00
Frans Kaashoek e10f797762 Merge remote-tracking branch 'origin/master' into riscv 2019-08-19 13:35:47 -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 e398a9815c Wrap state of disk driver in a struct so that it is easier to support
several disks (e.g., in a mount lab).
2019-08-12 07:20:32 -04:00
Robert Morris 0c10cbe829 syscall lab nits 2019-08-02 11:55:26 -04:00
Frans Kaashoek 62ece4b09e Merge branch 'riscv-bcache' into riscv 2019-08-01 15:46:50 -04:00
Robert Morris fb8a0099d4 fences for starting 2019-08-01 14:59:20 -04:00
Robert Morris d600026c3f cut ramdisk 2019-07-30 16:06:00 -04:00
Frans Kaashoek 848d1906e8 Track in buf if disk "owns" buffer 2019-07-30 12:53:19 -04:00
Frans Kaashoek f37a3e3964 Make pin/unpin explicit 2019-07-30 08:54:43 -04:00
Frans Kaashoek f1bb53c690 The driver should free descriptors, not interrupt handler. This
avoids handler freeing descriptors before driver sees that the request
has completed.
2019-07-30 08:13:03 -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