diff options
author | neal <neal> | 2008-01-24 20:37:41 +0000 |
---|---|---|
committer | neal <neal> | 2008-01-24 20:37:41 +0000 |
commit | 1274cc5549afe8d7f3114f38fc215240f9d5d7a2 (patch) | |
tree | dd0bee46f17396b0a007f1ad22e245b057e741cf /viengoos/as.h | |
parent | 4858fa9d9e060da09b1aabdabc653e4e02122df2 (diff) |
hurd/
2008-01-24 Neal H. Walfield <neal@gnu.org>
* cap.h (cap_copy): Rename ADDRESS_SPACE argument to
TARGET_ADDRESS_SPACE. Take additional argument
SOURCE_ADDRESS_SPACE. Update users.
(cap_copy_x): Likewise.
(cap_copy): Likewise.
(object_slot_copy_out): Rename ADDRESS_SPACE argument to
OBJECT_ADDRESS_SPACE. Take additional argument
TARGET_ADDRESS_SPACE. Update users.
(object_slot_copy_out): Rename ADDRESS_SPACE argument to
OBJECT_ADDRESS_SPACE. Take additional argument
SOURCE_ADDRESS_SPACE. Update users.
libhurd-mm/
2008-01-24 Neal H. Walfield <neal@gnu.org>
* as.h (as_slot_ensure_full): New declaration.
(as_insert): Take additional parameters SOURCE_AS and TARGET_AS.
* as.c (as_slot_ensure_full): Remove declaration.
(as_slot_ensure): Update use of as_slot_ensure full to be
consistent with the new API.
(as_alloc_slow): Update use of rm_cap_copy to be consistent with
new API.
viengoos/
2008-01-24 Neal H. Walfield <neal@gnu.org>
* as.h (as_insert): Rename argument AS_ROOT_ADDR to TARGET_AS.
Take additional argument SOURCE_AS. Update users.
* as.c (as_build_internal): Update use of cap_copy_x to be
consistent with new API.
(as_insert): Take additional argument ENTRY_AS. Update use of
cap_copy to be consistent with new API.
* cap.h (cap_set): Update use of cap_copy to be consistent with
new API.
* thread.c (thread_exregs): Update use of cap_copy and cap_copy_x
to be consistent with new API.
* as.h (as_slot_ensure_full): New declaration.
ruth/
2008-01-24 Neal H. Walfield <neal@gnu.org>
* ruth.c (main): Update use of rm_cap_read to be consistent with
new API.
Diffstat (limited to 'viengoos/as.h')
-rw-r--r-- | viengoos/as.h | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/viengoos/as.h b/viengoos/as.h index 2538ec0..34f34bc 100644 --- a/viengoos/as.h +++ b/viengoos/as.h @@ -142,17 +142,26 @@ struct as_insert_rt typedef struct as_insert_rt allocate_object_callback_t (enum cap_type type, addr_t addr); -/* Insert the object described by entry ENTRY at address ADDR into the - address space rooted at AS_ROOT_ADDR/ROOT. ALLOC_OBJECT is a - callback to allocate an object of type TYPE at address ADDR. The - callback should NOT insert the allocated object into the addresss - space. */ +/* Copy the capability located at SOURCE_ADDR in the address space + rooted at SOURCE_AS to address ADDR in the address space rooted at + TARGET_AS. Allocates any necessary page-tables in the target + address space. ALLOC_OBJECT is a callback to allocate an object of + type TYPE at address ADDR. The callback should NOT insert the + allocated object into the addresss space. */ extern void as_insert (activity_t activity, - addr_t as_root_addr, struct cap *root, - addr_t addr, - struct cap entry, addr_t entry_addr, + addr_t target_as, struct cap *t_as_cap, addr_t target, + addr_t source_as, struct cap c_cap, addr_t source, allocate_object_callback_t alloc); +/* Ensure that the slot designated by ADDR in the address space root + at AS is accessible by allocating any required page tables. Return + the cap associated with ADDR. */ +extern struct cap *as_slot_ensure_full + (activity_t activity, + addr_t as, struct cap *root, addr_t addr, + struct as_insert_rt + (*allocate_object) (enum cap_type type, addr_t addr)); + /* If debugging is enabled dump the address space described by ROOT. PREFIX is prefixed to each line of output. */ extern void as_dump_from (activity_t activity, struct cap *root, |