diff options
author | neal <neal> | 2007-12-25 20:06:06 +0000 |
---|---|---|
committer | neal <neal> | 2007-12-25 20:06:06 +0000 |
commit | 7497724fdbd887029f3d70a691db27a34926e64a (patch) | |
tree | 0a5384b105bfedc8e61b5f87d2b18a1124c4dbf4 /viengoos/as.c | |
parent | 4744b703dc58a704e43a88f9af45042b9700fc32 (diff) |
hurd/
2007-12-25 Neal H. Walfield <neal@gnu.org>
* cap.h: Include <stdint.h>.
(OBJECT_PRIORITY_BITS): Define.
(OBJECT_PRIORITY_MAX): Likewise.
(OBJECT_PRIORITY_LRU): Likewise.
(OBJECT_PRIORITY_MIN): Likewise.
(struct object_policy): New structure.
(OBJECT_POLICY_INIT): Define.
(OBJECT_POLICY): Likewise.
(OBJECT_POLICY_VOID): Likewise.
(OBJECT_POLICY_DEFAULT): Likewise.
(struct cap_properties): New structure.
(CAP_PROPERTIES_INIT): Define.
(CAP_PROPERTIES): Likewise.
(CAP_PROPERTIES_VOID): Likewise.
(CAP_PROPERTIES_DEFAULT): Likewise.
(struct cap): Add fields discardable and priority.
[RM_INTERN]: Reduce OID to 54 bits.
[! RM_INTERN]: Allow the shadow field an entire word.
(CAP_PROPERTIES_GET): Define.
(CAP_PROPERTIES_SET): Likewise.
(CAP_COPY_DISCARDABLE_SET): Likewise.
(CAP_COPY_PRIORITY_SET): Likewise.
(cap_copy): Remove the stuct cap_addr_trans parameter and replace
with a struct cap_properties. Update callers.
(cap_read): Likewise.
(object_slot_copy_out): Likewise.
(object_slot_copy_in): Likewise.
(object_slot_read): Likewise.
(cap_copy_x): Likewise. Save the object policies in the shadow
capability.
(cap_get_shadow): Don't munge the address.
(cap_set_shadow): Likewise.
* thread.h: Include <hurd/cap.h>.
(struct hurd_thread_exregs_in): Remove field aspace_addr_trans.
Add field aspace_cap_properties. Rename field
aspace_addr_trans_flags to aspace_cap_properties_flags.
* folio.h (struct folio): Remove field discardable. Add field
policy.
(folio_object_alloc): Take an additional argument, a struct
object_policy. Update users.
* cap.h (cap_is_a): Remove dead code.
(cap_is_a_page): Remove dead code.
libhurd-mm/
2007-12-25 Neal H. Walfield <neal@gnu.org>
* as.h: Change VISIT's signature: pass a struct cap_properties
instead of a struct cap_addr_trans. Update callers.
* as.c (as_walk): Change VISIT's signature: pass a struct
cap_properties instead of a struct cap_addr_trans. Call VISIT
appropriately.
(as_alloc_slow): Update rm_cap_read use to reflect API changes.
(as_init): Update rm_cap_read use to reflect API changes. Use
CAP_PROPERTIES_SET to set shadow capability properties.
* storage.c (shadow_setup): Update rm_folio_object_alloc use to
reflect API changes. Also save the object policy in the shadow
capability.
(storage_alloc_): Likewise.
(storage_free_): Likewise.
viengoos/
2007-12-25 Neal H. Walfield <neal@gnu.org>
* object.h (struct object_desc): Add field policy.
(object_desc_to_cap): Also return the discardable bit and the
priority.
(folio_object_alloc): Take additional parameter, the object's
policy. Update callers.
* object.c (folio_object_alloc): Take additional parameter, the
object policy. Save it in the folio header.
* as.c (as_build_internal): Update cap_copy_x use to reflect API
changes.
* thread.h: Remove parameter addr_trans and replace with a
parameter that includes it and the object policy. Update users.
* thread.c (thread_exregs): Remove parameter addr_trans and
replace with a parameter that includes it and the object policy.
Pass it to cap_copy_x as appropriate.
* server.c: Include "output.h".
(server_loop): Update the folio_object_alloc,
object_slot_copy_out, object_slot_copy_in, and cap_copy
implementations to set the allocated object's policy consistent
with the API changes. Update the object_slot_read and cap_read
implementations to return the object policy consistent with the
API changes. Update the thread_exregs implementation to handle
the address space capability's object policy consistent with the
API changes.
ruth/
2007-12-25 Neal H. Walfield <neal@gnu.org>
* ruth.c (main): Change visit to be consistent with as_walk's
expected function signature. Update rm_folio_object_alloc use to
reflect API changes.
Diffstat (limited to 'viengoos/as.c')
-rw-r--r-- | viengoos/as.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/viengoos/as.c b/viengoos/as.c index 047c548..2f4572f 100644 --- a/viengoos/as.c +++ b/viengoos/as.c @@ -365,7 +365,9 @@ as_build_internal (activity_t activity, bool r = cap_copy_x (activity, &cappage->caps[pivot_idx], pivot_addr, *root, root_addr, - CAP_COPY_COPY_ADDR_TRANS_GUARD, addr_trans); + CAP_COPY_COPY_ADDR_TRANS_GUARD, + CAP_PROPERTIES (OBJECT_POLICY_DEFAULT, + addr_trans)); assert (r); /* Finally, set the slot at ROOT to point to CAPPAGE. */ @@ -383,7 +385,8 @@ as_build_internal (activity_t activity, r = cap_copy_x (activity, root, root_addr, rt.cap, rt.storage, CAP_COPY_COPY_ADDR_TRANS_SUBPAGE | CAP_COPY_COPY_ADDR_TRANS_GUARD, - addr_trans); + CAP_PROPERTIES (OBJECT_POLICY_DEFAULT, addr_trans)); + assert (r); } @@ -419,7 +422,8 @@ as_build_internal (activity_t activity, assert (r); r = cap_copy_x (activity, root, addr_chop (a, gbits), *root, addr_chop (a, gbits), - CAP_COPY_COPY_ADDR_TRANS_GUARD, addr_trans); + CAP_COPY_COPY_ADDR_TRANS_GUARD, + CAP_PROPERTIES (OBJECT_POLICY_DEFAULT, addr_trans)); assert (r); } |