summaryrefslogtreecommitdiff
path: root/libhurd-mm/map.c
diff options
context:
space:
mode:
authorneal <neal>2008-06-20 08:55:00 +0000
committerneal <neal>2008-06-20 08:55:00 +0000
commitf91025d06a22726ffa59fd657c354252b8b845b5 (patch)
tree364765e5f62c78f4cc5006c48f13748c8fe5b105 /libhurd-mm/map.c
parent82b453e5938ad1f4ef78999209ceaef2af06b1be (diff)
2008-06-20 Neal H. Walfield <neal@gnu.org>
* map.c (map_split): Update SECOND->OFFSET.
Diffstat (limited to 'libhurd-mm/map.c')
-rw-r--r--libhurd-mm/map.c25
1 files changed, 14 insertions, 11 deletions
diff --git a/libhurd-mm/map.c b/libhurd-mm/map.c
index 6ae951a..4c3ebb2 100644
--- a/libhurd-mm/map.c
+++ b/libhurd-mm/map.c
@@ -250,12 +250,13 @@ map_split (struct map *map, uintptr_t offset)
second->region.start = map->region.start + offset;
second->region.length = map->region.length - offset;
+ second->offset += offset;
/* This is kosher: it does not change the ordering of the mapping in
the tree. */
map->region.length = offset;
- debug (0, "%x+%x, %x+%x",
+ debug (5, "%x+%x, %x+%x",
map->region.start, map->region.length,
second->region.start, second->region.length);
@@ -329,15 +330,17 @@ map_fault (addr_t fault_addr, uintptr_t ip, struct exception_info info)
struct map *map = map_find (region);
if (! map)
{
- debug (0, "No map covers " ADDR_FMT "(" EXCEPTION_INFO_FMT ")",
- ADDR_PRINTF (fault_addr),
- EXCEPTION_INFO_PRINTF (info));
-
- for (map = hurd_btree_map_first (&maps);
- map;
- map = hurd_btree_map_next (map))
- debug (0, MAP_FMT, MAP_PRINTF (map));
-
+ do_debug (5)
+ {
+ debug (0, "No map covers " ADDR_FMT "(" EXCEPTION_INFO_FMT ")",
+ ADDR_PRINTF (fault_addr),
+ EXCEPTION_INFO_PRINTF (info));
+ for (map = hurd_btree_map_first (&maps);
+ map;
+ map = hurd_btree_map_next (map))
+ debug (0, MAP_FMT, MAP_PRINTF (map));
+ }
+
maps_lock_unlock ();
return false;
}
@@ -364,7 +367,7 @@ map_fault (addr_t fault_addr, uintptr_t ip, struct exception_info info)
bool r = pager->fault (pager, offset, 1, ro,
(uintptr_t) ADDR_TO_PTR (fault_addr), ip, info);
if (! r)
- debug (0, "Map did not resolve fault at " ADDR_FMT,
+ debug (5, "Map did not resolve fault at " ADDR_FMT,
ADDR_PRINTF (fault_addr));
return r;