summaryrefslogtreecommitdiff
path: root/vm/vm_anon.c
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2013-07-05 14:24:41 +0200
committerRichard Braun <rbraun@sceen.net>2013-07-06 19:02:10 +0200
commit4b2687bd96de7600ce2fc9cdea963ab511ac5c37 (patch)
tree6d60bede3f246a053b930a51adf1c585b5ae3e20 /vm/vm_anon.c
parent1c389aca56725700cf9e99805eb90feb0b94072b (diff)
actually, it didn't work, but does nowbasic_paging
Diffstat (limited to 'vm/vm_anon.c')
-rw-r--r--vm/vm_anon.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/vm/vm_anon.c b/vm/vm_anon.c
index e6d1385f..ebee5fcc 100644
--- a/vm/vm_anon.c
+++ b/vm/vm_anon.c
@@ -113,16 +113,22 @@ vm_anon_get(struct vm_object *object, uint64_t offset,
struct vm_page **pagep)
{
struct vm_page *page;
+ int error;
page = vm_phys_alloc(0);
if (page == NULL)
return ERROR_NOMEM;
- /* TODO Insert page in object */
- (void)object;
- (void)offset;
+ error = vm_object_add(object, offset, page);
+
+ if (error)
+ goto error_object;
*pagep = page;
return 0;
+
+error_object:
+ vm_phys_free(page, 0);
+ return error;
}