summaryrefslogtreecommitdiff
path: root/libhurd-mm/as.h
diff options
context:
space:
mode:
authorneal <neal>2007-12-14 15:18:07 +0000
committerneal <neal>2007-12-14 15:18:07 +0000
commite598e7fea334facf8490a3854ead4a7b0418ab61 (patch)
tree40907c52e99d81fb6221d23d34eeb59347c44049 /libhurd-mm/as.h
parentd7dd76141a6a19993c45a1c1ed9d0afe2df7318d (diff)
libhurd-mm/
2007-12-14 Neal H. Walfield <neal@gnu.org> * storage.c (shadow_setup): Support the case where the folio is full. (storage_alloc_): If AS_INIT_DONE is false, use as_alloc_slow to allocate an address. Only call shadow_setup if CAP is not NULL. * as.h (as_alloc_slow): Remove parameter data_mappable and parameter may_alloc. Return a struct hurd_object_desc *, not an addr_t. * as.c (as_alloc): Assert that AS_INIT_DONE is true. Improve debugging output. (as_slot_ensure): Assert that AS_INIT_DONE is true. (as_alloc_slow): Remove parameter data_mappable and parameter may_alloc. Return a struct hurd_object_desc *, not an addr_t. Don't special case page-sized objects, always find a void capability. Don't return an address twice. Don't use capability slots in folios. (as_init:add): Take additional argument, addr. Use this rather than DESC->OBJECT. Generalize code for iterating over folios and cappages. Correctly walk folios. (as_init): Call add on both a descriptor object and its storage. (as_walk): Rewrite such that if AS_INIT_DONE is not true, we don't use a recursive function. If the callback function returns -1, then don't descend. (as_walk:do_walk): Also walk folios. viengoos/ 2007-12-14 Neal H. Walfield <neal@gnu.org> * viengoos.c (system_task_load:csalloc): Remove function. (system_task_load): Don't allocate additional capability slots for the objects we allocate, just use the address of the storage object. ruth/ 2007-12-14 Neal H. Walfield <neal@gnu.org> * ruth.c (main): Only check the objects contained immediately within a folio for shadow objects.
Diffstat (limited to 'libhurd-mm/as.h')
-rw-r--r--libhurd-mm/as.h11
1 files changed, 4 insertions, 7 deletions
diff --git a/libhurd-mm/as.h b/libhurd-mm/as.h
index cca8b35..591988e 100644
--- a/libhurd-mm/as.h
+++ b/libhurd-mm/as.h
@@ -40,10 +40,10 @@
extern addr_t as_alloc (int width, l4_uint64_t count,
bool data_mappable);
-/* Like as_alloc but may be called before as_init is called. If
- MAY_ALLOC is false, may be called before storage_init is done. */
-extern addr_t as_alloc_slow (int width, bool data_mappable,
- bool may_alloc);
+/* Like as_alloc but may be called before as_init is called. Address
+ is returned in the descriptor's object field. The caller must fill
+ in the rest. */
+extern struct hurd_object_desc *as_alloc_slow (int width);
/* Allocate the COUNT contiguous addresses strating at address ADDR.
Returns true on success, false otherwise. */
@@ -62,9 +62,6 @@ extern bool as_init_done;
/* Initialize the address space manager. */
extern void as_init (void);
-/* Allocate an area covering of width WIDTH. */
-extern addr_t as_alloc_slow (int width, bool data_mappable, bool may_alloc);
-
/* Print the allocated areas. */
extern void as_alloced_dump (const char *prefix);