summaryrefslogtreecommitdiff
path: root/viengoos/as.h
diff options
context:
space:
mode:
authorneal <neal>2008-01-24 20:37:41 +0000
committerneal <neal>2008-01-24 20:37:41 +0000
commit1274cc5549afe8d7f3114f38fc215240f9d5d7a2 (patch)
treedd0bee46f17396b0a007f1ad22e245b057e741cf /viengoos/as.h
parent4858fa9d9e060da09b1aabdabc653e4e02122df2 (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.h25
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,