diff options
author | Neal H. Walfield <neal@gnu.org> | 2008-12-18 22:54:15 +0100 |
---|---|---|
committer | Neal H. Walfield <neal@gnu.org> | 2008-12-18 22:54:15 +0100 |
commit | 207770cea7fece43bf5517fec7abd88a3a7d6146 (patch) | |
tree | 6f41abd1dc4782f34b339b00da956d0c778ef1b7 /libviengoos | |
parent | f5cfa7cbb8a2fff68cf87a3a685428507ce977b4 (diff) |
Support batching requests for object_discarded_clear.
libviengoos/
2008-12-18 Neal H. Walfield <neal@gnu.org>
* viengoos/cap.h (object_discarded_clear): Take additional
parameter count. Take multiple object addresses.
viengoos/
2008-12-18 Neal H. Walfield <neal@gnu.org>
* server.c (server_loop): Handle multiple objects in
object_discarded_clear.
libhurd-mm/
2008-12-18 Neal H. Walfield <neal@gnu.org>
* anonymous.c (fault): Batch object discard requests.
Diffstat (limited to 'libviengoos')
-rw-r--r-- | libviengoos/ChangeLog | 5 | ||||
-rw-r--r-- | libviengoos/viengoos/cap.h | 17 |
2 files changed, 16 insertions, 6 deletions
diff --git a/libviengoos/ChangeLog b/libviengoos/ChangeLog index 3006d73..180a7a4 100644 --- a/libviengoos/ChangeLog +++ b/libviengoos/ChangeLog @@ -1,5 +1,10 @@ 2008-12-18 Neal H. Walfield <neal@gnu.org> + * viengoos/cap.h (object_discarded_clear): Take additional + parameter count. Take multiple object addresses. + +2008-12-18 Neal H. Walfield <neal@gnu.org> + * viengoos/misc.h (vg_method_id_string): Handle VG_messenger_id. 2008-12-18 Neal H. Walfield <neal@gnu.org> diff --git a/libviengoos/viengoos/cap.h b/libviengoos/viengoos/cap.h index b456d34..50562d9 100644 --- a/libviengoos/viengoos/cap.h +++ b/libviengoos/viengoos/cap.h @@ -417,7 +417,7 @@ enum VG_CAP_COPY_PRIORITY_SET = 1 << 5, }; -/* Copy the capability in capability slot SOURCE to the slot at VG_ADDR +/* Copy the capability in capability slot SOURCE to the slot at ADDR in the object OBJECT. If OBJECT is VG_ADDR_VOID, then the calling thread's address space root is used. @@ -445,21 +445,26 @@ RPC(cap_copy, 5, 0, 0, cap_t, source_object, vg_addr_t, source_addr, uintptr_t, flags, struct vg_cap_properties, properties) -/* Overwrite the capability slot at VG_ADDR in the object OBJECT with a +/* Overwrite the capability slot at ADDR in the object OBJECT with a void capability. */ RPC(cap_rubout, 1, 0, 0, /* cap_t activity, cap_t object, */ vg_addr_t, addr) -/* Returns the public bits of the capability at address VG_ADDR in OBJECT +/* Returns the public bits of the capability at address ADDR in OBJECT in TYPE and VG_CAP_PROPERTIES. */ RPC(cap_read, 1, 2, 0, /* cap_t activity, cap_t object, */ vg_addr_t, addr, /* Out: */ uintptr_t, type, struct vg_cap_properties, properties) -/* Clear the discarded bit of the object at VG_ADDR in object OBJECT. */ -RPC(object_discarded_clear, 1, 0, 0, - /* cap_t activity, cap_t object, */ vg_addr_t, addr) +/* Clear the discarded bit of the objects at ADDR in object OBJECT. + Note: this function takes multiple addresses. Add further + addresses manually using vg_message_add. COUNT indicates the + number of objects successfully discarded. Stops after the first + error. */ +RPC(object_discarded_clear, 1, 1, 0, + /* cap_t activity, cap_t object, */ vg_addr_t, addr, + int, count) /* If the object designated by OBJECT is in memory, discard it. OBJECT must have write authority. This does not set the object's |