Commit graph

1304 commits

Author SHA1 Message Date
Robert Morris 46744c4a13 for spinlocks, use gcc intrinsics, but say what they compile to 2019-06-13 10:00:50 -04:00
Robert Morris ca39672a30 clean up virtio code 2019-06-13 09:40:17 -04:00
Robert Morris 4adf016925 eliminate ramdisk 2019-06-13 06:57:38 -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
Robert Morris 91ba81110a gdb backtraces: -ggdb, -fno-omit-frame-pointer, BSIZE=1024 2019-06-06 13:54:03 -04:00
Robert Morris 8607051b5f fix a create()/unlink() deadlock 2019-06-06 10:38:11 -04:00
Robert Morris 31ef85f552 add plic.c 2019-06-06 05:19:59 -04:00
Robert Morris b05bcce939 add kernelvec 2019-06-06 05:19:35 -04:00
Robert Morris dff7ab3f8f make -O work with asm volatile(...) 2019-06-05 15:05:56 -04:00
Robert Morris 5684556c19 clean up -Wall 2019-06-05 14:31:13 -04:00
Robert Morris 5eb1cb4972 push_off() and pop_off() in myproc() 2019-06-05 14:14:57 -04:00
Robert Morris 3113643768 spinlocks using gcc intrinsics
push_off() / pop_off()
set up per-hart plic stuff so all harts get device interrupts
2019-06-05 14:05:46 -04:00
Robert Morris f1a727b971 start at support for multiple CPUs 2019-06-05 11:42:03 -04:00
Robert Morris ec3d3a1fce yield if timer interrupt
all user tests passed
2019-06-04 14:25:48 -04:00
Robert Morris a82772594e timer interrupts -> supervisor software interrupt 2019-06-04 14:20:37 -04:00
Robert Morris cff3ce6e04 more sbrk fixes 2019-06-04 11:31:50 -04:00
Robert Morris 0e131b2263 fix a problem with end. make uartputc() wait until h/w is ready. 2019-06-04 10:43:45 -04:00
Robert Morris b78894f34e check that arguments aren't more than a page in exec() 2019-06-04 06:51:01 -04:00
Robert Morris 0f684b9150 fix exec argc 2019-06-04 06:45:09 -04:00
Robert Morris 8baac76050 support read() and write() bigger than one page 2019-06-04 05:57:47 -04:00
Robert Morris cefe223bf5 console input and sbrk 2019-06-03 17:59:17 -04:00
Robert Morris efecbee7c0 xx 2019-06-03 17:49:27 -04:00
Robert Morris 6eae1be755 push/pop all registers when handling interrupt from kernel 2019-06-03 15:23:12 -04:00
Robert Morris e630e0743b xx 2019-06-03 14:16:51 -04:00
Robert Morris a9c1a6f742 takes one uart input interrupt, then panics 2019-06-03 14:13:07 -04:00
Robert Morris 50cbc75102 first shell prints $ prompt, though no console input yet 2019-06-01 05:33:38 -04:00
Robert Morris 7fd1f1eb0a exec compiles but argstr() doesn't work yet 2019-05-31 12:43:20 -04:00
Robert Morris 5d34fa2a48 -initrd fs.img, ramdisk.c, file system 2019-05-31 11:45:42 -04:00
Robert Morris 2ec1959fd1 fork/wait/exit work 2019-05-31 09:45:59 -04:00
Frans Kaashoek 0f90388c89 No T_SYSCALL 2018-10-10 21:50:58 -04:00
Frans Kaashoek a7ca32e3a3 Change mycpu() to use %gs. 2018-10-09 20:22:48 -04:00
Frans Kaashoek 821ee3fc99 not much 2018-10-09 19:33:06 -04:00
Frans Kaashoek 54e6f829e4 Separate system call path from trap path. Passes usertests on 1 and 2 cpus. 2018-10-09 14:28:54 -04:00
Frans Kaashoek f241e67d91 x 2018-10-07 18:14:53 -04:00
Frans Kaashoek 704775b63d Make names line up with text 2018-10-04 09:21:36 -04:00
Frans Kaashoek 2fa3a8fd05 Oops, didn't commit these changes with last commit 2018-10-04 09:21:10 -04:00
Frans Kaashoek a7ef9a40c4 x 2018-10-03 21:00:32 -04:00
Frans Kaashoek 7ccc5f5f4f Names of text are better. 2018-10-03 20:14:36 -04:00
Frans Kaashoek eb72653bd7 use x86-64 names 2018-10-03 18:13:51 -04:00
Frans Kaashoek 23a58370a4 Switch back bpmain back to main 2018-10-03 17:58:21 -04:00
Frans Kaashoek 020fc6a1c6 don't care about bootloader 2018-10-03 07:53:37 -04:00
Frans Kaashoek 343080f7ae Remove unused typedefs 2018-10-02 09:06:41 -04:00
Frans Kaashoek ec110149ed simplify layout pic 2018-10-02 08:50:05 -04:00
Frans Kaashoek a0389f707f Remove now unused PDX 2018-10-02 08:43:25 -04:00
Frans Kaashoek d448fd5e6c Simplify by freeing user part of addres pace in one page increments. This
undoes commit ffe444 and 052e18, which skipped page directories, but was
tailored to two-level page table.  Undoing doesn't seem to affect boottime for
xv6 visibly.
2018-10-02 08:40:01 -04:00
Frans Kaashoek a42b7d5dbb Simplify freeing page table 2018-10-02 08:12:01 -04:00
Frans Kaashoek 155c13b7f8 Avoid repition in walkpgdir 2018-10-02 07:37:49 -04:00
Frans Kaashoek 572e106e6f x 2018-09-29 09:05:25 -04:00
Frans Kaashoek 3bfcaeaf01 Make sysexit and trapret paths the same, so that forkret can return through
either path.  This helped tracking down a bug: use 144 instead of 32 to find cs
in trapframe so that gs is correctly saved and restored.

For good measure update linker script, because newer versions of GCC sometimes
places symbols passed end.
2018-09-29 08:34:41 -04:00