Age | Commit message (Collapse) | Author |
|
* Makefile.am [ENABLE_TESTS]: Don't build package's program.
|
|
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-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.
|
|
* ruth.c Include <signal.h>.
(main): Test signal signal implementation.
|
|
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-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-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-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].
|
|
* 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-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-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.
|
|
* README: Update.
|
|
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-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-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.
|
|
* panic.c (panic_): Print the thread id of the thread that called
panic.
|
|
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-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-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.
|
|
* ia32-cmain.c (exit): Declare.
(finish): Cast PROGRAM_NAME.
|
|
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-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-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-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-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-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-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-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.
|
|
* 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-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.
|
|
* 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-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.
|
|
|
|
* 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.
|