aboutsummaryrefslogtreecommitdiff
path: root/kernel/vm
diff options
context:
space:
mode:
authorMichael Foiani <mfoiani@cs.brown.edu>2024-05-15 18:17:49 -0400
committerMichael Foiani <mfoiani@cs.brown.edu>2024-05-15 18:17:49 -0400
commit3942ec1841219e9d1033f583ebfcf687cb76a4af (patch)
tree13168b263ee28ce2d0867cac47b0fc90bf23b815 /kernel/vm
parent77408081bd2622c50d9acbcec18f1c598738fdaa (diff)
FINAfinal submission (for real this time)HEADmaster
Diffstat (limited to 'kernel/vm')
-rw-r--r--kernel/vm/anon.c11
-rw-r--r--kernel/vm/brk.c2
-rw-r--r--kernel/vm/mmap.c4
-rw-r--r--kernel/vm/pagefault.c2
-rw-r--r--kernel/vm/shadow.c14
-rw-r--r--kernel/vm/vmmap.c37
6 files changed, 0 insertions, 70 deletions
diff --git a/kernel/vm/anon.c b/kernel/vm/anon.c
index 8c65b85..978ff01 100644
--- a/kernel/vm/anon.c
+++ b/kernel/vm/anon.c
@@ -27,7 +27,6 @@ static mobj_ops_t anon_mobj_ops = {.get_pframe = NULL,
*/
void anon_init()
{
- // NOT_YET_IMPLEMENTED("VM: anon_init");
anon_allocator = slab_allocator_create("anon", sizeof(mobj_t));
}
@@ -37,7 +36,6 @@ void anon_init()
*/
mobj_t *anon_create()
{
- // NOT_YET_IMPLEMENTED("VM: anon_create");
// make a new mobj
mobj_t *mobj = (mobj_t *)slab_obj_alloc(anon_allocator);
// initialize the mobj
@@ -56,15 +54,7 @@ mobj_t *anon_create()
*/
static long anon_fill_pframe(mobj_t *o, pframe_t *pf)
{
- // NOT_YET_IMPLEMENTED("VM: anon_fill_pframe");
-
- // set the pframe's mobj to the given mobj
- // pf->pf_addr = o;
- // set the pframe's flags to dirty
- // pf->pf_dirty = 1;
-
memset(pf->pf_addr, 0, PAGE_SIZE);
-
return 0;
}
@@ -79,7 +69,6 @@ static long anon_flush_pframe(mobj_t *o, pframe_t *pf) { return 0; }
*/
static void anon_destructor(mobj_t *o)
{
- // NOT_YET_IMPLEMENTED("VM: anon_destructor");
// call the default destructor
mobj_default_destructor(o);
diff --git a/kernel/vm/brk.c b/kernel/vm/brk.c
index 37bd16c..0461882 100644
--- a/kernel/vm/brk.c
+++ b/kernel/vm/brk.c
@@ -53,8 +53,6 @@
*/
long do_brk(void *addr, void **ret)
{
- // NOT_YET_IMPLEMENTED("VM: do_brk");
-
// If addr is NULL, return the current break
if (addr == NULL)
{
diff --git a/kernel/vm/mmap.c b/kernel/vm/mmap.c
index a298df4..6fd5340 100644
--- a/kernel/vm/mmap.c
+++ b/kernel/vm/mmap.c
@@ -55,8 +55,6 @@
long do_mmap(void *addr, size_t len, int prot, int flags, int fd, off_t off,
void **ret)
{
- // NOT_YET_IMPLEMENTED("VM: do_mmap");
-
// check if addr is page aligned when MAP_FIXED is specified
if (PAGE_ALIGNED(addr) == 0 && (flags & MAP_FIXED))
{
@@ -194,8 +192,6 @@ long do_mmap(void *addr, size_t len, int prot, int flags, int fd, off_t off,
*/
long do_munmap(void *addr, size_t len)
{
- // NOT_YET_IMPLEMENTED("VM: do_munmap");
-
// Check if addr is page aligned
if (PAGE_ALIGNED(addr) == 0)
{
diff --git a/kernel/vm/pagefault.c b/kernel/vm/pagefault.c
index 47b3312..b229741 100644
--- a/kernel/vm/pagefault.c
+++ b/kernel/vm/pagefault.c
@@ -50,8 +50,6 @@ void handle_pagefault(uintptr_t vaddr, uintptr_t cause)
dbg(DBG_VM, "vaddr = 0x%p (0x%p), cause = %lu\n", (void *)vaddr,
PAGE_ALIGN_DOWN(vaddr), cause);
- // NOT_YET_IMPLEMENTED("VM: handle_pagefault");
-
// Check that the vaddr is valid
if (vaddr < USER_MEM_LOW ||vaddr > USER_MEM_HIGH)
{
diff --git a/kernel/vm/shadow.c b/kernel/vm/shadow.c
index 3d37881..60b28a8 100644
--- a/kernel/vm/shadow.c
+++ b/kernel/vm/shadow.c
@@ -41,7 +41,6 @@ static mobj_ops_t shadow_mobj_ops = {.get_pframe = shadow_get_pframe,
*/
void shadow_init()
{
- // NOT_YET_IMPLEMENTED("VM: shadow_init");
shadow_allocator = slab_allocator_create("shadow", sizeof(mobj_shadow_t));
KASSERT(shadow_allocator);
}
@@ -62,8 +61,6 @@ void shadow_init()
*/
mobj_t *shadow_create(mobj_t *shadowed)
{
- // NOT_YET_IMPLEMENTED("VM: shadow_create");
-
if (!shadowed)
{
return NULL;
@@ -118,8 +115,6 @@ mobj_t *shadow_create(mobj_t *shadowed)
*/
void shadow_collapse(mobj_t *o)
{
- // NOT_YET_IMPLEMENTED("VM: shadow_collapse");
-
mobj_shadow_t *so = MOBJ_TO_SO(o);
mobj_t *next = so->shadowed;
while(next && next->mo_type==MOBJ_SHADOW)
@@ -200,8 +195,6 @@ void shadow_collapse(mobj_t *o)
static long shadow_get_pframe(mobj_t *o, size_t pagenum, long forwrite,
pframe_t **pfp)
{
- // NOT_YET_IMPLEMENTED("VM: shadow_get_pframe");
- // return 0;
if (forwrite)
{
return mobj_default_get_pframe(o, pagenum, forwrite, pfp);
@@ -262,8 +255,6 @@ static long shadow_get_pframe(mobj_t *o, size_t pagenum, long forwrite,
*/
static long shadow_fill_pframe(mobj_t *o, pframe_t *pf)
{
- // NOT_YET_IMPLEMENTED("VM: shadow_fill_pframe");
- // return -1;
pframe_t *pf_shadow = NULL;
long ret = 0;
@@ -308,8 +299,6 @@ static long shadow_fill_pframe(mobj_t *o, pframe_t *pf)
*/
static long shadow_flush_pframe(mobj_t *o, pframe_t *pf)
{
- // NOT_YET_IMPLEMENTED("VM: shadow_flush_pframe");
- // return -1;
return 0;
}
@@ -325,12 +314,9 @@ static long shadow_flush_pframe(mobj_t *o, pframe_t *pf)
*/
static void shadow_destructor(mobj_t *o)
{
- // NOT_YET_IMPLEMENTED("VM: shadow_destructor");
mobj_default_destructor(o);
mobj_shadow_t *so = MOBJ_TO_SO(o);
- // dbg(DBG_PROC, "shadow_destructor: refcount bottom: %d\n", so->bottom_mobj->mo_refcount);
- // dbg(DBG_PROC, "shadow_destructor: refcount: %d\n", so->shadowed->mo_refcount);
// put the shadow and bottom_mobj members of the shadow object
mobj_put(&so->shadowed);
diff --git a/kernel/vm/vmmap.c b/kernel/vm/vmmap.c
index 4d671d2..5c42e47 100644
--- a/kernel/vm/vmmap.c
+++ b/kernel/vm/vmmap.c
@@ -33,8 +33,6 @@ void vmmap_init(void)
*/
vmarea_t *vmarea_alloc(void)
{
- // NOT_YET_IMPLEMENTED("VM: vmarea_alloc");
-
// Allocate a new vmarea
vmarea_t *new_vmarea = (vmarea_t *)slab_obj_alloc(vmarea_allocator);
if (new_vmarea == NULL)
@@ -62,8 +60,6 @@ vmarea_t *vmarea_alloc(void)
*/
void vmarea_free(vmarea_t *vma)
{
- // NOT_YET_IMPLEMENTED("VM: vmarea_free");
-
// Remove the vmarea from any lists it may be on
if (list_link_is_linked(&vma->vma_plink))
{
@@ -85,8 +81,6 @@ void vmarea_free(vmarea_t *vma)
*/
vmmap_t *vmmap_create(void)
{
- // NOT_YET_IMPLEMENTED("VM: vmmap_create");
-
// Allocate a new vmmap
vmmap_t *new_vmmap = (vmmap_t *)slab_obj_alloc(vmmap_allocator);
if (new_vmmap == NULL)
@@ -107,8 +101,6 @@ vmmap_t *vmmap_create(void)
*/
void vmmap_destroy(vmmap_t **mapp)
{
- // NOT_YET_IMPLEMENTED("VM: vmmap_destroy");
-
vmmap_t *map = *mapp;
// Iterate through the list of vmareas and free each one
@@ -132,8 +124,6 @@ void vmmap_destroy(vmmap_t **mapp)
*/
void vmmap_insert(vmmap_t *map, vmarea_t *new_vma)
{
- // NOT_YET_IMPLEMENTED("VM: vmmap_insert*");
-
new_vma->vma_vmmap = map;
// iterate over the list of vmareas
@@ -245,8 +235,6 @@ ssize_t vmmap_find_range(vmmap_t *map, size_t npages, int dir)
*/
vmarea_t *vmmap_lookup(vmmap_t *map, size_t vfn)
{
- // NOT_YET_IMPLEMENTED("VM: vmmap_lookup");
-
// iterate over the list of vmareas
list_iterate(&map->vmm_list, vma, vmarea_t, vma_plink)
{
@@ -297,8 +285,6 @@ void vmmap_collapse(vmmap_t *map)
*/
vmmap_t *vmmap_clone(vmmap_t *map)
{
- // NOT_YET_IMPLEMENTED("VM: vmmap_clone");
-
vmmap_collapse(map);
// Create a new vmmap
@@ -418,21 +404,6 @@ vmmap_t *vmmap_clone(vmmap_t *map)
long vmmap_map(vmmap_t *map, vnode_t *file, size_t lopage, size_t npages,
int prot, int flags, off_t off, int dir, vmarea_t **new_vma)
{
- // NOT_YET_IMPLEMENTED("VM: vmmap_map");
- // return -1;
-
- // ASK: why are these needed!!
- KASSERT(map != NULL);
- KASSERT(prot == PROT_NONE
- || prot == PROT_READ
- || prot == PROT_WRITE
- || prot == PROT_EXEC
- || prot == (PROT_READ | PROT_WRITE)
- || prot == (PROT_READ | PROT_EXEC)
- || prot == (PROT_WRITE | PROT_EXEC)
- || prot == (PROT_READ | PROT_WRITE | PROT_EXEC));
- KASSERT((flags & MAP_TYPE) == MAP_SHARED || (flags & MAP_TYPE) == MAP_PRIVATE);
-
if (lopage == 0)
{
KASSERT(dir == VMMAP_DIR_LOHI || dir == VMMAP_DIR_HILO);
@@ -550,8 +521,6 @@ long vmmap_map(vmmap_t *map, vnode_t *file, size_t lopage, size_t npages,
*/
long vmmap_remove(vmmap_t *map, size_t lopage, size_t npages)
{
- // NOT_YET_IMPLEMENTED("VM: vmmap_remove");
-
// Iterate over the list of vmareas
list_iterate(&map->vmm_list, vma, vmarea_t, vma_plink)
{
@@ -658,8 +627,6 @@ long vmmap_remove(vmmap_t *map, size_t lopage, size_t npages)
*/
long vmmap_is_range_empty(vmmap_t *map, size_t startvfn, size_t npages)
{
- // NOT_YET_IMPLEMENTED("VM: vmmap_is_range_empty");
-
// Iterate over the list of vmareas
list_iterate(&map->vmm_list, vma, vmarea_t, vma_plink)
{
@@ -700,8 +667,6 @@ long vmmap_is_range_empty(vmmap_t *map, size_t startvfn, size_t npages)
*/
long vmmap_read(vmmap_t *map, const void *vaddr, void *buf, size_t count)
{
- // NOT_YET_IMPLEMENTED("VM: vmmap_read");
-
// Iterate over the page numbers
size_t vfn = ADDR_TO_PN(vaddr);
size_t end_vfn = ADDR_TO_PN(vaddr + count);
@@ -770,8 +735,6 @@ long vmmap_read(vmmap_t *map, const void *vaddr, void *buf, size_t count)
*/
long vmmap_write(vmmap_t *map, void *vaddr, const void *buf, size_t count)
{
- // NOT_YET_IMPLEMENTED("VM: vmmap_write");
-
// Iterate over the page numbers
size_t vfn = ADDR_TO_PN(vaddr);
size_t end_vfn = ADDR_TO_PN(vaddr + count);