Removed old syscall vm_modify_mapping.
authorSimon Gerber <simugerber@student.ethz.ch>
Thu, 22 Nov 2012 14:53:24 +0000 (15:53 +0100)
committerSimon Gerber <simon.gerber@inf.ethz.ch>
Tue, 29 Jan 2013 10:31:04 +0000 (11:31 +0100)
errors/errno.fugu
include/arch/x86_64/barrelfish/invocations_arch.h
include/barrelfish/capabilities.h
kernel/arch/x86_64/syscall.c
kernel/include/syscall.h
kernel/syscall.c
lib/barrelfish/target/x86_64/pmap_target.c

index 09a633e..d7a95a6 100644 (file)
@@ -175,7 +175,6 @@ errors libbarrelfish LIB_ERR_ {
     failure VNODE_MAP           "Failure in vnode_map()",
     failure VNODE_UNMAP         "Failure in vnode_unmap()",
     failure IDC_ENDPOINT_ALLOC  "Failure in idc_endpoint_alloc()",
-    failure VM_MODIFY_MAPPING   "Failure in vm_modify_mapping()",
 
     failure SLOT_ALLOC_INIT     "Failure in slot_alloc_init()",
     failure SLOT_ALLOC_NO_SPACE    "Slot allocator is out of space",
index b747ea8..8ee7bde 100644 (file)
@@ -208,12 +208,6 @@ static inline errval_t invoke_vnode_unmap(struct capref cap, size_t entry, size_
     return cap_invoke3(cap, VNodeCmd_Unmap, entry, num_pages).error;
 }
 
-static inline errval_t
-invoke_vm_modify_mapping(struct capref mem, size_t page_count, uint64_t off)
-{
-    return cap_invoke3(mem, FrameCmd_Modify_Mapping, page_count, off).error;
-}
-
 /**
  * \brief Return the physical address and size of a frame capability
  *
index 5b53251..e7bfa80 100644 (file)
@@ -104,12 +104,6 @@ static inline errval_t vnode_unmap(struct capref pgtl, size_t entry, size_t num_
     return invoke_vnode_unmap(pgtl, entry, num_pages);
 }
 
-static inline errval_t
-vm_modify_mapping(struct capref mem, size_t page_count, uint64_t off)
-{
-    return invoke_vm_modify_mapping(mem, page_count, off);
-}
-
 /**
  * \brief Copy a capability between slots in CSpace
  *
index aaeab73..d796f7c 100644 (file)
@@ -426,14 +426,6 @@ static struct sysret handle_frame_identify(struct capability *to,
     };
 }
 
-static struct sysret handle_modify_mapping(struct capability *mem,
-                                           int cmd, uintptr_t *args)
-{
-    size_t page_count = args[0];
-    uint64_t off = args[1];
-    return sys_modify_mapping(mem, page_count, off);
-}
-
 static struct sysret handle_io(struct capability *to, int cmd, uintptr_t *args)
 {
     uint64_t    port = args[0];
@@ -726,11 +718,9 @@ static invocation_handler_t invocations[ObjType_Num][CAP_MAX_CMD] = {
     },
     [ObjType_Frame] = {
         [FrameCmd_Identify] = handle_frame_identify,
-        [FrameCmd_Modify_Mapping] = handle_modify_mapping,
     },
     [ObjType_DevFrame] = {
         [FrameCmd_Identify] = handle_frame_identify,
-        [FrameCmd_Modify_Mapping] = handle_modify_mapping,
     },
     [ObjType_CNode] = {
         [CNodeCmd_Copy]   = handle_copy,
@@ -743,22 +733,18 @@ static invocation_handler_t invocations[ObjType_Num][CAP_MAX_CMD] = {
     [ObjType_VNode_x86_64_pml4] = {
         [VNodeCmd_Map]   = handle_map,
         [VNodeCmd_Unmap] = handle_unmap,
-        [FrameCmd_Modify_Mapping] = handle_modify_mapping,
     },
     [ObjType_VNode_x86_64_pdpt] = {
         [VNodeCmd_Map]   = handle_map,
         [VNodeCmd_Unmap] = handle_unmap,
-        [FrameCmd_Modify_Mapping] = handle_modify_mapping,
     },
     [ObjType_VNode_x86_64_pdir] = {
         [VNodeCmd_Map]   = handle_map,
         [VNodeCmd_Unmap] = handle_unmap,
-        [FrameCmd_Modify_Mapping] = handle_modify_mapping,
     },
     [ObjType_VNode_x86_64_ptable] = {
         [VNodeCmd_Map]   = handle_map,
         [VNodeCmd_Unmap] = handle_unmap,
-        [FrameCmd_Modify_Mapping] = handle_modify_mapping,
     },
     [ObjType_Kernel] = {
         [KernelCmd_Spawn_core]   = monitor_spawn_core,
index faa8e59..b126e9a 100644 (file)
@@ -45,7 +45,6 @@ struct sysret
 sys_copy_or_mint(struct capability *root, capaddr_t destcn_cptr, cslot_t dest_slot,
                  capaddr_t source_cptr, int destcn_vbits, int source_vbits,
                  uintptr_t param1, uintptr_t param2, bool mint);
-struct sysret sys_modify_mapping(struct capability *mem, size_t page_count, uint64_t off);
 struct sysret sys_delete(struct capability *root, capaddr_t cptr, uint8_t bits,
                          bool from_monitor);
 struct sysret sys_revoke(struct capability *root, capaddr_t cptr, uint8_t bits,
index 81ea5a2..e14c8c8 100644 (file)
@@ -360,36 +360,6 @@ sys_map(struct capability *ptable, cslot_t slot, capaddr_t source_cptr,
                                      offset, pte_count));
 }
 
-struct sysret
-sys_modify_mapping(struct capability *mem, size_t page_count, uint64_t off)
-{
-    /* find cte belonging to cap */
-    struct cte *mem_cap = cte_for_cap(mem);
-
-    if (!type_is_vnode(mem->type) && mem->type != ObjType_Frame && mem->type != ObjType_DevFrame){
-        // this only works for mappable memory
-        return SYSRET(SYS_ERR_VNODE_TYPE);
-    }
-
-    genpaddr_t map_start = get_address(mem) + off;
-    genpaddr_t frame_end = get_address(mem) + get_size(mem);
-    size_t map_size = page_count*BASE_PAGE_SIZE;
-    if (map_start & BASE_PAGE_MASK) {
-        // return modify error if offset not aligned to base page size
-        return SYSRET(1000);
-    }
-    if ((map_start + map_size) > frame_end) {
-        // return modify error if offset + map_size after end of memory region
-        printf("map_start = 0x%"PRIxGENPADDR", map_size = %zd, frame_end = 0x%"PRIxGENPADDR"\n",
-                map_start, map_size, frame_end);
-        return SYSRET(SYS_ERR_VM_MAP_SIZE);
-    }
-    mem_cap->mapping_info.pte_count = page_count;
-    mem_cap->mapping_info.offset = off;
-
-    return SYSRET(SYS_ERR_OK);
-}
-
 struct sysret sys_delete(struct capability *root, capaddr_t cptr, uint8_t bits,
                          bool from_monitor)
 {
index e55173b..096045c 100644 (file)
@@ -148,13 +148,6 @@ static errval_t alloc_vnode(struct pmap_x86 *pmap, struct vnode *root,
         return err_push(err, LIB_ERR_VNODE_CREATE);
     }
 
-    // setup mapping size
-    err = vm_modify_mapping(newvnode->u.vnode.cap, 1, 0);
-    if (err_is_fail(err)) {
-        printf("vm_modify_mapping returned an error: %s\n", err_getstring(err));
-        return err_push(err, LIB_ERR_VM_MODIFY_MAPPING);
-    }
-
     // Map it
     //printf("\talloc_vnode calling vnode_map()\n");
     err = vnode_map(root->u.vnode.cap, newvnode->u.vnode.cap, entry,
@@ -617,7 +610,6 @@ static errval_t modify_flags(struct pmap *pmap, genvaddr_t vaddr, size_t size,
                 ret = err_push(err, LIB_ERR_VNODE_UNMAP);
                 return ret;
             }
-            vm_modify_mapping(page->u.frame.cap, pages, page->u.frame.offset);
         }
     }