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 /hurd | |
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 'hurd')
-rw-r--r-- | hurd/ChangeLog | 14 | ||||
-rw-r--r-- | hurd/cap.h | 50 |
2 files changed, 41 insertions, 23 deletions
diff --git a/hurd/ChangeLog b/hurd/ChangeLog index 9e41091..a6341ac 100644 --- a/hurd/ChangeLog +++ b/hurd/ChangeLog @@ -1,5 +1,19 @@ 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. + +2008-01-24 Neal H. Walfield <neal@gnu.org> + * cap.h (cap_copy): Take additional argument ADDRESS_SPACE. Update users. (cap_read): Likewise. @@ -358,13 +358,14 @@ enum CAP_COPY_PRIORITY_SET = 1 << 5, }; -/* Copy the capability in capability slot SOURCE to the slot TARGET in - the address space rooted at ADDRESS_SPACE. If ADDRESS_SPACE - identifies a thread, its address space root is used. If - ADDRESS_SPACE is NULL, then the calling thread's address space - route is used. (PRINCIPAL and ADDRESS_SPACE are looked up in the - context of the caller; TARGET and SOURCE are looked up in the - context of ADDRESS_SPACE.) +/* Copy the capability in capability slot SOURCE in the address space + rooted at SOURCE_ADDRESS_SPACE to the slot TARGET in the address + space rooted at TARGET_ADDRESS_SPACE. The address space is + resolved in the context of the caller. If the address space + identifies a thread, its address space root is used. If it is + ADDR_VOID, then the calling thread's address space route is used. + (PRINCIPAL and the address spaces are looked up in the context of + the caller.) By default, preserves SOURCE's subpage specification and TARGET's guard. @@ -386,8 +387,9 @@ enum If CAP_COPY_PRIORITY_SET is set, then sets the priority based on the value in properties. Otherwise, copies SOURCE's value. */ -RPC(cap_copy, 6, 0, addr_t, principal, addr_t, address_space, - addr_t, target, addr_t, source, +RPC(cap_copy, 7, 0, addr_t, principal, + addr_t, target_address_space, addr_t, target, + addr_t, source_address_space, addr_t, source, l4_word_t, flags, struct cap_properties, properties) /* Returns the public bits of the capability CAP in TYPE and @@ -399,15 +401,17 @@ RPC(cap_read, 3, 2, addr_t, principal, addr_t, address_space, addr_t, cap, /* Copy the capability from slot SLOT of the object OBJECT (relative to the start of the object's subpage) to slot TARGET. PROPERTIES are interpreted as per cap_copy. */ -RPC(object_slot_copy_out, 7, 0, addr_t, principal, addr_t, address_space, - addr_t, object, l4_word_t, slot, addr_t, target, +RPC(object_slot_copy_out, 8, 0, addr_t, principal, + addr_t, object_address_space, addr_t, object, l4_word_t, slot, + addr_t, target_address_space, addr_t, target, l4_word_t, flags, struct cap_properties, properties) /* Copy the capability from slot SOURCE to slot INDEX of the object OBJECT (relative to the start of the object's subpage). PROPERTIES are interpreted as per cap_copy. */ -RPC(object_slot_copy_in, 7, 0, addr_t, principal, addr_t, address_space, - addr_t, object, l4_word_t, index, addr_t, source, +RPC(object_slot_copy_in, 8, 0, addr_t, principal, + addr_t, object_address_space, addr_t, object, l4_word_t, index, + addr_t, source_address_space, addr_t, source, l4_word_t, flags, struct cap_properties, properties) /* Store the public bits of the capability slot SLOT of object OBJECT @@ -480,9 +484,9 @@ cap_to_object (activity_t activity, struct cap *cap) /* Wrapper for the cap_copy method. Also updates shadow capabilities. */ static inline bool -cap_copy_x (activity_t activity, addr_t address_space, - struct cap *target, addr_t target_addr, - struct cap source, addr_t source_addr, +cap_copy_x (activity_t activity, + addr_t target_address_space, struct cap *target, addr_t target_addr, + addr_t source_address_space, struct cap source, addr_t source_addr, int flags, struct cap_properties properties) { /* By default, we preserve SOURCE's subpage @@ -601,8 +605,8 @@ cap_copy_x (activity_t activity, addr_t address_space, assert (! ADDR_IS_VOID (target_addr)); assert (! ADDR_IS_VOID (source_addr)); - error_t err = rm_cap_copy (activity, address_space, - target_addr, source_addr, + error_t err = rm_cap_copy (activity, target_address_space, target_addr, + source_address_space, source_addr, flags, properties); assert (err == 0); #endif @@ -625,12 +629,12 @@ cap_copy_x (activity_t activity, addr_t address_space, /* Copy the capability SOURCE to capability TARGET. Preserves SOURCE's subpage specification and TARGET's guard. */ static inline bool -cap_copy (activity_t activity, addr_t as_root_addr, - struct cap *target, addr_t target_addr, - struct cap source, addr_t source_addr) +cap_copy (activity_t activity, + addr_t target_as, struct cap *target, addr_t target_addr, + addr_t source_as, struct cap source, addr_t source_addr) { - return cap_copy_x (activity, as_root_addr, target, target_addr, - source, source_addr, 0, CAP_PROPERTIES_VOID); + return cap_copy_x (activity, target_as, target, target_addr, + source_as, source, source_addr, 0, CAP_PROPERTIES_VOID); } #ifndef RM_INTERN |