summaryrefslogtreecommitdiff
path: root/hurd
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 /hurd
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 'hurd')
-rw-r--r--hurd/ChangeLog14
-rw-r--r--hurd/cap.h50
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.
diff --git a/hurd/cap.h b/hurd/cap.h
index 369355c..2d6ec3a 100644
--- a/hurd/cap.h
+++ b/hurd/cap.h
@@ -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