Commit graph

10 commits

Author SHA1 Message Date
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
Robert Morris
9a817bd134 rationalize some vm function names 2019-07-24 15:28:37 -04:00
Robert Morris
54178ad94d simplify kernel mapping calls 2019-07-23 12:17:17 -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
6bbc2b2245 cosmetic changes 2019-07-11 10:38:56 -04:00
Frans Kaashoek
2c0338fe42 x 2019-07-01 08:28:14 -04:00
Frans Kaashoek
af6c35e14b Introduce alloc3_desc and UsedArea to make code easier to read 2019-07-01 08:20:35 -04:00
Robert Morris
ca39672a30 clean up virtio code 2019-06-13 09:40:17 -04:00
Robert Morris
de9d72c908 virtio disk driver 2019-06-13 06:49:02 -04:00