summaryrefslogtreecommitdiff
path: root/ruth
AgeCommit message (Collapse)Author
2008-05-302008-05-29 Thomas Schwinge <tschwinge@gnu.org>tschwinge
* Makefile.am [ENABLE_TESTS]: Don't build package's program.
2008-05-28viengoos/neal
2008-05-28 Neal H. Walfield <neal@gnu.org> * cap-lookup.c (slot_lookup_rel): Don't take parameter type. Pass -1 to lookup in its place. * server.c (server_loop): Update use of slot_lookup_rel to be consistent with new API. * t-as.c (try): Likewise. (test): Likewise. libhurd-mm/ 2008-05-28 Neal H. Walfield <neal@gnu.org> * as.h (slot_lookup): Remove parameter type. Update users. * as.c (as_init): Update user of slot_lookup_rel to be consistent with new API. (as_init): Likewise. (slot_lookup): Likewise. Remove parameter type. ruth/ 2008-05-28 Neal H. Walfield <neal@gnu.org> * ruth.c (main): Update use of slot_lookup to be consistent with new API.
2008-05-24hurd/neal
2008-05-24 Neal H. Walfield <neal@gnu.org> * activity.h (activity_stats): Take additional parameter, until_period. viengoos/ 2008-05-24 Neal H. Walfield <neal@gnu.org> * thread.h (THREAD_WAIT_STATS): Define. * server.c (server_loop): Update implementation of activity_stats to handle the new parameter, until_period. If the current period is less than UNTIL_PERIOD, queue the caller on PRINCIPAL and do not reply. * ager.c: Include "thread.h". (ager_loop): When generating an activity's statistics, if a thread is waiting for the statistic, send it reply. ruth/ 2008-05-24 Neal H. Walfield <neal@gnu.org> * ruth.c (main): Update user of rm_activity_stats to be consistent with new interface.
2008-03-012008-03-01 Neal H. Walfield <neal@gnu.org>neal
* ruth.c Include <signal.h>. (main): Test signal signal implementation.
2008-02-21/neal
2008-02-21 Neal H. Walfield <neal@gnu.org> * configure.ac (CFLAGS): Remove variable. (USER_CFLAGS): New variable. (USER_CPPFLAGS): Likewise. (USER_LDFLAGS): Likewise. (USER_LDADD): Likewise. (KERNEL_CFLAGS): Likewise. (KERNEL_CPPFLAGS): Likewise. * Makefile.am (SUBDIRS): Build . after building laden and viengoos. hieronymus/ 2008-02-21 Neal H. Walfield <neal@gnu.org> * Makefile.am (AM_CPPFLAGS): Remove variable. (AM_LDFLAGS): Likewise. (hieronymus_CPPFLAGS): New variable. (hieronymus_CFLAGS): Likewise. (hieronymus_LDFLAGS): Likewise. (hieronymus_LDADD): Don't include libc.a directly, use the value of $(USER_LDADD) instead. hurd/ 2008-02-21 Neal H. Walfield <neal@gnu.org> * Makefile.am (COMMON_CPPFLAGS): Remove variable. (t_addr_CPPFLAGS): Replace use of $(COMMON_CPPFLAGS) with use of $(CHECK_CPPFLAGS). (t_addr_trans_CPPFLAGS): Likewise. (t_rpc_CPPFLAGS): Likewise. libc-parts/ 2008-02-21 Neal H. Walfield <neal@gnu.org> * Makefile.am (COMMON_CPPFLAGS): Remove variable. (libc_parts_a_CPPFLAGS): Set to $(USER_CPPFLAGS). (libc_parts_a_CFLAGS): New variable. (libc_kernel_a_CPPFLAGS): Set to $(KERNEL_CPPFLAGS). (libc_kernel_a_CFLAGS): New variable. (t_setjmp_CPPFLAGS): Remove use of $(COMMON_CPPFLAGS) with $(CHECK_CPPFLAGS). libhurd-btree/ 2008-02-21 Neal H. Walfield <neal@gnu.org> * Makefile.am (COMMON_CPPFLAGS): Remove variable. (libhurd_btree_a_CPPFLAGS): Replace use of above with $(USER_CPPFLAGS). (libhurd_btree_a_CFLAGS): New variable. (btree_test_CPPFLAGS): Replace use $(COMMON_CPPFLAGS) with $(CHECK_CPPFLAGS). libhurd-ihash/ 2008-02-21 Neal H. Walfield <neal@gnu.org> * Makefile.am (AM_CPPFLAGS): Remove variable. (AM_CFLAGS): Likewise. (libhurd_ihash_a_CPPFLAGS): New variable. (libhurd_ihash_a_CFLAGS): Likewise. (libhurd_ihash_nomalloc_a_CPPFLAGS): Replace use of $(AM_CPPFLAGS) with $(USER_CPPFLAGS). (libhurd_ihash_nomalloc_a_CFLAGS): New variable. (t_ihash_CPPFLAGS): Remove use of $(AM_CPPFLAGS). (t_ihash64_CPPFLAGS): Likewise. (t_ihash_CFLAGS): New variable. (t_ihash64_CFLAGS): Likewise. * ihash.c: Don't include <hurd/ihash.h> but "ihash.h". libhurd-mm/ 2008-02-21 Neal H. Walfield <neal@gnu.org> * Makefile.am (COMMON_CPPFLAGS): Remove variable. (libhurd_mm_a_CPPFLAGS): Replace use of above with $(USER_CPPFLAGS). (libhurd_mm_a_CFLAGS): New variable. libpthread/ 2008-02-21 Neal H. Walfield <neal@gnu.org> * Makefile.am (AM_CPPFLAGS): Replace use of includes with $(USER_CPPFLAGS). (AM_CFLAGS): New variable. newlib/ 2008-02-21 Neal H. Walfield <neal@gnu.org> * Makefile.am (patch_files): Add 05-newlib-newlib-libc-include-machine-setjmp-h.patch, 06-newlib-newlib-libc-machine-i386-i386mach-h.patch, and 07-newlib-newlib-libm-machine-i386-i386mach-h.patch. (ccheaders): Remove variable. (SYSINCLUDES): Likewise. (newlib-build/libc.a newlib-build/libm.a): Set TARGET_CFLAGS to "$(USER_CPPFLAGS) $(USER_CFLAGS) $(USER_LDFLAGS)". * newlib/patches/05-newlib-newlib-libc-include-machine-setjmp-h.patch: New file. * newlib/patches/06-newlib-newlib-libc-machine-i386-i386mach-h.patch: New file. * newlib/patches/07-newlib-newlib-libm-machine-i386-i386mach-h.patch: New file. ruth/ 2008-02-21 Neal H. Walfield <neal@gnu.org> * Makefile.am (COMMON_CPPFLAGS): Remove variable. (ruth_CPPFLAGS): Set to $(USER_CPPFLAGS). (ruth_CFLAGS): New variable. (ruth_LDFLAGS): Set to $(USER_LDFLAGS). (ruth_LDADD): Set to $(USER_LDADD). viengoos/ 2008-02-21 Neal H. Walfield <neal@gnu.org> * Makefile.am (COMMON_CPPFLAGS): Remove variable. (viengoos_CPPFLAGS): Set to $(KERNEL_CPPFLAGS). (viengoos_CFLAGS): New variable. (libhurd_cap_a_CPPFLAGS): Set to $(USER_CPPFLAGS). (libhurd_cap_a_CFLAGS): New variable. (t_as_CFLAGS): New variable. (t_activity_CFLAGS): Likewise. (t_link_CFLAGS): Likewise.
2008-02-20libhurd-mm/neal
2008-02-20 Neal H. Walfield <neal@gnu.org> * anonymous.h: Include <hurd/exceptions.h> and <l4/thread.h>. (ANONYMOUS_ZEROFILL): Rename from this... (ANONYMOUS_NO_CLEAR): ... to this, inverting logic. Update users. (ANONYMOUS_DISCARDABLE): Don't define. (ANONYMOUS_NO_ALLOC): Define. (ANONYMOUS_NO_RECURSIVE): Likewise. (ANONYMOUS_THREAD_SAFE): Likewise. (anonymous_pager_fill_t): Likewise. (struct anonymous_pager): Add fields allocated_region, staging_area, fill, fill_thread, fill_lock and policy. Change fill's type to anonymous_pager_fill_t. (anonymous_pager_alloc): Take additional parameters, P and ADDR_OUT. Change the fill function's type to anonymous_pager_fill_t. Require that the address is not already allocated. Update users. * anonymous.c: Include <string.h> and <hurd/rm.h>. (struct storage_desc): Remove field addr and replace with offset. (addr_compare): Remove function. (offset_compare): New function. (storage_desc): Change node key from the addr field to the offset field. (fault): Rewrite to handle a fill function, discarded pages, and the ANONYMOUS_NO_RECURSIVE and ANONYMOUS_NO_ALLOC flags. (destroy): Free the allocated region and any staging area. (anonymous_pager_alloc): Rewrite to allocate virtual memory. Set up the data structure appropriately if ANONYMOUS_THREAD_SAFE is given. * pager.h (PAGER_REGION_LENGTH): New define. (pager_fault_t): Change ABI such that the callback must release PAGER->LOCK. * pager.c (pager_fault): Don't release PAGER->LOCK. ruth/ 2008-02-20 Neal H. Walfield <neal@gnu.org> * ruth.c: Include <hurd/anonymous.h>, <stdlib.h> and <l4.h>. (main): Add tests to check rendered regions and discardable pages.
2008-02-13libhurd-mm/neal
2008-02-13 Neal H. Walfield <neal@gnu.org> * storage.h (storage_alloc): Take additional parameter policy. Update callers. * storage.c (storage_alloc): Take additional parameter policy. Use it when allocating the object and updating the shadow capability slots. libpthread/ 2008-02-13 Neal H. Walfield <neal@gnu.org> * sysdeps/l4/hurd/pt-thread-alloc.c (__pthread_thread_alloc): Update use of storage_alloc to be consistent with new API. newlib/ 2008-02-13 Neal H. Walfield <neal@gnu.org> * addon/newlib/libc/sys/hurd/getreent.c (slab_alloc): Update use of storage_alloc to be consistent with new API. ruth/ 2008-02-13 Neal H. Walfield <neal@gnu.org> * ruth.c (main): Update use of storage_alloc to be consistent with new API.
2008-02-11hurd/neal
2008-02-11 Neal H. Walfield <neal@gnu.org> * stddef.h (debug): Change program_name's type to char *. * t-addr-trans.c (program_name): Change type to char *. * t-addr.c (program_name): Likewise. * t-rpc.c (program_name): Likewise. laden/ 2008-02-11 Neal H. Walfield <neal@gnu.org> * laden.h (program_name): Change type to char *. * laden.c (program_name): Likewise. * shutdown.h (program_name): Likewise. * output.h (debug): Change program_name's type to char *. libc-parts/ 2008-02-11 Neal H. Walfield <neal@gnu.org> * ia32-cmain.c (program_name): Change type to char *. * t-setjmp.c (program_name): Likewise. * assert.h (assertx): Change program_name's type to char *. libhurd-btree/ 2008-02-11 Neal H. Walfield <neal@gnu.org> * btree-test.c (program_name): Change type to char *. libhurd-ihash/ 2008-02-11 Neal H. Walfield <neal@gnu.org> * t-ihash.c (program_name): Change type to char *. ruth/ 2008-02-11 Neal H. Walfield <neal@gnu.org> * ruth.c (program_name): Change type to char *. viengoos/ 2008-02-11 Neal H. Walfield <neal@gnu.org> * viengoos.c (program_name): Change type to char *. * viengoos.h (program_name): Likewise. * panic.c (program_name): Likewise. * t-environment.h (program_name): Likewise. (environment_init): Just set program_name to argv[0].
2008-02-112008-02-11 Neal H. Walfield <neal@gnu.org>neal
* ruth.c (main): When checking the ability to get and set an activity's policy, don't use the main activity. Instead, allocate a new activity and use that.
2008-02-04Typo.tschwinge
2008-01-24hurd/neal
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.
2008-01-24hurd/neal
2008-01-24 Neal H. Walfield <neal@gnu.org> * cap.h (cap_copy): Take additional argument ADDRESS_SPACE. Update users. (cap_read): Likewise. (object_slot_copy_out): Likewise. (object_slot_copy_in): Likewise. (object_slot_read): Likewise. (cap_copy_x): Likewise. (cap_copy): Likewise. viengoos/ 2008-01-24 Neal H. Walfield <neal@gnu.org> * server.c (SLOT_): Take additional argument root. Use it rather than THREAD->ASPACE. Update users. (SLOT): Likewise. (CAP_): Likewise. (CAP): Likewise. (ROOT): New macro. (server_loop): Update cap_read, object_slot_copy_out, object_slot_copy_in, object_slot_read, cap_copy_x, and cap_copy method implementations to new API. * as.h (as_insert): Take additional argument AS_ROOT_ADDR. Update users. * as.c (as_build_internal): Take additional argument AS_ROOT_ADDR. Pass it to cap_copy_x. (as_slot_ensure_full): Take additional argument AS_ROOT_ADDR. Pass it to as_build_internal. (as_insert): Likewise. * thread.c (thread_exregs): Update use of cap_copy to conform with new API. * cap.h (cap_set): Likewise. libhurd-mm/ 2008-01-24 Neal H. Walfield <neal@gnu.org> * as.c (as_slot_ensure): Update use of as_slot_ensure_full to be consistent with new API. (as_alloc_slow): Update use of rm_cap_copy to be consistent with new API. (as_init): Likewise. (as_walk): Likewise. 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.
2008-01-242008-01-24 Neal H. Walfield <neal@gnu.org>neal
* README: Update.
2008-01-24libc-parts/neal
2008-01-24 Neal H. Walfield <neal@gnu.org> * Makefile.am (ARCH_SOURCES): Rename from this... (ARCH_COMMON_SOURCES): ... to this. (ARCH_USER_SOURCES): New variable. (ARCH_KERNEL_SOURCES): Likewise. (noinst_LIBRARIES): Add libc-kernel.a. (common_sources): New variable. (libc_parts_a_SOURCES): Move most files to common_sources. Add $(ARCH_COMMON_SOURCES), $(ARCH_USER_SOURCES) (libc_parts_a_CPPFLAGS): Add -I$(LIBC)/include. (libc_kernel_a_SOURCES): New variable. (libc_kernel_a_CPPFLAGS): Likewise. (libc_kernel_a_LIBADD): Likewise. * s_printf.c: Move from ../ruth/output.c. (s_putchar) [RM_INTERN || _L4_TEST_ENVIRONMENT]: Add appropriate implementation. * _exit.c: New file. * getpagesize.c: Likewise. * ia32-cmain.c: Copied from ../ruth/ia32-cmain.c. Removed dead code. Don't include "ruth.h". Add prototype for main. (program_name): New variable. (finish): Setup program_name based on ARGV[0]. * ia32-crt0.S: Copied from ../ruth/ia32-crt0.c. * panic.c: Copied from ../ruth/panic.c. (panic_): Call _exit. * startup.c: New file. ruth/ 2008-01-24 Neal H. Walfield <neal@gnu.org> * Makefile.am (ARCH_SOURCES): Remove variable. (ruth_SOURCES): Set to ruth.c. (COMMON_CPPFLAGS): Remove -I$(top_builddir)/newlib/include, add -I$@LIBC@/include. * output.c: Move to ../libc-parts/s_printf.c. * output.h: Remove file. * panic.c: Move to ../libc-parts/panic.c. * ruth.h: Remove file. * malloc.c: Likewise. * malloc-wrap.c: Likewise. * ia32-cmain.c: Move to ../libc-parts/ia32-cmain.c. * ia32-crt0.S: Move to ../libc-parts/ia32-crt0.c. * ruth.c: Include <stdio.h>. Don't include "ruth.h". (output_debug): Declare, don't define. (exit): Remove function. (abort): Likewise. (getpagesize): Likewise. laden/ 2008-01-24 Neal H. Walfield <neal@gnu.org> * Makefile.am (laden_LDADD): Set to ../libc-parts/libc-kernel.a, not ../libc-parts/libc-parts.a. viengoos/ 2008-01-24 Neal H. Walfield <neal@gnu.org> * Makefile.am (viengoos_LDADD): Link with ../libc-parts/libc-kernel.a, not ../libc-parts/libc-parts.a
2008-01-23hurd/neal
2008-01-23 Neal H. Walfield <neal@gnu.org> * stddef.h (S_PRINTF): New macro. (debug): Use S_PRINTF rather than printf. * Makefile.am (t_addr_CPPFLAGS): Add -DS_PRINTF=printf. (t_addr_trans_CPPFLAGS): Likewise. (t_rpc_CPPFLAGS): Likewise. libc-parts/ 2008-01-24 Neal H. Walfield <neal@gnu.org> * assert.h: Include <hurd/stddef.h>. (assertx): Use S_PRINTF rather than printf. libhurd-btree/ 2008-01-24 Neal H. Walfield <neal@gnu.org> * Makefile.am (btree_test_CPPFLAGS): New variable. (btree_test_LDADD): Remove. (btree_test_SOURCES): Add btree.c. * btree.c (node_t): Include <stdio.h>. libhurd-ihash/ 2008-01-24 Neal H. Walfield <neal@gnu.org> * Makefile.am (t_ihash_SOURCES): Add ihash.c. (t_ihash_CPPFLAGS): New variable. * t-ihash.c: Include <stdio.h>. libhurd-mm/ 2008-01-24 Neal H. Walfield <neal@gnu.org> * as.c (as_alloced_dump): Use s_printf rather than printf. (as_walk): Likewise. laden/ 2008-01-23 Neal H. Walfield <neal@gnu.org> * Makefile.am (laden_CPPFLAGS): Add -DS_PRINTF=printf. ruth/ 2008-01-24 Neal H. Walfield <neal@gnu.org> * output.h (putchar): Rename from this... (s_putchar): ... to this. (puts): Rename from this... (s_puts): ... to this. (vprintf): Rename from this... (s_vprintf): ... to this. (printf): Rename from this... (s_printf): ... to this. * output.c (putchar): Rename from this... (s_putchar): ... to this. Update users. (puts): Rename from this... (s_puts): ... to this. Update users. (vprintf): Rename from this... (s_vprintf): ... to this. Update users. (printf): Rename from this... (s_printf): ... to this. * Makefile.am (ruth_SOURCES): Add object.h and object.c. * ia32-cmain.c: Include <stddef.h>. (cmain): Use s_printf rather than printf. * panic.c (panic_): Use s_printf and s_vprintf rather than printf and vprintf.
2008-01-23libpthread/neal
2008-01-23 Neal H. Walfield <neal@gnu.org> * Makefile.am (AM_CPPFLAGS): Add -I$(LIBC)/include. libhurd-slab/ 2008-01-23 Neal H. Walfield <neal@gnu.org> * Makefile.am (AM_CPPFLAGS): Add -I$(LIBC)/include. libhurd-mm/ 2008-01-23 Neal H. Walfield <neal@gnu.org> * Makefile.am (COMMON_CPPFLAGS): Add -I$(LIBC)/include. libhurd-ihash/ 2008-01-23 Neal H. Walfield <neal@gnu.org> * Makefile.am (AM_CPPFLAGS): Add -I$(LIBC)/include. ruth/ 2008-01-23 Neal H. Walfield <neal@gnu.org> * Makefile.am (COMMON_CPPFLAGS): Add -I$(LIBC)/include. (ruth_SOURCES): Remove malloc-wrap.c, output.h and output.c. (ruth_LDADD): Set to $(top_builddir)/libc.a. * panic.c: Don't include "output.h". Include <stdio.h>. * ruth.h: Likewise. * ruth.c (getpagesize): Return a size_t, not an int.
2008-01-232008-01-23 Neal H. Walfield <neal@gnu.org>neal
* panic.c (panic_): Print the thread id of the thread that called panic.
2008-01-16hurd/neal
2008-01-16 Neal H. Walfield <neal@gnu.org> * thread.h (RM_thread_wait_object_destroyed): New define. (thread_wait_object_destroyed): New method. * folio.h (folio_object_alloc): Take additional parameter return_code. viengoos/ 2008-01-16 Neal H. Walfield <neal@gnu.org> * thread.h (THREAD_WAIT_FUTEX): New define. (THREAD_WAIT_DESTROY): Likewise. (struct thread): Remove fields futex_block and futex_offset. Add fields wait_reason and wait_reason_arg. Update users. * object.h (folio_object_alloc): Take additional argument return_code. Update users. (folio_object_wait_queue_for_each): New macro. * object.c: Include <hurd/thread.h>. (folio_object_alloc): Take additional argument return_code. Wake any threads blocked on the object being destroyed. * server.c (server_loop): Update folio_object_alloc method implementation to new API. Pass RETURN_CODE to the call to folio_object_alloc. Implement the thread_wait_object_destroyed method. * t-activity.c (allocate_object): Update rm_folio_object_alloc use to reflect API changes. (test): Likewise. * t-as.c (allocate_object): Likewise. libhurd-mm/ 2008-01-16 Neal H. Walfield <neal@gnu.org> * storage.c (shadow_setup): Update rm_folio_object_alloc use to reflect API changes. (storage_alloc_): Likewise. (storage_free_): Likewise. ruth/ 2008-01-16 Neal H. Walfield <neal@gnu.org> * ruth.c (main): Update rm_folio_object_alloc use to reflect API changes. Add test case for thread_wait_object_destroy.
2008-01-15hurd/neal
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-01libhurd-mm/neal
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-25hurd/neal
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.
2007-12-242007-12-24 Neal H. Walfield <neal@gnu.org>neal
* ia32-cmain.c (exit): Declare. (finish): Cast PROGRAM_NAME.
2007-12-22hurd/neal
2007-12-22 Neal H. Walfield <neal@gnu.org> * folio.h (FOLIO_PRIORITY_BITS): Define. (FOLIO_PRIORITY_MIN): Likewise. (FOLIO_PRIORITY_LRU): Likewise. (FOLIO_PRIORITY_MAX): Likewise. (FOLIO_GROUP_BITS): Likewise. (FOLIO_GROUP_NONE): Likewise. (FOLIO_GROUP_MIN): Likewise. (FOLIO_GROUP_MAX): Likewise. (struct folio_policy): New structure. (FOLIO_POLICY_INIT): Define. (FOLIO_POLICY_VOID): Likewise. (FOLIO_POLICY_DEFAULT): Likewise. (struct folio): Add field policy. (RM_folio_policy): Define. (folio_alloc): Take additional parameter policy. (FOLIO_POLICY_DELIVER): Define. (FOLIO_POLICY_DISCARDABLE_SET): Likewise. (FOLIO_POLICY_GROUP_SET): Likewise. (FOLIO_POLICY_PRIORITY_SET): Likewise. (FOLIO_POLICY_SET): Likewise. (folio_policy): New method. viengoos/ 2007-12-22 Neal H. Walfield <neal@gnu.org> * object.h (folio_alloc): Take additional parameter policy. Update users. (folio_policy): New declaration. * object.c: Include <hurd/folio.h>. (folio_alloc): Take additional parameter policy. Use it. (folio_policy): New function. * server.c (server_loop): Update folio_alloc implementation to handle additional parameter policy. Implement the folio_policy method. libhurd-mm/ 2007-12-22 Neal H. Walfield <neal@gnu.org> * storage.c (storage_alloc_): Update rm_folio_alloc use to reflect API changes. ruth/ 2007-12-22 Neal H. Walfield <neal@gnu.org> * ruth.c (main): Update rm_folio_alloc use to reflect API changes.
2007-12-14libhurd-mm/neal
2007-12-14 Neal H. Walfield <neal@gnu.org> * storage.c (shadow_setup): Support the case where the folio is full. (storage_alloc_): If AS_INIT_DONE is false, use as_alloc_slow to allocate an address. Only call shadow_setup if CAP is not NULL. * as.h (as_alloc_slow): Remove parameter data_mappable and parameter may_alloc. Return a struct hurd_object_desc *, not an addr_t. * as.c (as_alloc): Assert that AS_INIT_DONE is true. Improve debugging output. (as_slot_ensure): Assert that AS_INIT_DONE is true. (as_alloc_slow): Remove parameter data_mappable and parameter may_alloc. Return a struct hurd_object_desc *, not an addr_t. Don't special case page-sized objects, always find a void capability. Don't return an address twice. Don't use capability slots in folios. (as_init:add): Take additional argument, addr. Use this rather than DESC->OBJECT. Generalize code for iterating over folios and cappages. Correctly walk folios. (as_init): Call add on both a descriptor object and its storage. (as_walk): Rewrite such that if AS_INIT_DONE is not true, we don't use a recursive function. If the callback function returns -1, then don't descend. (as_walk:do_walk): Also walk folios. viengoos/ 2007-12-14 Neal H. Walfield <neal@gnu.org> * viengoos.c (system_task_load:csalloc): Remove function. (system_task_load): Don't allocate additional capability slots for the objects we allocate, just use the address of the storage object. ruth/ 2007-12-14 Neal H. Walfield <neal@gnu.org> * ruth.c (main): Only check the objects contained immediately within a folio for shadow objects.
2007-12-13viengoos/neal
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.
2007-12-10viengoos/neal
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-04viengoos/neal
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-11-29hurd/neal
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-28hurd/neal
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-23/neal
2007-11-23 Neal H. Walfield <neal@gnu.org> * README: Add note that Pistachio must be compiled with the Pager ExchangeRegisters configure option enabled. hurd/ 2007-11-23 Neal H. Walfield <neal@gnu.org> * thread.h: Include <hurd/addr-trans.h>. (HURD_EXREGS_EXCEPTION_THREAD): New definition. (trans_exregs): Take two additional arguments for determining how to copy the aspace address translation bits. Update callers. (thread_stop): New function. * rpc.h (RPC12_4): New macro. (RPC13_4): Likewise. * exceptions.h (exception_handler_init): New declaration. (exception_handler_loop): Likewise. libhurd-mm/ 2007-11-23 Neal H. Walfield <neal@gnu.org> * exceptions.c (exception_thread): Rename from this... (exception_handler_loop): ... to this. Update caller. * Makefile.am (libhurd_mm_a_SOURCES): Remove exceptions.h. * exceptions.h: Remove file. viengoos/ 2007-11-23 Neal H. Walfield <neal@gnu.org> * thread.h (thread_exregs): Take two additional arguments, a cap_addr_trans structure and a corresponding flags. Update users. * thread.c (thread_commission): Don't start thread THREAD. (control_to_string): New function. (thread_exregs): Take two additional arguments, a cap_addr_trans structure and a corresponding flags. Use them when copying a supplied capability into the address space slot of the thread. Support the HURD_EXREGS_EXCEPTION_THREAD flag. Improve error detection and debugging out. * server.c (server_loop): Let a void address for the activity slot imply the caller's current activity. Take two additional arguments, a cap_addr_trans structure and a corresponding flags argument. Pass them to thread_exregs. * viengoos.c (system_task_load): Set THREAD_ACTIVITY. Don't call thread_commission. Instead, call thread_exregs. ruth/ 2007-11-23 Neal H. Walfield <neal@gnu.org> * ruth.c (main): Don't call rm_object_slot_copy_in to update the address space slot. Just use rm_thread_exregs. Add test for pthread library. * ia32-cmain.c (cmain): If _pthread_init_routine is not NULL, call it. Otherwise, just call finish directly.
2007-11-22viengoos/neal
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.
2007-11-22libhurd-mm/neal
2007-11-22 Neal H. Walfield <neal@gnu.org> * storage.h (struct storage): New struct. (storage_alloc): Return a struct storage, not an addr. Update all callers. * storage.c (struct storage_desc): Remove field shadow. Add field cap. (shadow_setup): Save the cap. (storage_alloc): Return a struct storage, not an addr. (storage_free): Correctly free the shadow if not used. Update STORAGE->CAP to reflect that the folio has been removed. * capalloc.c (struct cappage_desc): Add field cap. (capalloc): Stash CAP. When allocating a cappage, allocate a shadow object. (capfree): Really free CAPPAGE if there is another page available. If freeing CAPPAGE, unlink DESC and update DESC->CAP to reflect that the page has been deallocated, deallocate the shadow, and deallocate CAPPAGE. * exceptions.c (exception_thread): Print IP when a fault cannot be resolved. * mmap.c (mmap): Cast addr to a uintptr_t to elide warning. ruth/ 2007-11-22 Neal H. Walfield <neal@gnu.org> * ruth.c (main): Update uses of stroage_alloc to its new interface.
2007-11-202007-11-20 Neal H. Walfield <neal@gnu.org>neal
* ia32-cmain.c (finish): New function. (cmain): Call _pthread_init_routine. Switch to the new sp and jump to finish. Move argument passing there. * ia32-crt0.S (STACK_SIZE): Change to a single page.
2007-11-19hurd/neal
2007-11-19 Neal H. Walfield <neal@gnu.org> * addr.h (ADDR_TO_PTR): Assert that the address corresponds to a pointer, not the root of a mapped page. Update callers. (PTR_TO_ADDR): Return an address corresponding to a pointer, not the root of a mapped page. Update callers. libhurd-mm/ 2007-11-19 Neal H. Walfield <neal@gnu.org> * as.c (__hurd_startup_data): Declare. (free_space_desc_slab_alloc): Use ADDR_TO_PTR and PTR_TO_ADDR correctly. (free_space_desc_slab_dealloc): Likewise. (allocate_object): Likewise. (storage_alloc): Likewise. (as_init): Likewise. * capalloc.c (cappage_desc_slab_alloc): Likewise. (cappage_desc_slab_dealloc): Likewise. * storage.c (__hurd_startup_data): Declare. (check_slab_space_reserve): Likewise. (storage_desc_slab_dealloc): Likewise. (shadow_setup): Likewise. (storage_free): Likewise. ruth/ 2007-11-19 Neal H. Walfield <neal@gnu.org> * ruth.c (main): Use ADDR_TO_PTR and PTR_TO_ADDR correctly.
2007-11-162007-11-16 Neal H. Walfield <neal@gnu.org>neal
* Makefile.am (ruth_CPPFLAGS): Move value from here... (COMMON_CPPFLAGS): ... to this new variable. (ruth_CPPFLAGS): Set to COMMON_CPPFLAGS. (ruth_SOURCES): Remove task-user.h, task-user.c and mmap.c. (ruth_LDADD): Remove ../libhurd-cap-server/libhurd-cap-server.a and ../viengoos/libhurd-cap.a. * ruth.h: Don't include <hurd/cap-server.h>. (program_name): Make const. * ruth.c: Rewrite. * output.h: Include <stdarg.h>. (shutdown): Don't declare. (program_name): Likewise. (output_debug): Likewise. (debug): Don't define. (panic): Don't define. (vprintf): New declaration. * output.c: Don't include <hurd/wortel.h>. Include <hurd/rm.h>. (output_debug): Don't define. (shutdown): Don't call wortel_shutdown. (putchar): Call rm_putchar, not wortel_putchar. (vprintf): New function. Body copied from printf. (printf): Implement in terms of vprintf. * malloc.c: Update to version 2.8.3. * malloc-wrap.c (ABORT): Define. (ABORT_ON_ASSERT_FAILURE): Likewise. (LACKS_SYS_TYPES_H): Likewise. (size_t): New definition. (LACKS_STDLIB_H): Likewise. (LACKS_STDIO_H): Likewise. (MORECORE): Don't define. (HAVE_MORECORE): Define to 0. * ia32-crt0.S (STACK_SIZE): Increase to 32 pages. Set __hurd_startup_data to the value of %sp. * ia32-cmain.c: Rewrite. * panic.c: New file. * mmap.c: Remove file. * task-user.h: Likewise. * task-user.c: Likewise.
2005-04-06deva/neal
2005-04-06 Neal H. Walfield <neal@gnu.org> * mmap.c: Include <hurd/anonymous.h>. (mmap): Call hurd_anonymous_allocate, not hurd_vm_allocate. (munmap): Call hurd_vm_release, not hurd_vm_deallocate. ruth/ 2005-04-06 Neal H. Walfield <neal@gnu.org> * mmap.c: Include <hurd/anonymous.h>. (mmap): Call hurd_anonymous_allocate, not hurd_vm_allocate. (munmap): Call hurd_vm_release, not hurd_vm_deallocate. task/ 2005-04-06 Neal H. Walfield <neal@gnu.org> * mmap.c: Include <hurd/anonymous.h>. (mmap): Call hurd_anonymous_allocate, not hurd_vm_allocate. (munmap): Call hurd_vm_release, not hurd_vm_deallocate.
2005-01-22Fix cut and paste bug.marcus
2005-01-222005-01-22 Marcus Brinkmann <marcus@gnu.org>marcus
* configure.ac (AC_CONFIG_FILES): Add ruth/Makefile. * Makefile.am (SUBDIRS): Add ruth. ruth/ 2005-01-22 Marcus Brinkmann <marcus@gnu.org> * Initial check-in.