summaryrefslogtreecommitdiff
path: root/libhurd-mm/capalloc.c
diff options
context:
space:
mode:
authorneal <neal>2007-11-19 22:42:36 +0000
committerneal <neal>2007-11-19 22:42:36 +0000
commit5c2c982ba3cfbe34c79cb2096018567ca6cd8fb6 (patch)
tree186d51c98040279981a620affa2fdf4b26dadcff /libhurd-mm/capalloc.c
parentf38367b6493d6d4a51011a8d0fa81d1f3f49ca9e (diff)
hurd/
2007-11-19 Neal H. Walfield <neal@gnu.org> * addr.h (ADDR_TO_PTR): Assert that the address corresponds to a pointer, not the root of a mapped page. Update callers. (PTR_TO_ADDR): Return an address corresponding to a pointer, not the root of a mapped page. Update callers. libhurd-mm/ 2007-11-19 Neal H. Walfield <neal@gnu.org> * as.c (__hurd_startup_data): Declare. (free_space_desc_slab_alloc): Use ADDR_TO_PTR and PTR_TO_ADDR correctly. (free_space_desc_slab_dealloc): Likewise. (allocate_object): Likewise. (storage_alloc): Likewise. (as_init): Likewise. * capalloc.c (cappage_desc_slab_alloc): Likewise. (cappage_desc_slab_dealloc): Likewise. * storage.c (__hurd_startup_data): Declare. (check_slab_space_reserve): Likewise. (storage_desc_slab_dealloc): Likewise. (shadow_setup): Likewise. (storage_free): Likewise. ruth/ 2007-11-19 Neal H. Walfield <neal@gnu.org> * ruth.c (main): Use ADDR_TO_PTR and PTR_TO_ADDR correctly.
Diffstat (limited to 'libhurd-mm/capalloc.c')
-rw-r--r--libhurd-mm/capalloc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libhurd-mm/capalloc.c b/libhurd-mm/capalloc.c
index f565201..c603dcf 100644
--- a/libhurd-mm/capalloc.c
+++ b/libhurd-mm/capalloc.c
@@ -89,7 +89,7 @@ cappage_desc_slab_alloc (void *hook, size_t size, void **ptr)
cap_page, STORAGE_LONG_LIVED, ADDR_VOID);
if (ADDR_IS_VOID (storage))
panic ("Out of storage");
- *ptr = ADDR_TO_PTR (storage);
+ *ptr = ADDR_TO_PTR (addr_extend (storage, 0, PAGESIZE_LOG2));
return 0;
}
@@ -99,7 +99,7 @@ cappage_desc_slab_dealloc (void *hook, void *buffer, size_t size)
{
assert (size == PAGESIZE);
- addr_t addr = ADDR ((uintptr_t) buffer, ADDR_BITS - PAGESIZE_LOG2);
+ addr_t addr = addr_chop (PTR_TO_ADDR (buffer), PAGESIZE_LOG2);
storage_free (addr, false);
return 0;