Age | Commit message (Collapse) | Author |
|
* rm.h (rm_method_id_string): Handle the case where ID is
RM_activity_stats.
|
|
2008-05-23 Neal H. Walfield <neal@gnu.org>
* cap.h (RM_object_status): Define.
(object_dirty): Likewise.
(object_referenced): Likewise.
(object_status): New method.
* folio.h (struct folio): Add fields dirty and referenced.
(folio_object_referenced): New function.
(folio_object_referenced_set): Likewise.
(folio_object_dirty): Likewise.
(folio_object_dirty_set): Likewise.
viengoos/
2008-05-23 Neal H. Walfield <neal@gnu.org>
* rm.h (rm_method_id_string): Handle the case where ID is
RM_object_status.
* server.c (server_loop): Implement the object_status method.
* ager.c (ager_loop): Set DESC->USER_DIRTY and DESC->REFERENCED as
appropriate.
* object.c (folio_object_alloc): Clear ODESC->USER_REFERENCED and
ODESC->USER_DIRTY.
(folio_object_alloc): Clear the object's user referenced and user
dirty bits.
* object.h (struct object_desc): Add fields user_dirty and
user_referenced.
(object_desc_unmap): Update DESC->USER_DIRTY and
DESC->USER_REFERENCED appropriately.
(object_desc_flush): LIkewise.
|
|
2008-02-20 Neal H. Walfield <neal@gnu.org>
* cap.h (RM_object_discarded_clear): Define.
(object_discarded_clear): New method.
viengoos/
2008-02-20 Neal H. Walfield <neal@gnu.org>
* server.c (server_loop): Implement object_discarded_clear method.
* rm.h (rm_method_id_string): Handle RM_object_discarded_clear
case.
|
|
* rm.h (rm_method_id_string): Handle
RM_thread_wait_object_destroyed.
|
|
* rm.h (as_dump): Change parameter to specify the root of an
address space, not necessarily a thread object.
* server.c (server_loop): Update as_dump implementation to be
consistent with the new as_dump API.
* server.c (ROOT): First lookup the capability using CAP. If it
is not a thread object, only then get the slot.
|
|
2008-01-15 Neal H. Walfield <neal@gnu.org>
* futex.h (futex_wait): New file.
* Makefile.am (includehurd_HEADERS): Add futex.h.
* headers.m4: Link $(BUILDIR)/include/hurd/futex.h to futex.h.
* RPC: Add futex message id assignment.
* folio.h (struct folio): Add field wait_queue. Remove field
checksum (for now).
viengoos/
2008-01-15 Neal H. Walfield <neal@gnu.org>
* object.h (struct thread): New forward.
(object_wait_queue_head): New declaration.
(object_wait_queue_tail): New declaration.
(object_wait_queue_next): New declaration.
(object_wait_queue_prev): New declaration.
(object_wait_queue_enqueue): New declaration.
(object_wait_queue_dequeue): New declaration.
(object_wait_queue_for_each): New macro.
* object.c (object_wait_queue): New function.
(object_wait_queue_head): Likewise.
(object_wait_queue_tail): Likewise.
(object_wait_queue_next): Likewise.
(object_wait_queue_prev): Likewise.
(object_wait_queue_check): Likewise.
(object_wait_queue_enqueue): Likewise.
(object_wait_queue_dequeue): Likewise.
* thread.h (struct wait_queue_node): New structure.
(struct thread): Add fields wait_queue_head, wait_queue_tail,
futex_block, futex_offset and wait_queue.
* thread.c (thread_deinit): If THREAD is enqueue on a wait queue,
dequeue it.
* rm.h: Include <hurd/futex.h>.
(rm_method_id_string): Handle the RM_futex case.
* server.c: Include <hurd/futex.h>.
(server_loop): Implement the rm_futex method.
ruth/
2008-01-15 Neal H. Walfield <neal@gnu.org>
* ruth.c: Include <hurd/futex.h>.
(main) Test futex implementation.
|
|
2008-01-01 Neal H. Walfield <neal@gnu.org>
* activity.h (RM_activity_properties): Rename...
(RM_activity_policy): ... to this. Update users.
(struct activity_memory_policy): New structure.
(ACTIVITY_MEMORY_POLICY): New definition.
(ACTIVITY_MEMORY_POLICY_VOID): Likewise.
(struct activity_policy): New structure.
(ACTIVITY_POLICY): New definition.
(ACTIVITY_POLICY_VOID): Likewise.
(ACTIVITY_PROPERTIES_PRIORITY_SET): Rename...
(ACTIVITY_POLICY_SIBLING_REL_PRIORITY_SET): ... to this. Update
users.
(ACTIVITY_PROPERTIES_WEIGHT_SET): Rename...
(ACTIVITY_POLICY_SIBLING_REL_WEIGHT_SET): ... to this. Update
users.
(ACTIVITY_PROPERTIES_STORAGE_QUOTA_SET): Rename...
(ACTIVITY_POLICY_STORAGE_SET): ... to this. Update users.
(ACTIVITY_PROPERTIES_ALL_SET): Rename...
(ACTIVITY_POLICY_SIBLING_REL_SET): ... to this.
(ACTIVITY_POLICY_CHILD_REL_PRIORITY_SET): New definition.
(ACTIVITY_POLICY_CHILD_REL_WEIGHT_SET): Likewise.
(ACTIVITY_POLICY_CHILD_REL_SET): Likewise.
(activity_properties): Rename...
(activity_policy): ... to this. Accept a structure rather than
individual variables. Update callers.
viengoos/
2008-01-01 Neal H. Walfield <neal@gnu.org>
* activity.h: Don't include <l4.h>, <errno.h> or <hurd/btree.h>.
Include <hurd/activity.h>.
(struct activity): Remove fields priority, weight and
storage_quota. Replace with policy. Change folio_count to a
uint32_t. Update users.
* server.c (server_loop): Remove activity_properties
implementation. Add activity_policy implementation.
* rm.h (rm_method_id_string): Remove RM_activity_properties case.
Handle RM_activity_policy.
ruth/
2008-01-01 Neal H. Walfield <neal@gnu.org>
* ruth.c (main): Remove activity_properties test. Replace with
activity_policy test.
|
|
2007-12-18 Neal H. Walfield <neal@gnu.org>
* rm.h: Don't include <assert.h>, <l4.h>, <errno.h>,
<hurd/types.h>, <hurd/addr.h> or <hurd/addr-trans.h>. Include
<hurd/folio.h> and <hurd/exceptions.h>.
(RM_folio_alloc, RM_folio_free, RM_folio_object_alloc,
folio_alloc, folio_free, folio_object_alloc): Move from here...
* ../hurd/folio.h: ... to this file.
* rm.h (RM_cap_copy, RM_cap_read, RM_object_slot_copy_out,
RM_object_slot_copy_in, RM_object_slot_read, cap_copy, cap_read,
object_slot_copy_out, object_slot_copy_in, object_slot_read,
CAP_COPY_COPY_ADDR_TRANS_SUBPAGE, CAP_COPY_COPY_ADDR_TRANS_GUARD,
CAP_COPY_COPY_SOURCE_GUARD, CAP_COPY_WEAKEN): Move from here...
* ../hurd/folio.h: ... to this file.
* rm.h (RM_exception_collect, exception_collect): Move from
here...
* ../hurd/exceptions.h: ... to this file.
hurd/
2007-12-18 Neal H. Walfield <neal@gnu.org>
* folio.h: Include <hurd/addr.h>, <hurd/startup.h> and <stdint.h>.
(RM_folio_alloc, RM_folio_free, RM_folio_object_alloc,
folio_alloc, folio_free, folio_object_alloc): Move here...
* ../viengoos/rm.h: ... from this file.
* cap.h: Don't include <hurd/rm.h>. Include <hurd/startup.h>.
(RM_cap_copy, RM_cap_read, RM_object_slot_copy_out,
RM_object_slot_copy_in, RM_object_slot_read, cap_copy, cap_read,
object_slot_copy_out, object_slot_copy_in, object_slot_read,
CAP_COPY_COPY_ADDR_TRANS_SUBPAGE, CAP_COPY_COPY_ADDR_TRANS_GUARD,
CAP_COPY_COPY_SOURCE_GUARD, CAP_COPY_WEAKEN): Move here...
* ../viengoos/rm.h: ... from this file.
* exceptions.h: Include <hurd/thread.h>.
(RM_exception_collect, exception_collect): Move here...
* ../viengoos/rm.h: ... from here.
|
|
2007-12-13 Neal H. Walfield <neal@gnu.org>
* rm.h (folio_object_alloc): Take additional parameter, a slot to
store a weak capability.
(CAP_COPY_WEAKEN): Define.
* server.c (server_loop): Update implementation of
folio_object_alloc to accept the additional parameter. If not
ADDR_VOID, store a weak capability to the created object in the
specified slot. If the CAP_COPY_WEAKEN flag is specified in a
object_slot_copy_out, object_slot_copy_in or cap_copy invocation,
copy a weakened capability to the target slot.
hurd/
2007-12-13 Neal H. Walfield <neal@gnu.org>
* cap.h (cap_type_weak_p): New function.
(cap_type_weaken): Likewise.
(cap_copy_x): If CAP_COPY_WEAKEN is set in FLAGS, weaken the
capability stored in TARGET.
libhurd-mm/
2007-12-13 Neal H. Walfield <neal@gnu.org>
* storage.c (storage_alloc_): Update to folio_object_alloc's
interface change.
(storage_free_): Likewise.
ruth/
2007-12-13 Neal H. Walfield <neal@gnu.org>
* ruth.c (main): Update users of folio_object_alloc to interface
change.
|
|
* rm.h (rm_putchar): Remove function.
(putchar): Generate method stubs using RPC_SIMPLE.
|
|
2007-12-13 Neal H. Walfield <neal@gnu.org>
* rpc.h (RPCSTOREARG): Remove type_suffix argument. Update
callers.
(RPCSTOREARG): Make a__ a TYPE *, not a TYPE.
(RPCLOAD): Remove deref argument. Update callers.
(RPCLOADARG): Remove deref argument, don't apply it to ARG.
Update callers.
(RPC_GRAB): Rename from this...
(RPC_GRAB2): ... to this. Update callers.
(RPC_GRAB): New macro.
(RPC): Require that the formal out arguments take values not
references. Change the reply marshal function arguments to take
values, not references.
viengoos/
2007-12-13 Neal H. Walfield <neal@gnu.org>
* rm.h (cap_read): Change out arguments to the actual types and
not references.
(object_slot_read): Likewise.
* server.c (server_loop): Update calls to reply marshal functions
to pass values, not references.
|
|
2007-12-10 Neal H. Walfield <neal@gnu.org>
Properly account memory and folios.
* activity.h (struct activity): Remove field objects. New fields
parent_ptr, active, inactive_clean, inactive_dirty and dying.
(root_activity): New declaration.
(activity_create): Return void. Don't take priority, weight and
storage_quota arguments. Update callers.
(activity_for_each_ancestor): New macro.
(activity_charge): New function.
(activity_for_each_child): New macro.
(activity_dump): New declaration.
(activity_consistency_check_): Likewise.
(activity_consistency_check): New macro.
* activity.c (root_activity): Define.
(activity_create): Return void. Don't take priority, weight and
storage_quota arguments. Remove relevant functionality. Set
CHILD->PARENT_PTR appropriately. Be careful when bootstrapping.
(activity_destroy): Check that VICTIM->DYING is not set. If so,
panic. Otherwise, set it. When recursively destroying an
activity, call object_free, not activity_destroy, to clean up.
Abandon all own frames. Assert that VICTIM->FRAMES and
VICTIM_FOLIO_COUNT are 0. Set PARENT->CHILDREN to
VICTIM->SIBLING_NEXT if VICTIM is the head of the list.
(do_activity_dump): New function.
(activity_dump): New function.
(activity_consistency_check_): New function.
* object.h: Don't include "thread.h".
(struct object_desc): Remove field activity. Rename field alru to
activity_lru. Rename field GLRU to global_lru. New fields dirty,
age and activity.
(LINK_TEMPLATE): New macro. Use it.
(dirty): Remove declaration.
(clean): Likewise.
(global_active): New declaration.
(global_inactive_dirty): Likewise.
(global_inactive_clean): Likewise.
(disowned): Likewise.
(object_desc_disown_simple): New function.
(object_disown_simple): Likewise.
(object_desc_disown_): Likewise.
(object_disown_): Likewise.
(object_desc_disown): New macro.
(object_disown): Likewise.
(object_desc_claim_): New function.
(object_claim_): Likewise.
(object_desc_claim): New macro.
(object_claim): Likewise.
(folio_parent): Remove parameter principal. Update callers.
(object_free): Improve parentheses.
* object.c: Include "thread.h".
(global_active): Define.
(global_inactive_dirty): Likewise.
(global_inactive_clean): Likewise.
(disowned): Likewise.
(object_init): Add asserts.
(memory_object_setup): Rename from this...
(memory_object_alloc): ... to this. Take additional parameters,
the type, oid and version. Also set up the object's descriptor.
Update callers.
(memory_object_destroy): Add asserts. Remove object from the
various linked lists. If OBJECT is an activity, assert that there
are no frames allocated against it.
(object_find_soft): If OBJECT is not accounted or inactive, assign
to ACTIVITY.
(folio_reparent): Rename from this...
(folio_parent): ... to this. Remove the parameter PRINCIPAL. Use
ACTIVITY where PRINCIPAL was previous used. Add asserts.
Correctly add FOLIO to ACTIVITY's folio list.
(folio_alloc): Check if the activity's storage quota allows the
allocation of another folio. Account the allocation of the folio.
(folio_free): Add asserts. Correctly account the folio. Clear
FOLIO->NEXT and FOLIO->PREV. Disown FOLIO's frame.
(folio_object_alloc): Assign OBJECT to ACTIVITY. When creating an
activity, call activity_create.
* cap.h (cap_set): Take additional parameter, a struct activity *.
Pass it to cap copy.
* cap.c Include "thread.h".
(cap_set_object): Remove dead function.
(cap_to_object): Clear CAP->TYPE if object_find returns NULL.
(cap_shootdown): Asser that ACTIVITY is not NULL.
* viengoos.c (root_activity): Don't define here.
* t-as.c (root_activity): Remove static qualifier.
* t-link.c: New file.
* t-activity.c: New file.
* Makefile.am (TESTS): Add t-activity and t-link.
(t_activity_CPPFLAGS): New variable.
(t_activity_SOURCES): Likewise.
(t_activity_LDADD): Likewise.
(t_link_CPPFLAGS): Likewise.
(t_link_SOURCES): Likewise.
* rm.h (RM_as_dump): Define.
(rm_method_id_string): Remove case for RM_activity_create.
(as_dump): New method.
* server.c (server_loop): Add support for method as_dump. Remove
support for method activity_create.
hurd/
2007-12-10 Neal H. Walfield <neal@gnu.org>
* activity.h (RM_activity_create): Don't define.
(activity_create): Remove method.
ruth/
2007-12-10 Neal H. Walfield <neal@gnu.org>
* ruth.c (main): Don't call rm_activity_create.
|
|
2007-12-04 Neal H. Walfield <neal@gnu.org>
Remove exception threads. Replace with support for activations.
* thread.h (THREAD_SLOTS): Bump to 3.
(struct thread): Add field exception_page. Remove fields
have_exception and exception.
(thread_exregs): Take additional arguments exception_page and
exception_page_out. Update users.
(thread_raise_exception): New declaration.
* thread.c (THREAD_VERSION): Define.
(thread_init): Remove code related to the exception thread.
(thread_commission): Likewise.
(thread_decommission): Likewise.
(thread_exregs): Likewise. Take additional arguments
EXCEPTION_PAGE and EXCEPTION_PAGE_OUT. If CONTROL contains
HURD_EXREGS_GET_REGS and EXCEPTION_PAGE_OUT is not NULL, return a
capability to THREAD's exception page in *EXCEPTION_PAGE_OUT. If
CONTROL contains HURD_EXREGS_SET_EXCEPTION_PAGE, then set THREAD's
exception page to EXCEPTION_PAGE.
(thread_raise_exception): New function.
* server.c (server_loop): Remove code related to handling the
exception thread. Call thread_raise_exception to propagate
exception. Reimplement the exception_collect method. Update
implementation of the thread_exregs method to support the new
argument passing scheme. Add support for setting and retrieving
the exception page.
(REPLYW): Only clear MSG here.
* rm.h (exception_collect): Take an additional argument, the
principal.
* object.h (object_type): New function.
hurd/
2007-12-04 Neal H. Walfield <neal@gnu.org>
Remove exception threads. Replace with support for activations.
* thread.h: Include <l4/ipc.h>.
(struct exception_page): New structure.
(THREAD_EXCEPTION_PAGE_SLOT): Define.
(HURD_EXREGS_EXCEPTION_THREAD): Don't define.
(HURD_EXREGS_SET_EXCEPTION_PAGE): Define.
(HURD_EXREGS_SET_REGS): Update.
(hurd_exception_handler_t): New definition.
(struct hurd_thread_exregs_in): New structure.
(struct hurd_thread_exregs_out): New structure.
(thread_exregs): Replace the bulk of the arguments with struct
hurd_thread_exregs_in and struct hurd_thread_exregs_out. Update
users.
* exceptions.h (HURD_THREAD_MAIN_VERSION): Remove macro.
(HURD_THREAD_EXCEPTION_VERSION): Likewise.
(hurd_thread_is_exception_thread): Remove function.
(hurd_thread_is_main_thread): Likewise.
(hurd_exception_thread): Likewise.
(hurd_main_thread): Likewise.
(exception_handler_loop): Remove declaration.
(exception_handler): New declaration.
(exception_handler_entry): Likewise.
(exception_handler_end): Likewise.
libhurd-mm/
2007-12-04 Neal H. Walfield <neal@gnu.org>
Remove exception threads. Replace with support for activations.
* Makefile.am (ARCH_SOURCES): New variable.
[ARCH_IA32]: Add ia32-exception-entry.S.
(libhurd_mm_a_SOURCES): Add $(ARCH_SOURCES).
* ia32-exception-entry.S: New file.
* exceptions.c: Include <hurd/storage.h> and <hurd/thread.h>.
(ARG): Don't define.
(ARG64): Likewise.
(ARG_ADDR): Likewise.
(CHECK): Likewise.
(exception_handler_loop): Remove function.
(exception_fetch_exception): New function.
(exception_handler): New function.
(STACK_SIZE): Don't define.
(stack): Don't declare.
(exception_handler_init): Set up the thread's exception page.
libpthread/
2007-12-04 Neal H. Walfield <neal@gnu.org>
Remove exception threads. Replace with support for activations.
* sysdeps/l4/hurd/pt-sysdep.h (PTHREAD_SYSDEP_MEMBERS): Remove
fields exception_handler_stack and exception_handler_sp. Add
field exception_page.
* sysdeps/l4/hurd/pt-thread-alloc.c (__pthread_thread_alloc):
Allocate a page for THREAD->EXCEPTION_PAGE, not
THREAD->EXCEPTION_HANDLER_STACK.
* sysdeps/l4/hurd/ia32/pt-setup.c: Include <hurd/thread.h> and
<hurd/exceptions.h>.
(__pthread_setup): Remove code dealing with the exception thread.
Set up the exception page.
* sysdeps/l4/hurd/pt-thread-start.c (__pthread_thread_start):
Remove code dealing with the exception thread. Update to use new
rm_thread_exregs interface. Also set the thread's exception page.
* sysdeps/l4/hurd/pt-thread-halt.c (__pthread_thread_halt): Remove
code to dealing with the exception thread. Free the
THREAD->EXCEPTION_PAGE.
ruth/
2007-12-04 Neal H. Walfield <neal@gnu.org>
* ruth.c (main): Update to use new rm_thread_exregs interface.
|
|
2007-12-01 Neal H. Walfield <neal@gnu.org>
* rpc.h: Rewrite to more elegantly generate stubs.
* activity.h: Update to use new RPC stub generation interface.
* exceptions.h: Likewise.
* thread.h: Likewise.
viengoos/
2007-12-01 Neal H. Walfield <neal@gnu.org>
* rm.h: Update to use new RPC stub generation interface.
|
|
2007-11-29 Neal H. Walfield <neal@gnu.org>
* activity.h: Include <hurd/addr.h>.
Add method id RM_activity_properties.
(ACTIVITY_PROPERTIES_PRIORITY_SET): Define.
(ACTIVITY_PROPERTIES_WEIGHT_SET): Likewise.
(ACTIVITY_PROPERTIES_STORAGE_QUOTA_SET): Likewise.
(ACTIVITY_PROPERTIES_ALL_SET): Likewise.
(activity_properties): New declaration.
* rpc.h (RPC53): New macro.
viengoos/
2007-11-29 Neal H. Walfield <neal@gnu.org>
* server.c (OBJECT_): Just pass REQUIRE_WRITABLE on to CAP_.
(server_loop): Save the capability that identifies the principal.
Implement the RM_activity_properties method.
* rm.h (rm_method_id_string): Handle the RM_activity_properties
case.
ruth/
2007-11-29 Neal H. Walfield <neal@gnu.org>
* ruth.c (main): Add test for activity_properties.
|
|
2007-11-28 Neal H. Walfield <neal@gnu.org>
* Makefile.am (includehurd_HEADERS): Add activity.h.
* headers.m4: Create link from ../include/hurd/activity.h to
activity.h.
* activity.h: New file.
viengoos/
2007-11-28 Neal H. Walfield <neal@gnu.org>
* activity.h (activity_allocate): Rename from this...
(activity_create): ... to this. Remove arguments caller, folio,
indent, activity and control. Add argument child. Update users.
* activity.c (activity_allocate): Rename from this...
(activity_create): ... to this. Remove arguments caller, folio,
indent, activity and control. Add argument child. If CHILD is
live, destroy it first. Correctly add CHILD to PARENT's children
list.
* activity.h (activity_destroy): Remove argument cap. Update
callers.
* activity.c (activity_destroy): Remove argument cap. Correctly
destroy child activities and allocated folios. Correctly unlink
from parent.
* server.c (CAP_): Remove argument writablep. Add argument
require_writable. Fail if REQUIRE_WRITABLE is true, and the
object is not writable.
(OBJECT_): Likewise.
(CAP): Remove argument writablep. Add argument require_writable.
Update callers.
(OBJECT): Likewise.
(server_loop): Add support for the activity_create method.
* object.c (folio_free): Also update FOLIO->FOLIO_VERSION.
(folio_object_alloc): Check if the object is a
cap_activity_control, not a cap_activity.
(folio_reparent): Correctly link FOLIO to PARENT.
* t-as.c (test): Don't create a cap_activity object but a
cap_activity_control object.
* viengoos.c (system_task_load): Likewise.
* cap.c (cap_to_object): Use cap_types_compatible when asserting
that the capability's type and the object's type are identical.
* thread.c (thread_exregs): Use cap_types_compatible when checking
whether the thread has a valid activity object.
* rm.h: Include <hurd/activity.h>.
(rm_method_id_string): Handle the RM_activity_create case.
ruth/
2007-11-28 Neal H. Walfield <neal@gnu.org>
* ruth.c: Include <hurd/activity.h>.
(main): Add test for activity_create.
|
|
2007-11-22 Neal H. Walfield <neal@gnu.org>
* thread.h (struct thread): Add fields efalgs, user_handle and
init.
(thread_create_in): Rename from this...
(thread_init): ... to this. Remove the activity argument.
Update all users.
(thread_create): Remove declaration.
(thread_destroy): Rename from this...
(thread_deinit): ... to this. Update all users.
(thread_send_sp_ip): Remove declaration.
(thread_exregs): New declaration.
* thread.c: Include <hurd/thread.h>.
(thread_lookup): Add additional asserts.
(thread_create_in): Rename from this...
(thread_init): ... to this. Remove the activity argument. Don't
set THREAD->ACTIVITY. Set THREAD->INIT to true.
(thread_create): Remove function.
(thread_destroy): Rename from this...
(thread_deinit): ... to this. Correctly calculate the bit to
deallocate. Fix assert. Set THREAD->INIT to false.
(thread_commission): If THREAD->INIT is false, first call
thread_init. Correctly calculate the thread ids to initialize.
(thread_send_sp_ip): Remove function.
(thread_exregs): New function.
* rm.h (RPC_STUB_PREFIX): Include <hurd/thread.h>.
(rm_method_id_string): Support RM_thread_exregs.
(THREAD_ASPACE_SLOT, THREAD_ACTIVITY_SLOT): Move from...
* ../hurd/thread.h: ... to this new file.
* server.c: Include <hurd/thread.h>.
(server_loop): Implement the thread_exregs RPC.
* viengoos.c (system_task_load): Set THREAD->ACTIVITY to a
capability designating ROOT_ACTIVITY.
hurd/
2007-11-22 Neal H. Walfield <neal@gnu.org>
* Makefile.am (includehurd_HEADERS): Add thread.h.
* headers.m4: Link $(BUILDIR)/include/hurd/thread.h to thread.h.
* thread.h: New file.
* rpc.h: Include <errno.h>.
ruth/
2007-11-22 Neal H. Walfield <neal@gnu.org>
* ruth.c: Include <hurd/thread.h>.
(main): Add test case for thread creation.
|
|
* rm.h (CAP_COPY_COPY_SUBPAGE): Rename from this...
(CAP_COPY_COPY_ADDR_TRANS_SUBPAGE): ... to this. Update all users.
(CAP_COPY_COPY_GUARD): Rename from this...
(CAP_COPY_COPY_ADDR_TRANS_GUARD): ... to this. Update all users.
(CAP_COPY_COPY_SOURCE_GUARD): New constant.
|
|
2007-11-19 Neal H. Walfield <neal@gnu.org>
* Makefile.am (includehurd_HEADERS): Add exceptions.h.
* headers.m4: Link $(BUILDIR)/include/hurd/exceptions.h to
exceptions.h.
* exceptions.h: New file.
viengoos/
2007-11-19 Neal H. Walfield <neal@gnu.org>
* thread.h (struct thread): Add fields have_exception and
exception.
(UTCB_AREA_SIZE): Provide space for two UTCBs.
* thread.c: Include <hurd/exceptions.h>.
(thread_create_in): For each thread that we allocate, allocate two
consecutive l4 thread ids.
(thread_commission): Initialize the main thread and the exception
thread.
(thread_decommission): Destroy both the main thread and the
exception thread.
* rm.h: Add RM_exception_collect.
(rm_method_id_string): Handle RM_exception_collect.
(exception_collect): New RPC method.
* server.c: Include <hurd/exceptions.h>.
(server_loop): If FROM is the exception thread, look up the thread
object using the main thread id. Propagate any fault to the
exception thread. If not immediately successful, save the message
in THREAD->EXCEPTION and set THREAD->HAVE_EXCEPTION. Implement
the exception_collect method.
(DEBUG): Also print the method number.
libhurd-mm/
2007-11-19 Neal H. Walfield <neal@gnu.org>
* Makefile.am (libhurd_mm_a_SOURCES): Add exceptions.h,
exceptions.c, pager.h, pager.c, anonymous.h and anonymous.c.
* headers.m4: Link $(BUILDDIR)/include/hurd/pager.h to pager.h.
Link $(BUILDDIR)/include/hurd/anonymous.h to anonymous.h.
* mm-init.c: Include "exceptions.h".
(mm_init): Call exception_handler_init.
* pager.h: Completely rewrite.
* pager.c: Likewise.
* anonymous.h: Likewise.
* anonymous.c: Likewise.
* exceptions.h: New file.
* exceptions.c: Likewise.
* mmap.c: Include <hurd/anonymous.h>.
(mmap): Rewrite to use an anonymous pager.
|
|
2007-11-19 Neal H. Walfield <neal@gnu.org>
* Makefile.am (includehurd_HEADERS): Add rpc.h and exceptions.h.
* headers.m4: Link $(BUILDIR)/include/hurd/rpc.h to rpc.h.
* rpc.h: New file. Moved and generalized definitions RPC template
definitions here from ../viengoos/rm.h.
(RPC_CONCAT2): New macro.
(RPC_CONCAT): Likewise.
(RPC_STUB_PREFIX): Likewise. Use it to generate the stub names.
(RPC_STUB_PREFIX_): New macro.
(RPC_ID_PREFIX): Likewise. Use it to generate method ids.
(RPC_ID_PREFIX_): New macro.
(RPC_TARGET): Make sure this macro is defined.
(RPC_TARGET_ARG_): Define.
(RPC_TARGET_): Define.
(RPC_MARSHAL): New macro.
(RPC_UNMARSHAL): New macro.
(RPCX): Use the above macros. Take four additional arguments, the
list of in and out parameters with and without types. Update
users. General marshal and unmarshal stubs.
(RPCLOAD): Append argument to *MSG.
(RPCSTORE): Store from *MSG, not registers.
viengoos/
2007-11-19 Neal H. Walfield <neal@gnu.org>
* rm.h (RPC_STUB_PREFIX): Define.
(RPC_ID_PREFIX): Likewise.
(RPC_TARGET_NEED_ARG): Undefine.
(RPC_TARGET): Define.
#include <hurd/rpc.h>.
(rm_putchar): Add declaration for __hurd_startup_data.
(RPCX, RPCLOAD, RPCSTORE, RPC2, RPC3, RPC4, RPC5, RPC6, RPC7)
(RPC8, RPC9, RPC22, RPC32, RPC42, RPC52): Move from here...
* ../hurd/rpc.h: ... to here.
|
|
* viengoos/Makefile.am: New file based on ../wortel/Makefile.am.
* viengoos/headers.m4: New file.
* viengoos/config.m4: New file based on ../wortel/config.m4.
* viengoos/viengoos.h: New file.
* viengoos/viengoos.c: New file.
* viengoos/activity.h: Likewise.
* viengoos/activity.c: Likewise.
* viengoos/as.h: Likewise.
* viengoos/as.c: Likewise.
* viengoos/cap-lookup.c: Likewise.
* viengoos/cap.h: Likewise.
* viengoos/cap.c: Likewise.
* viengoos/thread.h: New file.
* viengoos/thread.c: New file.
* viengoos/object.h: New file.
* viengoos/object.c: New file.
* viengoos/rm.h: New file.
* viengoos/server.c: New file.
* viengoos/server.h: New file.
* viengoos/zalloc.h: Copied from ../physmem.
* viengoos/zalloc.c: Copied from ../physmem.
Don't include "output.h".
Include <hurd/stddef.h>.
Change uses of min_page_size to PAGESIZE.
* viengoos/memory.h: New file.
* viengoos/memory.c: New file.
* viengoos/sigma0.c: Copy from ../wortel.
* viengoos/sigma0.h: Copy from ../wortel.
Don't include "shutdown.h".
Include <hurd/stddef.h>.
* viengoos/bits.h: Likewise.
* viengoos/panic.c: New file.
* viengoos/debug.c: Likewise.
* viengoos/debug.h: Likewise.
* viengoos/boot-modules.h: Likewise.
* viengoos/boot-modules.c: Likewise.
* viengoos/elf.h: Copied from ../wortel.
* viengoos/loader.c: New file based on ../wortel/loader.c.
* viengoos/loader.h: New file.
* viengoos/multiboot.h: Copied from Grub.
* viengoos/mmap.c: New file based on ../physmem/mmap.c.
* viengoos/malloc-wrap.c: New file based on ../physmem/malloc-wrap.c.
* viengoos/malloc.c: Version 2.8.3 of Doug Lea's malloc.c.
* viengoos/malloc.h: Version 2.8.3 of Doug Lea's malloc.h.
* viengoos/ia32-cmain.c: New file based on ../wortel/ia32-cmain.c.
* viengoos/ia32-crt0.S: Copied from ../wortel.
(STACK_SIZE): Use a 16 page stack.
* viengoos/ia32-output.c: Copied from ../wortel.
* viengoos/ia32-shutdown.c: Likewise.
* viengoos/output.h: New file based on ../wortel/output.h.
Include <stdarg.h>.
(cprintf): New definition.
(output_debug): Don't define.
(debug): Don't define.
* viengoos/output.c: New file based on ../wortel/output.c.
Don't include <stdlib.h>.
(vprintf): New function.
(printf): Implement in terms of vprintf.
* viengoos/output-none.c: Copied from ../wortel.
* viengoos/output-serial.c: Likewise.
* viengoos/output-stdio.c: New file.
* viengoos/output-vga.c: Copied from ../wortel.
* viengoos/shutdown.h: New file based on ../wortel/shutdown.h.
Don't include "output.h".
(panic): Don't define.
(shutdown): Rename from this...
(shutdown_machine): ... to this.
* viengoos/shutdown.c: New file based on ../wortel/shutdown.c.
(reset) [_L4_TEST_ENVIRONMENT]: Call abort.
(halt) [_L4_TEST_ENVIRONMENT]: Call abort.
(shutdown): Rename from this...
(shutdown_machine): ... to this.
* viengoos/t-environment.h: New file based on
../libl4/tests/environment.h.
Protect from multiple inclusion.
Include <hurd/stddef.h>.
Include <string.h>.
Include <l4/stubs.h>.
(program_name): New declaration.
(check_nr): Don't assume that val1 and val2 are _L4_word_t, use
typeof instead.
(main): Call output_init.
* viengoos/t-as.c: New file.
|