diff options
author | neal <neal> | 2007-12-14 15:18:07 +0000 |
---|---|---|
committer | neal <neal> | 2007-12-14 15:18:07 +0000 |
commit | e598e7fea334facf8490a3854ead4a7b0418ab61 (patch) | |
tree | 40907c52e99d81fb6221d23d34eeb59347c44049 /libhurd-mm/as.h | |
parent | d7dd76141a6a19993c45a1c1ed9d0afe2df7318d (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.h | 11 |
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); |