summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarcus <marcus>2004-10-27 20:19:21 +0000
committermarcus <marcus>2004-10-27 20:19:21 +0000
commit010e9bebda7874cea3fa54a901b860d6896025c4 (patch)
tree38bd8645b34cf3be1bc27904388096e497d8b496
parentc7e914ead0b71483be523f62242bbbef32d29163 (diff)
2004-10-27 Marcus Brinkmann <marcus@gnu.org>
* container.c (container_map): Call l4_fpage_xspan instead of l4_fpage_span.
-rw-r--r--physmem/ChangeLog5
-rw-r--r--physmem/container.c11
2 files changed, 11 insertions, 5 deletions
diff --git a/physmem/ChangeLog b/physmem/ChangeLog
index 7f6e528..df8dda1 100644
--- a/physmem/ChangeLog
+++ b/physmem/ChangeLog
@@ -1,3 +1,8 @@
+2004-10-27 Marcus Brinkmann <marcus@gnu.org>
+
+ * container.c (container_map): Call l4_fpage_xspan instead of
+ l4_fpage_span.
+
2004-10-25 Marcus Brinkmann <marcus@gnu.org>
* physmem.c (physmem_server): Call hurd_cap_bucket_worker_alloc.
diff --git a/physmem/container.c b/physmem/container.c
index f9580df..32e4cff 100644
--- a/physmem/container.c
+++ b/physmem/container.c
@@ -1,4 +1,4 @@
-/* Main function for physical memory server.
+/* container.c - container class for physical memory server.
Copyright (C) 2003 Free Software Foundation, Inc.
Written by Marcus Brinkmann.
@@ -79,7 +79,8 @@ container_map (hurd_cap_rpc_context_t ctx)
l4_word_t start;
l4_word_t end;
l4_word_t nr_fpages;
- l4_fpage_t fpages[L4_FPAGE_SPAN_MAX];
+#define MAX_MAP_ITEMS ((L4_NUM_MRS - 1) / 2)
+ l4_fpage_t fpages[MAX_MAP_ITEMS];
l4_word_t i;
/* FIXME FIXME FIXME */
@@ -97,7 +98,7 @@ container_map (hurd_cap_rpc_context_t ctx)
}
l4_msg_clear (ctx->msg);
- nr_fpages = l4_fpage_span (start, end, fpages);
+ nr_fpages = l4_fpage_xspan (start, end, vaddr, fpages, MAX_MAP_ITEMS);
for (i = 0; i < nr_fpages; i++)
{
@@ -110,7 +111,6 @@ container_map (hurd_cap_rpc_context_t ctx)
l4_msg_append_map_item (ctx->msg, map_item);
vaddr += l4_size (fpage);
}
-
return 0;
}
@@ -150,7 +150,8 @@ container_class_init ()
/* Allocate a new container object covering the NR_FPAGES fpages
- listed in FPAGES. The object is locked and has one reference. */
+ listed in FPAGES. The object returned is locked and has one
+ reference. */
error_t
container_alloc (l4_word_t nr_fpages, l4_word_t *fpages,
hurd_cap_obj_t *r_obj)