commit-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] POSIX threading library branch, master-viengoos, updated. f1fdf73c


From: Thomas Schwinge
Subject: [SCM] POSIX threading library branch, master-viengoos, updated. f1fdf73c70528934b222150ca462bebfad4276ed
Date: Sun, 12 Apr 2009 15:37:35 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "POSIX threading library".

The branch, master-viengoos has been updated
       via  f1fdf73c70528934b222150ca462bebfad4276ed (commit)
       via  c2d9d334a8e8847f0e2a0f47a4fc527c20d19cda (commit)
       via  5e6652b31dad8d0f6c2c87d807f5b53bc2d378fb (commit)
       via  f7aa9ef16e98843964c0d398f4b85eae2bfa15db (commit)
       via  c00a4071b62dd2848342d679d8f8b998cb8eba29 (commit)
       via  2685b57cd1be8f7b1db754062e81a308c1c67c3b (commit)
       via  823953e7d01328b29700d5d844a3d9ceb0b99cb3 (commit)
       via  878686235588e5005ace3d64c36e22932d531371 (commit)
       via  fe916c4c53e72c286b546c58e38ef8a8aef4aa7f (commit)
       via  b702503f0eea5115ebbc526603ee3903e260b5f0 (commit)
       via  3c17e8eb9bfb1e34799492c93e18bc2a2535854c (commit)
       via  121dc4318edb8a06b610908e8aa2cedade2c5208 (commit)
       via  dc2b3446a7550d39943b7654a74f41c493822097 (commit)
       via  bf860c482c3aae0329cb6cabfc1e27f07de4911b (commit)
       via  c85145e9fb1a5f12431b44395934f30dc62ee9d5 (commit)
       via  bb9f6db73f4087228a609a4d75008c817d8e5bb0 (commit)
       via  530e6e175487479512d0a65d5a104ec98ba2b61d (commit)
       via  e1051a03ddd40569d21478a834a707f5a93f42b0 (commit)
       via  5fe5b7c18381120a91b51ce2485d883d1622537b (commit)
      from  a16f3b2c4bdf30d5a81b0314d536fb06832c1cd0 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit f1fdf73c70528934b222150ca462bebfad4276ed
Author: Neal H. Walfield <address@hidden>
Date:   Sun Jan 18 00:53:02 2009 +0100

    Fix warning about ''s in #warnings.
    
    2009-01-18  Neal H. Walfield  <address@hidden>
    
        * sysdeps/viengoos/pt-spin.c (_pthread_spin_lock): Don't use a '
        in the #warning.

commit c2d9d334a8e8847f0e2a0f47a4fc527c20d19cda
Author: Neal H. Walfield <address@hidden>
Date:   Sat Jan 17 23:27:02 2009 +0100

    Remove more uses of L4 specific functions in generic code.
    
    2009-01-17  Neal H. Walfield  <address@hidden>
    
        * sysdeps/viengoos/pt-docancel.c (__pthread_do_cancel): Use
        hurd_myself, not l4_myself.
        [! USE_L4]: Abort.
        * sysdeps/viengoos/pt-wakeup.c (__pthread_wakeup) [! USE_L4]:
        Don't call l4_thread_switch.

commit 5e6652b31dad8d0f6c2c87d807f5b53bc2d378fb
Author: Neal H. Walfield <address@hidden>
Date:   Sat Jan 17 23:22:12 2009 +0100

    Include <string.h> to add missing declarations.
    
    2009-01-17  Neal H. Walfield  <address@hidden>
    
        * signal/kill.c: Include <string.h>.
        * sysdeps/viengoos/pt-sigstate-init.c: Likewise.

commit f7aa9ef16e98843964c0d398f4b85eae2bfa15db
Author: Neal H. Walfield <address@hidden>
Date:   Fri Jan 16 21:18:32 2009 +0100

    Conditionalize use of l4 functions on USE_L4.
    
    /
    
    2009-01-16  Neal H. Walfield  <address@hidden>
    
        * Makefile.am (L4_SUBDIRS): New variable.  Set to l4 directories
        if USE_L4 is true, otherwise leave empty.
        (SUBDIRS): Remove libl4 and laden.  Replace with $(USE_L4).
        Rearrange order.
    
    benchmarks/
    
    2009-01-16  Neal H. Walfield  <address@hidden>
    
        * activity-distribution.c (main): Use vg_thread_id_t and
        hurd_myself, not l4_thread_id_t and l4_myself.
        [USE_L4]: Only l4_sleep in this case.
        * cache.c (helper_fork): Use hurd_myself, not l4_myself.
        (main) [USE_L4]: Only call _L4_kdb in this case.
        * shared-memory-distribution.c (main): Use vg_thread_id_t and
        hurd_myself, not l4_thread_id_t and l4_myself.
    
    hieronymus/
    
    2009-01-16  Neal H. Walfield  <address@hidden>
    
        * hieronymus.c (main): Use uint64_t, not l4_uint64_t.
        (main) [USE_L4]: Don't sleep in this case.
    
    hurd/
    
    2009-01-16  Neal H. Walfield  <address@hidden>
    
        * lock.h (ss_mutex_trace_add) [! USE_L4]: Set SS_LOCK_TRACE[I].TID
        to zero.
        * thread.h (hurd_myself) [USE_L4]: Return l4_myself.
        * trace.h (trace_buffer_add) [! USE_L4 && ! RM_INTERN]: Use
        hurd_myself, not l4_myself.
        [! USE_L4 && RM_INTERN]: Don't print a tid.
    
    libc-parts/
    
    2009-01-16  Neal H. Walfield  <address@hidden>
    
        * _exit.c (_exit): Use sched_yield, not l4_yield.
        * backtrace.c [USE_L4]: Only include <l4.h> in this case.
        [! RM_INTERN]: Include <hurd/thread.h>.
        (backtrace_print) [! USE_L4 && ! RM_INTERN]: Use hurd_myself to
        get the caller's tid.
        [! USE_L4 && RM_INTERN]: Don't print a tid.
        * ia32-cmain.c [! USE_L4]: Don't include <l4/globals.h>,
        <l4/init.h>, <l4/stubs.h>, or <l4/stubs-init.h>.
        (cmain) [! USE_L4]: Don't call l4_init or l4_init_stubs.
        * loader.c: Don't include <l4.h>.  Include <bits/wordsize.h> and
        <endian.h>.
        (loader_elf_load): Use __WORDSIZE, __BYTE_ORDER, __LITTLE_ENDIAN
        and __BIG_ENDIAN instead of their L4 names.
        * panic.c: Include <viengoos/thread.h>.
        [! RM_INTERN]: Include <hurd/thread.h>.
        (panic_) [! USE_L4 && ! RM_INTERN]: Use hurd_myself, not
        l4_myself.
        [! USE_L4 && RM_INTERN]: Don't print a tid.
        (panic_): Call sched_yield, not l4_yield.
        * process-spawn.c (process_spawn) [! USE_L4]: Don't pass utcb and
        kip information.  Change sp from a l4_word_to to a uintptr_t.
        * profile.c [! USE_L4]: Don't include <l4.h>.
        (now) [__gnu_hurd_viengoos__ && ! USE_L4]: Just return 0.
        (struct profile_block): Change tid to a vg_thread_id_t.
        (MYSELF) [__gnu_hurd_viengoos__ && ! USE_L4]: Just return 0.
        * s_printf.c (io_buffer_flush) [! USE_L4]: Abort.
    
    libhurd-mm/
    
    2009-01-16  Neal H. Walfield  <address@hidden>
    
        * anonymous.h: Don't include <l4/thread.h>.  Include
        <viengoos/thread.h>.
        (struct anonymous_pager): Change fill_thread's type to
        vg_thread_id_t.
        * anonymous.c (fault): Use hurd_myself and vg_niltid, not
        l4_myself and l4_nilthread.
        * as-build.c: Don't include <l4.h>.
        * as.h: Include <hurd/thread.h>.  Don't include <l4/types.h>.
        (as_lock): Change as_rwlock_owner's type to vg_thread_id_t.  Use
        hurd_myself, not l4_myself.
        (as_lock_readonly): Likewise.
        (as_unlock): Likewise.
        * as.c [! USE_L4]: Don't include <l4/types.h> or <l4/kip.h>.
        Include <bits/wordsize.h>.
        (DATA_ADDR_MAX): Define for 64-bit virtual address spaces.
        (as_rwlock_owner): Change type to vg_thread_id_t.
        (as_alloc_slow) [USE_L4]: Only check for conflicts with the kip
        and utcb in this case.
        (as_init) [USE_L4]: Only reserve the kip and utcb in this case.
        * exceptions.c [USE_L4]: Only include <l4/thread.h> in this case.
        (l4_utcb_state_save) [! USE_L4]: Make a no-op.
        (l4_utcb_state_restore) [! USE_L4]: Likewise.
        (hurd_activation_handler_normal): Use hurd_myself, not l4_myself.
        * map.c: Don't include <l4.h>.
        (map_fault): Use VG_WRITE, not L4_FPAGE_WRITABLE.
        * storage.c (storage_check_reserve_internal): Change
        as_rwlock_owner's type to vg_thread_id_t.
    
    libpthread/
    
    2009-01-16  Neal H. Walfield  <address@hidden>
    
        * sysdeps/viengoos/pt-spin.c [USE_L4]: Only include <l4.h> in this
        case.
        (_pthread_spin_lock): Only implement exponential back off if a
        sleep function is available.
        * sysdeps/viengoos/pt-stack-alloc.c: Don't include <l4.h>.
        * sysdeps/viengoos/pt-sysdep.c (sched_yield) [! USE_L4]: Just
        return.
        (init_routine) [USE_L4]: Abort.
        * sysdeps/viengoos/pt-sysdep.h [USE_L4]: Only include <l4.h> in
        this case.
        (_pthread_self) [! USE_L4]: Abort.
        * sysdeps/viengoos/pt-thread-alloc.c (__pthread_thread_alloc): Use
        hurd_myself, not l4_myself.
        [! USE_L4]: Abort.
        * sysdeps/viengoos/pt-thread-start.c (__pthread_thread_start): Use
        hurd_myself, not l4_myself.  use uintptr_t, not l4_word_t.
        * sysdeps/viengoos/sig-sysdep.h (SIGNAL_DISPATCH_ENTRY)
        [! USE_L4]: Abort.
        (SIGNAL_DISPATCH_EXIT) [! USE_L4]: Likewise.
    
    libviengoos/
    
    2009-01-16  Neal H. Walfield  <address@hidden>
    
        * viengoos/thread.h (VG_READ): Define.
        (VG_WRITE): Define.
        (VG_EXECUTE): Likewise.
        (VG_ACTIVATION_FAULT_INFO_PRINTF): Use them.
    
    ruth/
    
    2009-01-16  Neal H. Walfield  <address@hidden>
    
        * ruth.c [USE_L4]: Only include <l4.h> in this case.
        (main) [! USE_L4]: Don't print resource manager's thread id.
        (main): Use uintptr_t, not l4_word_t.  Use hurd_myself, not
        l4_myself.  Use sched_yield, not l4_yield.  Improve
        synchronization for object_reply_on_destruction test in case
        sched_yield is a no-op.
    
    viengoos/
    
    2009-01-16  Neal H. Walfield  <address@hidden>
    
        * cap.h: Don't include <l4.h>.
        * mutex.h [USE_L4]: Only include <l4/thread.h> in this case.
        (ss_mutex_t) [! USE_L4]: Define to be an int.
        (ss_mutex_lock) [! USE_L4]: Make a no-op.
        (ss_mutex_unlock) [! USE_L4]: Likewise.
        (ss_mutex_trylock) [! USE_L4]: Likewise.
        * object.h [USE_L4]: Only include <l4.h> in this case.
        (object_desc_unmap) [! USE_L4]: Make a no-op.
        (object_desc_flush) [! USE_L4]: Likewise.
        * thread.h: Don't include <l4.h>.
        (struct thread): Make tid a vg_thread_id_t, not an l4_thread_id_t.
        (thread_lookup): Make threadid a vg_thread_id_t, not an
        l4_thread_id_t.

commit c00a4071b62dd2848342d679d8f8b998cb8eba29
Author: Neal H. Walfield <address@hidden>
Date:   Wed Nov 19 10:28:47 2008 +0100

    Start of x86_64 port.
    /
    2008-11-19  Neal H. Walfield  <address@hidden>
    
        * configure.ac: Rename amd64 to x86_64.  Update users.
    
    binutils/
    
    2008-11-19  Neal H. Walfield  <address@hidden>
    
        * patches/00-bfd-config-bfd.patch: New file.
        * patches/01-ld-configure-tgt.patch: New file.
        * Makefrag.am (patch_files): New variable.
        (EXTRA_DIST): Likewise.
        ($(addsuffix .applied,$(patch_files))): Depend on
        binutils/binutils/unpack.stamp and $(patch_files).  Apply patches
        to the source tree.
        (rpatch): New rule.
        (binutils/binutils/patch.stamp): Also depend on the applied patch
        files.
    
    gcc/
    
    2008-11-19  Neal H. Walfield  <address@hidden>
    
        * configury2.patch: New file.
        * Makefrag.am (gcc_patch_files): Add configury2.patch.
        (gcc/gcc.build/configure.stamp): Only add --with-arch for x86
        machines.
    
    libl4/
    
    2008-11-19  Neal H. Walfield  <address@hidden>
    
        * headers.m4: Only link the header files if $ARCH is ia32.
    
    libpthread/
    
    2008-11-19  Neal H. Walfield  <address@hidden>
    
        * sysdeps/generic/bits/memory.h: New file.
        * sysdeps/generic/bits/spin-lock-inline.h: Likewise.
        * sysdeps/generic/bits/spin-lock.h: Likewise.
        * headers.m4: Link sysroot/include/bits/memory.h to
        libpthread/sysdeps/generic/bits/memory.h,
        sysroot/include/bits/spin-lock.h to
        libpthread/sysdeps/generic/bits/spin-lock.h, and
        sysroot/include/bits/spin-lock-inline.h to
        libpthread/sysdeps/generic/bits/spin-lock-inline.h.
    
    platform/
    
    2008-11-19  Neal H. Walfield  <address@hidden>
    
        * Makefile.am (ARCH_SUBDIR) [ARCH_X86_64]: Set to x86_64.
        * amd64/Makefile.am: Move from here...
        * x86_64/Makefile.am: ... to here.
        * amd64/bits/atomic.h: Move from here...
        * x86_64/bits/atomic.h: ... to here.
        * amd64/bits/endian.h: Move from here...
        * x86_64/bits/endian.h: ... to here.
        * amd64/bits/wordsize.h: Move from here...
        * x86_64/bits/wordsize.h: ... to here.
        * amd64/sys/io.h: Move from here...
        * x86_64/sys/io.h: ... to here.

commit 2685b57cd1be8f7b1db754062e81a308c1c67c3b
Author: Neal H. Walfield <address@hidden>
Date:   Thu Dec 18 10:48:24 2008 +0100

    Add vg_ prefix to the (hopefully) remaining viengoos symbols.
    
    2008-12-18  Neal H. Walfield  <address@hidden>
    
        * viengoos/activity.h (struct activity_memory_policy): Rename from
        this...
        (struct vg_activity_memory_policy): ... to this.  Update users.
        (struct activity_policy): Rename from this...
        (struct vg_activity_policy): ... to this.  Update users.
        (ACTIVITY_STATS_PERIODS): Rename from this...
        (VG_ACTIVITY_STATS_PERIODS): ... to this.  Update users.
        (struct activity_stats): Rename from this...
        (struct vg_activity_stats): ... to this.  Update users.
        (struct activity_info): Rename from this...
        (struct vg_activity_info): ... to this.  Update users.
        * viengoos/addr.h (struct addr): Rename from this...
        (struct vg_addr): ... to this.  Update users.
        * viengoos/cap.h (struct object_policy): Rename from this...
        (struct vg_object_policy): ... to this.  Update users.
        (struct object_name): Rename from this...
        (struct vg_object_name): ... to this.  Update users.
        (struct object): Rename from this...
        (struct vg_object): ... to this.  Update users.
        * viengoos/folio.h (struct folio_policy): Rename from this...
        (struct vg_folio_policy): ... to this.  Update users.
        (struct folio): Rename for this...
        (struct vg_folio): ... to this.  Update users.
        * viengoos/thread.h
        (HURD_EXREGS_SET_UTCB): Rename from this...
        (VG_EXREGS_SET_UTCB): ... to this.  Update users.
        (HURD_EXREGS_SET_EXCEPTION_MESSENGER): Rename from this...
        (VG_EXREGS_SET_EXCEPTION_MESSENGER): ... to this.  Update users.
        (HURD_EXREGS_SET_ASPACE): Rename from this...
        (VG_EXREGS_SET_ASPACE): ... to this.  Update users.
        (HURD_EXREGS_SET_ACTIVITY): Rename from this...
        (VG_EXREGS_SET_ACTIVITY): ... to this.  Update users.
        (HURD_EXREGS_SET_SP): Rename from this...
        (VG_EXREGS_SET_SP): ... to this.  Update users.
        (HURD_EXREGS_SET_IP): Rename from this...
        (VG_EXREGS_SET_IP): ... to this.  Update users.
        (HURD_EXREGS_SET_SP_IP): Rename from this...
        (VG_EXREGS_SET_SP_IP): ... to this.  Update users.
        (HURD_EXREGS_SET_EFLAGS): Rename from this...
        (VG_EXREGS_SET_EFLAGS): ... to this.  Update users.
        (HURD_EXREGS_SET_USER_HANDLE): Rename from this...
        (VG_EXREGS_SET_USER_HANDLE): ... to this.  Update users.
        (HURD_EXREGS_SET_REGS): Rename from this...
        (VG_EXREGS_SET_REGS): ... to this.  Update users.
        (HURD_EXREGS_GET_REGS): Rename from this...
        (VG_EXREGS_GET_REGS): ... to this.  Update users.
        (HURD_EXREGS_START): Rename from this...
        (VG_EXREGS_START): ... to this.  Update users.
        (HURD_EXREGS_STOP): Rename from this...
        (VG_EXREGS_STOP): ... to this.  Update users.
        (HURD_EXREGS_ABORT_SEND): Rename from this...
        (VG_EXREGS_ABORT_SEND): ... to this.  Update users.
        (HURD_EXREGS_ABORT_RECEIVE): Rename from this...
        (VG_EXREGS_ABORT_RECEIVE): ... to this.  Update users.
        (HURD_EXREGS_ABORT_IPC): Rename from this...
        (VG_EXREGS_ABORT_IPC): ... to this.  Update users.
        (struct hurd_thread_exregs_in): Rename form this...
        (struct vg_thread_exregs_in): ... to this.  Update users.
        (struct hurd_thread_exregs_out): Rename form this...
        (struct vg_thread_exregs_out): ... to this.  Update users.
        (RPC_STUB_PREFIX): Define to vg_activation.  Update users.
        (RPC_ID_PREFIX): Define to VG_ACTIVATION.  Update users.
        (ACTIVATION_fault): Rename from this...
        (VG_ACTIVATION_fault): ... to this.  Update users.

commit 823953e7d01328b29700d5d844a3d9ceb0b99cb3
Author: Neal H. Walfield <address@hidden>
Date:   Wed Dec 17 22:26:26 2008 +0100

    Rename futex functions.
    
    libviengoos/
    
    2008-12-17  Neal H. Walfield  <address@hidden>
    
        * viengoos/futex.h (vg_futex_using): Rename from this...
        (futex_using): ... to this.  Update users.  Use vg_futex_using,
        not rm_futex_using.
        (vg_futex): Rename from this...
        (futex): ... to this.  Update users.
        (vg_futex_wait_using): Rename from this...
        (futex_wait_using): ... to this.  Update users.
        (vg_futex_wake_using): Rename from this...
        (futex_wake_using): ... to this.  Update users.
    
    libpthread/
    
    2008-12-17  Neal H. Walfield  <address@hidden>
    
        * sysdeps/viengoos/pt-block.c (__pthread_block): Use
        futex_wait_using, not vg_futex_wait_using.
        * sysdeps/viengoos/pt-wakeup.c (__pthread_wakeup): Use
        futex_wake_using, not vg_futex_wake_using.

commit 878686235588e5005ace3d64c36e22932d531371
Author: Neal H. Walfield <address@hidden>
Date:   Wed Dec 17 20:03:35 2008 +0100

    Replace RPC rm prefix with vg.
    
    2008-12-17  Neal H. Walfield  <address@hidden>
    
        * viengoos/activity.h (RM_activity_policy): Rename from this...
        (VG_activity_policy): ... to this.  Update users.
        (RM_activity_info): Rename from this...
        (VG_activity_info): ... to this.  Update users.
        (RPC_STUB_PREFIX): Define to vg.
        (RPC_ID_PREFIX): Define to VG.
        * viengoos/cap.h
        (RM_cap_copy): Rename from this...
        (VG_cap_copy): ... to this.  Update users.
        (RM_cap_rubout): Rename from this...
        (VG_cap_rubout): ... to this.  Update users.
        (RM_cap_read): Rename from this...
        (VG_cap_read): ... to this.  Update users.
        (RM_object_discarded_clear): Rename from this...
        (VG_object_discarded_clear): ... to this.  Update users.
        (RM_object_discard): Rename from this...
        (VG_object_discard): ... to this.  Update users.
        (RM_object_status): Rename from this...
        (VG_object_status): ... to this.  Update users.
        (RM_object_reply_on_destruction): Rename from this...
        (VG_object_reply_on_destruction): ... to this.  Update users.
        (RM_object_name): Rename from this...
        (VG_object_name): ... to this.  Update users.
        (RPC_STUB_PREFIX): Define to vg.
        (RPC_ID_PREFIX): Define to VG.
        * viengoos/folio.h (RM_folio_alloc): Rename from this...
        (VG_folio_alloc): ... to this.  Update users.
        (RM_folio_free): Rename from this...
        (Vg_folio_free): ... to this.  Update users.
        (RM_folio_object_alloc): Rename from this...
        (VG_folio_object_alloc): ... to this.  Update users.
        (RM_folio_policy): Rename from this...
        (VG_folio_policy): ... to this.  Update users.
        (RPC_STUB_PREFIX): Define to vg.
        (RPC_ID_PREFIX): Define to VG.
        * viengoos/futex.h (RM_futex): Rename from this...
        (VG_futex): ... to this.  Update users.
        (RPC_STUB_PREFIX): Define to vg.
        (RPC_ID_PREFIX): Define to VG.
        * viengoos/misc.h (RM_write): Rename from this...
        (VG_write): ... to this.  Update users.
        (RM_read): Rename from this...
        (VG_read): ... to this.  Update users.
        (RM_as_dump): Rename from this...
        (VG_as_dump): ... to this.  Update users.
        (RM_fault): Rename from this...
        (VG_fault): ... to this.  Update users.
        (RPC_STUB_PREFIX): Define to vg.
        (RPC_ID_PREFIX): Define to VG.
        * viengoos/thread.h (RM_thread_exregs): Rename from this...
        (RM_thread_exregs): ... to this.  Update users.
        (RM_thread_id): Rename from this...
        (RM_thread_id): ... to this.  Update users.
        (RM_thread_activation_collect): Rename from this...
        (RM_thread_activation_collect): ... to this.  Update users.
        (RPC_STUB_PREFIX): Define to vg.
        (RPC_ID_PREFIX): Define to VG.

commit fe916c4c53e72c286b546c58e38ef8a8aef4aa7f
Author: Neal H. Walfield <address@hidden>
Date:   Wed Dec 17 19:33:13 2008 +0100

    Merge hurd/exceptions.h into hurd/thread.h.
    
    hurd/
    
    2008-12-17  Neal H. Walfield  <address@hidden>
    
        * exceptions.h: Merge contents of this file...
        * thread.h: ... into this one.  Update users.
        * headers.m4: Don't link hurd/exceptions.h.
        * Makefile.am (includehurd_HEADERS): Remove exceptions.h.
    
    libc-parts/
    
    2008-12-17  Neal H. Walfield  <address@hidden>
    
        * backtrace.c: Don't include <hurd/exceptions.h>.
    
    libhurd-mm/
    
    2008-12-17  Neal H. Walfield  <address@hidden>
    
        * anonymous.h: Don't include <hurd/exceptions.h>.
        * as.h: Likewise.
        * exceptions.c: Likewise.
        * map.h: Likewise.
        * message-buffer.c: Likewise.
        * mm-init.c: Likewise.
        * as-build.c: Don't include <hurd/exceptions.h>.  Include
        <viengoos/thread.h> and <viengoos/messenger.h>.
        * as-dump.c: Include <viengoos/thread.h> and
        <viengoos/messenger.h>.
        * as-lookup.c: Likewise.
    
    libpthread/
    
    2008-12-17  Neal H. Walfield  <address@hidden>
    
        * sysdeps/viengoos/ia32/pt-setup.c: Don't include
        <hurd/exceptions.h> or <viengoos/thread.h>.
        * sysdeps/viengoos/pt-startup.c (__pthread_startup): Don't include
        <l4.h> or <hurd/exceptions.h>.  Include <hurd/thread.h>.
        (__pthread_startup): Set pthread->threadid using hurd_myself.
        * sysdeps/viengoos/pt-sysdep.h: Don't cinlude
        <hurd/exceptions.h>.  Include <hurd/thread.h>.
        * sysdeps/viengoos/pt-thread-dealloc.c: Don't include
        <hurd/exceptions.h>.  Include <hurd/thread.h>.
        * sysdeps/viengoos/pt-thread-start.c: Don't include
        <viengoos/thread.h> or <hurd/exceptions.h>.  Include
        <hurd/thread.h>.
    
    libviengoos/
    
    2008-12-17  Neal H. Walfield  <address@hidden>
    
        * viengoos/misc.h: Don't include <hurd/exceptions.h>.

commit b702503f0eea5115ebbc526603ee3903e260b5f0
Author: Neal H. Walfield <address@hidden>
Date:   Wed Dec 17 18:45:14 2008 +0100

    Add a "vg_" to public viengoos identifiers.
    
    2008-12-17  Neal H. Walfield  <address@hidden>
    
        * viengoos/activity.h: Add a "vg_" to public viengoos identifiers.
        Update users.
        * viengoos/addr-trans.h: Likewise.
        * viengoos/addr.h: Likewise.
        * viengoos/cap.h: Likewise.
        * viengoos/folio.h: Likewise.
        * viengoos/futex.h: Likewise.
        * viengoos/rpc.h: Likewise.
        * viengoos/thread.h: Likewise.

commit 3c17e8eb9bfb1e34799492c93e18bc2a2535854c
Author: Neal H. Walfield <address@hidden>
Date:   Wed Dec 17 15:22:19 2008 +0100

    Add generic spin-lock.h file.
    
    2008-12-17  Neal H. Walfield  <address@hidden>
    
        * sysdeps/generic/bits/spin-lock.h: New file.

commit 121dc4318edb8a06b610908e8aa2cedade2c5208
Author: Neal H. Walfield <address@hidden>
Date:   Wed Dec 17 15:10:59 2008 +0100

    Add a generic memory.h file based on gcc's __sync functions.
    
    libpthread/
    
    2008-12-17  Neal H. Walfield  <address@hidden>
    
        * sysdeps/generic/bits/memory.h: New file.

commit dc2b3446a7550d39943b7654a74f41c493822097
Author: Neal H. Walfield <address@hidden>
Date:   Wed Dec 17 13:55:11 2008 +0100

    Replace use of l4_msb, etc. with vg_msb.
    
    libpthread/
    
    2008-12-17  Neal H. Walfield  <address@hidden>
    
        * signal/signal-dispatch.c: Include <viengoos/math.h>.
        (signal_dispatch): Use vg_lsb64, not l4_lsb64.
        * sysdeps/viengoos/pt-sigstate.c (__pthread_sigstate): Likewise.
        * signal/sigwaitinfo.c (sigwaitinfo): Use vg_msb64, not l4_msb64.
    
    libviengoos/
    
    2008-12-17  Neal H. Walfield  <address@hidden>
    
        * t-addr.c: Don't include <l4/math.h>.  Include <viengoos/math.h>.
        (main): Use vg_msb64 instead of l4_msb64 and vg_lsb64 instead of
        l4_lsb64.
    
    viengoos/
    
    2008-12-17  Neal H. Walfield  <address@hidden>
    
        * zalloc.c: Don't include <l4/math.h>.  Include <viengoos/math.h>.
        (zfree): Use vg_msb instead of l4_msb.
        * ager.c (update_stats): Likewise.

commit bf860c482c3aae0329cb6cabfc1e27f07de4911b
Author: Neal H. Walfield <address@hidden>
Date:   Wed Dec 17 13:11:52 2008 +0100

    Move viengoos header files to libviengoos.
    
    /
    
    2008-12-17  Neal H. Walfield  <address@hidden>
    
        * libviengoos: New directory.
        * Makefile.am (SUBDIRS): Add libviengoos.
        * configure.ac: Include libviengoos/headers.m4.  Generate
        libviengoos/Makefile.
    
    hurd/
    
    2008-12-17  Neal H. Walfield  <address@hidden>
    
        * activity.h: Move to ../libviengoos/viengoos.  Update references.
        * addr-trans.h: Likewise.
        * addr.h: Likewise.
        * cap.h: Likewise.
        * folio.h: Likewise.
        * futex.h: Likewise.
        * ipc.h: Likewise.
        * message.h: Likewise.
        * messenger.h: Likewise.
        * rpc.h: Likewise.
        * thread.h: Move viengoos specific bits...
        * ../libviengoos/viengoos/thread.h: ... to this new file.
        * thread.h (struct hurd_utcb): New structure.
        * exceptions.h (hurd_utcb): Use a struct hurd_utcb *, not a
        struct vg_utcb *.  Update users.
        (hurd_activation_state_alloc): Likewise.
        (hurd_activation_state_free): Likewise.
        (hurd_activation_handler_activated): Likewise.
        (hurd_activation_handler_normal): Likewise.
        * t-addr-trans.c: Move to ../libviengoos.
        * t-addr.c: Likewise.
        * t-rpc.c: Likewise.
        * Makefile.am (TESTS, check_PROGRAMS, t_addr_CPPFLAGS)
        (t_addr_SOURCES, t_addr_trans_CPPFLAGS, t_addr_trans_SOURCES)
        (t_rpc_CPPFLAGS, t_rpc_SOURCES): Move from this file...
        * ../libviengoos/Makefile.am.
        * Makefile.am (includehurd_HEADERS): Don't mention activity.h,
        addr-trans.h, addr.h, cap.h, folio.h, futex.h, ipc.h, message.h or
        messenger.h.
        * headers.m4: Don't create a link to hurd/addr.h,
        hurd/addr-trans.h, hurd/cap.h, hurd/folio.h, hurd/rpc.h,
        hurd/activity.h, hurd/futex.h, hurd/message.h, hurd/messenger.h or
        hurd/ipc.h.
    
    libviengoos/
    
    2008-12-17  Neal H. Walfield  <address@hidden>
    
        * Makefile.am: New file.
        * headers.m4: Likewise.
        * t-addr-trans.c: Move from ../hurd.
        * t-addr.c: Likewise.
        * t-rpc.c: Likewise.
        * viengoos.h: Likewise.
        * viengoos/activity.h: Likewise.
        * viengoos/addr-trans.h: Likewise.
        * viengoos/addr.h: Likewise.
        * viengoos/cap.h: Likewise.
        * viengoos/folio.h: Likewise.
        * viengoos/futex.h: Likewise.
        * viengoos/ipc.h: Likewise.
        * viengoos/message.h: Likewise.
        * viengoos/messenger.h: Likewise.
        * viengoos/rpc.h: Likewise.
        * viengoos/misc.h: Moved from ../viengoos/rm.h.
        * viengoos/thread.h: New file split from ../hurd/thread.h.
    
    libpthread/
    
    2008-12-17  Neal H. Walfield  <address@hidden>
    
        * Makefile.am: New file.
        * headers.m4: Likewise.
        * t-addr-trans.c: Move from ../hurd.
        * t-addr.c: Likewise.
        * t-rpc.c: Likewise.
        * viengoos.h: Likewise.
        * viengoos/activity.h: Likewise.
        * viengoos/addr-trans.h: Likewise.
        * viengoos/addr.h: Likewise.
        * viengoos/cap.h: Likewise.
        * viengoos/folio.h: Likewise.
        * viengoos/futex.h: Likewise.
        * viengoos/ipc.h: Likewise.
        * viengoos/message.h: Likewise.
        * viengoos/messenger.h: Likewise.
        * viengoos/rpc.h: Likewise.
        * viengoos/misc.h: Moved from ../viengoos/rm.h.
        * viengoos/thread.h: New file split from ../hurd/thread.h.
    
    viengoos/
    
    2008-12-17  Neal H. Walfield  <address@hidden>
    
        * rm.h: Move from here...
        * ../libviengoos/viengoos/misc.h: ... to here.  Update users.
        * headers.m4: Don't link rm.h to hurd/rm.h.
        * Makefile.am (viengoos_SOURCES): Remove rm.h.

commit c85145e9fb1a5f12431b44395934f30dc62ee9d5
Author: Neal H. Walfield <address@hidden>
Date:   Fri Dec 12 10:20:33 2008 +0100

    New IPC system.  Update code accordingly.
    
    hurd/
    
    2008-12-11  Neal H. Walfield  <address@hidden>
    
        Adapt RPC interfaces according to changes in IPC semantics.
    
        * messenger.h: New file.
        * message.h: New file.
        * ipc.h: New file.
        * headers.m4: Link sysroot/include/hurd/message.h to
        hurd/message.h, sysroot/include/hurd/messenger.h to
        hurd/messenger.h, and sysroot/include/hurd/ipc.h to hurd/ipc.h.
        * cap.h: Include <hurd/addr.h> and <stdbool.h>.
        (enum cap_type): Define cap_messenger, cap_rmessenger and
        cap_type_count.
        (cap_type_string): Handle cap_messenger and cap_rmessenger.
        (cap_types_compatible): Likewise.
        (cap_type_weak_p): Likewise.
        (cap_type_weaken): Likewise.
        (cap_type_strengthen): Likewise.
        (oid_t): Replace L4 type with standard type.
        (CAP_VOID): Define.
    
        * rpc.h [! RPC_TARGET]: Don't error out if not defined.
        [RPC_TARGET_ARG_]: Don't define or undefine.
        [RPC_TARGET_]: Likewise.
        [RPC_TARGET_NEED_ARG]: Ignore.
        Don't include <l4/ipc.h> or <l4/space.h>.  Include
        <hurd/message.h> and <hurd/ipc.h>.
        (reply_buffer) [RM_INTERN]: Declare.
        (messenger_message_load) [RM_INTERN]: Likewise.
        [! RM_INTERN] Include <hurd/message-buffer.h>.
        (cap_t): Define.
        (CPP_FOREACH): Define.
        (CPP_SAFE_DEREF): Likewise.
        (RPC_ARGUMENTS): Take additional argument prefix.  Use it.  Update
        users.
        (RPC_CHOP): Rename from this...
        (RPC_CHOP2): ... to this.  Update users.
        (RPC_TYPE_SHIFT): New define.
        (RPCLOADARG): Rewrite according to new marshalling semantics.
        (RPCSTOREARG): Likewise.
        (RPC_SEND_MARSHAL): Likewise.
        (RPC_SEND_UNMARSHAL): Likewise.
        (RPC_REPLY_MARSHAL): Likewise.
        (RPC_REPLY_UNMARSHAL): Likewise.
        (RPC_RECEIVE_MARSHAL): New define.
        (RPC_MARSHAL_GEN_): Break this into...
        (RPC_SEND_MARSHAL_GEN_): ... this...
        (RPC_RECEIVE_MARSHAL_GEN_): ... this...
        (RPC_REPLY_MARSHAL_GEN_): ... and this.  Update users.
        (RPC_MARSHAL_GEN_): Redefine in terms of the new macros.
        (RPC_SEND_): Rewrite according to new marshalling and IPC
        semantics.
        (RPC_SEND_NONBLOCKING_): Define.
        (RPC_): Rewrite according to new marshalling and IPC
        semantics.
        (RPC_REPLY_): Likewise.
        (RPC_SIMPLE_): Don't define.
        (RPC_SIMPLE): Don't define.
        (RPC): Take additional argument ret_cap_count.  Update users.
        (rpc_error_reply_marshal): Rewrite according to new marshalling
        and IPC semantics.
        (rpc_error_reply): Likewise.
        * t-rpc.c (RPC_TARGET_NEED_ARG): Don't define.
        (RPC_TARGET): Define.
        (RPC_noargs): Set to a large interger.
        (RPC_caps): New define.
        (noargs): Update interface specification according to new IDL
        interface.  Update users.
        (onein): Likewise.
        (oneout): Likewise.
        (onlyin): Likewise.
        (onlyout): Likewise.
        (mix): Likewise.
        (noargs): Likewise.
        (onein): Likewise.
        (oneout): Likewise.
        (onlyin): Likewise.
        (onlyout): Likewise.
        (mix): New interface.
        (RPC_TARGET): Don't undefine.
        (main): Update to use the new RPC marshalling interface.  Write a
        test using the new `mix' interface.
        * activity.h (RPC_TARGET_NEED_ARG): Don't undefine.
        (RPC_TARGET): Don't define.
        (activity_policy): Update interface specification according to new
        IDL interface.  Update users.
        (activity_info): Likewise.
        * cap.h: (RPC_TARGET_NEED_ARG): Don't undefine.
        (RPC_TARGET): Don't define.
        (RM_object_slot_copy_out): Don't define.
        (RM_object_slot_copy_in): Likewise.
        (RM_object_slot_read): Likewise.
        (RM_object_reply_on_destruction): Define.
        (cap_copy): Update interface specification according to new
        IDL interface.  Update users.
        (cap_rubout): Likewise.
        (cap_read): Likewise.
        (object_discarded_clear): Likewise.
        (object_discard): Likewise.
        (object_status): Likewise.
        (object_name): Likewise.
        (object_reply_on_destruction): New interface replacing
        thread_wait_destroy.
        (object_slot_copy_out): Remove interface.
        (object_slot_copy_in): Likewise.
        (object_slot_read): Likewise.
        (RPC_TARGET): Don't undefine.
        * exceptions.h: Don't include <l4/thread.h>.  Include
        <l4/space.h>.
        (RPC_STUB_PREFIX): Redefine to `activation'.
        (RPC_ID_PREFIX EXCEPTION): Redefine to `ACTIVATION'.
        (RPC_TARGET_NEED_ARG): Don't define.
        (RPC_TARGET_ARG_TYPE): Likewise.
        (RPC_TARGET): Likewise.
        (EXCEPTION_fault): Rename from this...
        (ACTIVATION_fault): ... to this.  Update users.
        (exception_method_id_string): Rename from this...
        (activation_method_id_string): ... to this.
        (struct exception_info): Rename from this...
        (struct activation_fault_info): ... to this.  Update users.
        (EXCEPTION_INFO_FMT): Rename from this...
        (ACTIVATION_FAULT_INFO_FMT): ... to this.  Update users.
        (EXCEPTION_INFO_PRINTF): Rename from this...
        (ACTIVATION_FAULT_INFO_PRINTF): ... to this.  Update users.
        (fault): Update interface specification according to new IDL
        interface.  Update users.
        * folio.h (RPC_TARGET_NEED_ARG): Don't undefine.
        (RPC_TARGET): Don't define.
        (folio_alloc): Update interface specification according to new IDL
        interface.  Update users.
        (folio_free): Likewise.
        (folio_object_alloc): Likewise.
        (folio_policy): Likewise.
        (RPC_TARGET): Don't undefine.
        * futex.h (RPC_TARGET_NEED_ARG): Don't undefine.
        (RPC_TARGET): Don't define.
        (futex): Update interface specification according to new IDL
        interface.  Update users.
        (RPC_TARGET): Don't undefine.
        (futex_using): New function.
        (futex): Implement in terms of it.
        (futex_wait_using): New function.
        (futex_wait): Implement in terms of it.
        (futex_wake_using): New function.
        (futex_wake): Implement in terms of it.
        * thread.h (RM_thread_wait_object_destroyed): Don't define.
        (RM_thread_raise_exception): Rename from this...
        (RM_thread_activation_collect): ... to this.
        (RM_thread_id): Define.
        (RPC_TARGET_NEED_ARG): Don't undefine.
        (RPC_TARGET): Don't define.
        (struct hurd_thread_exregs_in): Remove fields aspace, activity,
        exception_page, aspace_out, activity_out and exception_page_out.
        (thread_exregs): Update interface specification according to new
        IDL interface.  Add additional parameters exception_messenger and
        exception_messenger_out.  Update users.
        (thread_wait_object_destroyed): Remove interface.
        (struct exception_buffer): Don't define.
        (thread_raise_exception): Remove interface.
        (thread_id): New interface.
        (thread_activation_collect): Likewise.
        (RPC_TARGET): Don't undefine.
        * RPC: Update.
    
        * exceptions.h (hurd_activation_handler_init_early): New
        declaration.
        (hurd_activation_handler_init): Likewise.
        (hurd_utcb): Likewise.
        (EXCEPTION_STACK_SIZE_LOG2): Don't define.
        (EXCEPTION_STACK_SIZE): Likewise.
        (hurd_activation_state_alloc): New declaration.
        (exception_page_cleanup): Rename from this...
        (hurd_activation_state_free): ... to this.  Update users.
        (exception_handler_activated): Rename from this...
        (hurd_activation_handler_activated): ... to this.
        (exception_handler_normal): Rename from this...
        (hurd_activation_handler_normal): ... to this.  Update users.
        Take additional parameter utcb.
        (exception_handler_entry): Rename from this...
        (hurd_activation_handler_entry): ... to this.
        (exception_handler_end): Rename from this...
        (hurd_activation_handler_end): ... to this.
        (hurd_activation_message_register): New declaration.
        (hurd_activation_message_unregister): Likewise.
        (hurd_activation_stack_dump): Likewise.
        * thread.h [! __have_vg_thread_id_t] (__have_vg_thread_id_t):
        Define.
        [! __have_vg_thread_id_t && USE_L4]: Include <l4.h>.
        [! __have_vg_thread_id_t && !USE_L4]: Include <stdint.h>.
        [! __have_vg_thread_id_t] (vg_thread_id_t): Define.
        [! __have_vg_thread_id_t] (vg_niltid): Define.
        [! __have_vg_thread_id_t] (VG_THREAD_ID_FMT): Define.
        [! __have_activation_frame] (__have_activation_frame): Define.
        [! __have_activation_frame && USE_L4]: Include <l4/ipc.h>.
        [! __have_activation_frame] (struct hurd_message_buffer): Declare.
        [! __have_activation_frame] (struct activation_frame): Define in
        this case.  Add fields normal_mode_stack and canary.
        [! __have_activation_frame && i386] (struct activation_frame):
        Change regs to have 10 elements.  Add fields eax, ecx, edx,
        eflags, eip, ebx, edi, esi, ebp and esp.
        [! __have_activation_frame && !USE_L4] (struct activation_frame):
        Remove fields saved_sender, saved_receiver, saved_timeout,
        saved_error_code, saved_flags, and saved_br0 in this case.
        [__need_vg_thread_id_t || __need_activation_frame]
        (__need_vg_thread_id_t): Undefine.
        [__need_vg_thread_id_t || __need_activation_frame]
        (__need_activation_frame): Likewise.
        [!__need_vg_thread_id_t && !__need_activation_frame]: Include the
        rest of the file in this case.  Include <stdint.h>,
        <hurd/types.h>, <hurd/addr.h>, <hurd/addr-trans.h>, <hurd/cap.h>,
        <hurd/messenger.h> and <setjmp.h>.
        (hurd_activation_frame_longjmp): New declaration.
        (struct hurd_fault_catcher): New definition.
        (hurd_fault_catcher_register): New declaration.
        (hurd_fault_catcher_unregister): Likewise.
        (struct exception_page): Rename from this...
        (struct vg_utcb): ... to this.  Update users.  Remove field
        exception.  Add fields protected_payload, messenger_id,
        inline_words, inline_caps, inline_word_count, inline_cap_count,
        inline_data, exception_buffer, extant_messages, catchers,
        alternate_stack, alternate_stack_inuse, canary0, canary1.
        (UTCB_CANARY0): Define.
        (UTCB_CANARY1): Likewise.
        (THREAD_EXCEPTION_PAGE_SLOT): Rename from this...
        (THREAD_UTCB): ... to this.
        (THREAD_EXCEPTION_MESSENGER): Define.
        (THREAD_SLOTS): Likewise.
        (THREAD_SLOTS_LOG2): Likewise.
        (HURD_EXREGS_SET_EXCEPTION_PAGE): Rename from this...
        (HURD_EXREGS_SET_UTCB): ... to this.  Update users.
        (HURD_EXREGS_SET_EXCEPTION_MESSENGER): Define.
        (HURD_EXREGS_SET_REGS): Add HURD_EXREGS_SET_EXCEPTION_MESSENGER.
        (vg_myself): New function.
    
        * startup.h (struct hurd_startup_data): Add field messengers.
    
    viengoos/
    
    2008-12-12  Neal H. Walfield  <address@hidden>
    
        Implement messengers and convert to new IPC semantics.
        * messenger.h: New file.
        * messenger.c: New file.
        * Makefile.am (viengoos_SOURCES): Add messenger.h and messenger.c.
        * ager.c: Include "messenger.h".
        (update_stats): Update notifivation code to use messengers.
        * cap.c: Include <hurd/messenger.h>.
        (cap_shootdown): Follow thread and messenger objects.
        * object.h (object_wait_queue_head): Use and return struct
        messenger *'s, not struct thread *'s.  Update users.
        (object_wait_queue_tail): Likewise.
        (object_wait_queue_next): Likewise.
        (object_wait_queue_prev): Likewise.
        (object_wait_queue_enqueue): Likewise.
        (object_wait_queue_dequeue): Likewise.  Rename from this...
        (object_wait_queue_unlink): ... to this.
        (object_wait_queue_push): New declaration.
        (folio_object_wait_queue_for_each): Use and return struct
        messenger *'s, not struct thread *'s.  Update users.
        (object_wait_queue_for_each): Likewise.
        * object.c: Include <hurd/messenger.h> and "messenger.h".
        (folio_object_alloc): When destroying a messenger, call
        messenger_destroy.
        (folio_object_alloc): Send notifications using messengers.
        (object_wait_queue_head): Use and return struct messenger *'s, not
        struct thread *'s.
        (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.  Add MESSENGER to end of
        the queue, not the beginning.
        (object_wait_queue_push): New function.
        (object_wait_queue_dequeue): Use and return struct messenger *'s,
        not struct thread *'s.  Rename from this...
        (object_wait_queue_unlink): ... to this.
        * pager.c: Include "messenger.h".
        * thread.h: Don't include "list.h".  Include <hurd/cap.h> and
        <hurd/thread.h>.
        (struct folio): Remove declaration.
        (THREAD_SLOTS): Don't define.
        (THREAD_WAIT_FUTEX): Move from here...
        * messenger.h (MESSENGER_WAIT_FUTEX): ... to here.
        * thread.h (THREAD_WAIT_DESTROY): Move from here...
        * messenger.h (MESSENGER_WAIT_DESTROY): ... to here.
        * thread.h (THREAD_WAIT_ACTIVITY_INFO): Move from here...
        * messenger.h (MESSENGER_WAIT_ACTIVITY_INFO): ... to here.
        * thread.h (struct thread): Rename field exception_page to utcb.
        Add field exception_messenger.  Remove fields wait_queue_p,
        wait_queue_head, wait_queue_tail, wait_reason, wait_reason_arg,
        wait_reason_arg2, wait_queue and futex_waiter_node.
        (futex_waiters): Don't declare.
        (thread_exregs): Change input capabilities to not be pointers to
        capabilities but just capability structures.  Add argument
        exception_messenger.  Remove arguments aspace_out, activity_out
        and exception_page_out.  Update users.
        (thread_activate): New declaration.
        (thread_raise_exception): Change MSG's type to be struct
        vg_message *.  Update users.
        (thread_deliver_pending): New declaration.
        * thread.c (thread_deinit): Remove code to remove THREAD from a
        wait queue.
        (thread_exregs): Change input capabilities to not be pointers to
        capabilities but just capability structures.  Update code.  Add
        argument exception_messenger.  Set THREAD's exception messenger
        according to it and CONTROL.  Remove arguments aspace_out,
        activity_out and exception_page_out.  Don't save the old
        capabilities.
        (thread_raise_exception): Move body of function...
        (thread_activate): ... to this new function.  Update to use
        messengers.
        (thread_raise_exception): Implement in terms of it.
        (thread_deliver_pending): New function.
        * server.c: Include <hurd/ipc.h> and "messenger.h".
        (DEBUG): If label is the IPC label, use "IPC" as the function.
        (OBJECT_): Take additional parameter WRITABLE.  Save whether the
        object is writable in *WRITABLE.  Update users.
        (OBJECT): Likewise.
        (server_loop): Update to use messengers and the new IPC interface.
        Update method implementations appropriately.  Don't marshal faults
        using exception_fault_send_marshal but the new
        activation_fault_send_marshal.  Remove implementations of
        object_slot_copy_out, object_slot_copy_in and object_slot_read.
        Reimplement object_discard.  In the thread_exregs implementation,
        handle the exception messenger.  Implement thread_id.  Remove
        thread_wait_object_destroyed.  Implement
        object_reply_on_destruction.  In activity_info and
        activity_policy, don't operate on PRINCIPAL but the invoke
        activity.  Implement thread_activation_collect.  When blocking on
        a futex, don't enqueue the calling thread but the reply messenger.
        Implement the messenger_id method.
        (REPLY): Redefine before processing an object invocation to reply
        using the reply messenger included in the request.
    
        * rm.h: Include <l4/message.h>.
        (rm_method_id_string): Don't handle object_slot_copy_out,
        object_slot_copy_in, object_slot_read, exception_collect or
        thread_wait_object_destroyed.  Handle object_reply_on_destruction,
        thread_id, thread_activation_collect.
        (RPC_TARGET_NEED_ARG): Don't undefine.
        (RPC_TARGET): Don't define.
        (struct io_buffer): Redefine in terms of L4_NUM_BRS.
        (write): Update interface specification according to new IDL
        interface.  Update users.
        (read): Likewise.
        (as_dump): Likewise.
        (fault): Likewise.
        (RPC_STUB_PREFIX): Don't undefine.
        (RPC_ID_PREFIX): Likewise.
    
    libhurd-mm/
    
    2008-12-12  Neal H. Walfield  <address@hidden>
    
        Update to new RPC interface and IPC semantics.  Support messengers.
    
        * message-buffer.h: New file.
        * message-buffer.c: Likewise.
        * Makefile.am (libhurd_mm_a_SOURCES): Add message-buffer.h and
        message-buffer.c.
        * headers.m4: Link sysroot/include/hurd/message-buffer.h to
        libhurd-mm/message-buffer.h.
        * exceptions.c: Include <hurd/mm.h>, <hurd/rm.h> and
        <backtrace.h>.
        (hurd_fault_catcher_register): New function.
        (hurd_fault_catcher_unregister): Likewise.
        (hurd_activation_frame_longjmp): Likewise.
        (utcb_state_save): Rename from this...
        (l4_utcb_state_save): ... to this.  Take a `struct
        activation_frame *', not a `struct exception_frame *'.
        (utcb_state_restore): Rename from this...
        (l4_utcb_state_restore): ... to this.  Take a `struct
        activation_frame *', not a `struct exception_frame *'.
        (exception_fetch_exception): Rename from this...
        (hurd_activation_fetch): ... to this.
        (hurd_activation_message_register): New function.
        (hurd_activation_frame_longjmp): Likewise.
        (exception_frame_slab): Rename from this...
        (activation_frame_slab): ... to this.  Use a static initializer.
        (exception_frame_slab_alloc): Rename from this...
        (activation_frame_slab_alloc): ... to this.  Don't preserve the L4
        utcb.
        (exception_frame_slab_dealloc): Rename from this...
        (activation_frame_slab_dealloc): ... to this.
        (exception_frame_alloc): Rename from this...
        (activation_frame_alloc): ... to this.  If there are no
        preallocated frames, panic.  Move the hard allocation code to...
        (check_activation_frame_reserve): ... this new function.
        (hurd_activation_stack_dump): New function.
        (hurd_activation_handler_normal): Take an additional parameter,
        the utcb.  Add consistency checks.  Handle IPC and closures.
        Update fault handling code to use the new fault interface.  If
        unable to resolve the fault via the pager mechanism, see if a
        fault catcher in installed.  Check the UTCB's canary.  If running
        on the alternate stack, clear UTCB->ALTERNATE_STACK_INUSE on exit.
        (hurd_activation_handler_activated): Take a `struct vg_utcb *',
        not a `struct exception_page *'.  Handle IPC and closures.
        Improve test to determine if the fault was a stack fault.  If so,
        return to normal mode to handle the fault and use an alternate
        stack.
        (activation_handler_area0): New local variable.
        (activation_handler_msg): Likewise.
        (initial_utcb): Likewise.
        (simple_utcb_fetcher): New function.
        (hurd_utcb): New variable.
        (hurd_activation_handler_init_early): New function.
        (hurd_activation_handler_init): Likewise.
        (exception_handler_init): Remove function.
        (ACTIVATION_AREA_SIZE_LOG2): Define.
        (ACTIVATION_AREA_SIZE): Likewise.
        (hurd_activation_state_alloc): New function.
        (exception_page_cleanup): Rename from this...
        (hurd_activation_state_free): ... to this.  Rewrite.
        * ia32-exception-entry.S (_hurd_activation_handler_entry): Save
        the eflags before executing a sub instruction.  Don't try to
        smartly calculate the location of the UTCB.  Instead, just reload
        it.
        (activation_frame_run): Use an alternate stack, if requested.
        Save ebx and ebi.  Pass the utcb to the callback.
        * mm-init.c [i386]: Include <hurd/pager.h>.
        Include <backtrace.h>.
        (mm_init): Call hurd_activation_handler_init_early and
        hurd_activation_handler_init.  Don't call exception_handler_init.
        (mm_init) [! NDEBUG && i386]: Test the activation code.
    
        * as-build.c (do_index): Handle indexing a cap_thread or a
        cap_messenger.
        (as_build): Likewise.
        * as-dump.c (do_walk): Handle indexing a cap_thread or a
        cap_messenger.
        * as-lookup.c (as_lookup_rel_internal): Likewise.
        * as.c (as_walk): Likewise.
    
        * storage.c: Include <backtrace.h>.
        (shadow_setup): Update use of rm_folio_object_alloc according to
        its new interface.
        (storage_check_reserve_internal): Likewise.
        (storage_free_): Likewise.
        (FREE_PAGES_SERIALIZE): Bump to 32.
        (storage_alloc): If we try to get storage more than 5 lives, print
        a warning that we may be experiencing live lock.
    
        * pager.h (pager_fault_t): Change info's type from `struct
        exception_info' to `struct activation_fault_info'.
        (PAGER_VOID): Define.
        * map.h: Don't include <hurd/exceptions.h>.  Include <hurd/as.h>.
        (maps_lock_lock): Don't use EXCEPTION_STACK_SIZE but
        AS_STACK_SPACE.
        (map_fault): Change info's type from `struct exception_info' to
        `struct activation_fault_info'.
        * map.c (map_fault): Change info's type from `struct
        exception_info' to `struct activation_fault_info'.
    
        * as.h (AS_STACK_SPACE): Define.
        (as_lock): Use AS_STACK_SPACE instead of EXCEPTION_STACK_SIZE.
        (as_lock_readonly): Likewise.
    
        * as.h (AS_CHECK_SHADOW): Only check the address translator for
        capabilities that designate cappages.
    
        * anonymous.h (ANONYMOUS_MAGIC): Define.
        (struct anonymous_pager): Add field magic.
        * anonymous.c (fault): Assert that ANON->MAGIC has the expected
        value.  Correctly size PAGES.
        (mdestroy): Assert that ANON->MAGIC has the expected value.
        (destroy): Likewise.
        (advise): Likewise.
        (anonymous_pager_alloc): Initialize ANON->MAGIC.
    
    benchmarks/
    
    2008-12-12  Neal H. Walfield  <address@hidden>
    
        Update according to new RPC interfaces.
        * activity-distribution.c (main): Update use of rm_activity_policy
        and rm_activity_info to be consistent with the new interface.
        Replace use of `struct exception_info' with `struct
        activation_fault_info'.
        * cache.c (helper): Update use of rm_activity_policy and
        rm_activity_info to be consistent with the new interface.
        * shared-memory-distribution.c (main): Likewise.
    
    hieronymus/
    
    2008-12-12  Neal H. Walfield  <address@hidden>
    
        Update according to new RPC interfaces.
        * hieronymus.c (activity_alloc): Update use of rm_activity_policy,
        rm_activity_info and rm_folio_object_alloc to be consistent with
        new interface.  Replace use of rm_thread_wait_object_destroyed
        with rm_object_reply_on_destruction.
    
    libc-parts/
    
    2008-12-11  Neal H. Walfield  <address@hidden>
    
        Update to new RPC interfaces.
    
        * _exit.c (_exit): Update use of rm_folio_object_alloc to be
        consistent with the new interface.
    
        * backtrace.c (RA) [!RM_INTERN]: Set up a fault catch handler to
        avoid gratuitously faulting.
        (backtrace) [!RM_INTERN]: Set up a jump buffer.  Jump to it on a
        fault.
        (backtrace_print): Use s_printf, not printf.
    
        * ia32-crt0.S (STACK_SIZE): Increase to 128 kb.
    
        * process-spawn.c (process_spawn): Don't use a capability slot to
        identify the root of the new thread's address space, allocate a
        thread object.  Allocate messengers for the new thread and save
        them in STARTUP_DATA->MESSENGERS.
    
        * s_printf.c (io_buffer_flush): Use the debug output interface.
        (s_putchar): Don't call rm_write but use io_buffer_flush.
    
    libpthread/
    
    2008-12-11  Neal H. Walfield  <address@hidden>
    
        Update to new RPC interfaces, IPC semantics.
    
        * sysdeps/viengoos/bits/pthread-np.h: Include <hurd/exceptions.h>.
        (pthread_hurd_utcb_np): New declaration.
        * sysdeps/viengoos/pt-hurd-utcb-np.c: New file.
        * Makefile.am (libpthread_a_SOURCES): Add pt-hurd-utcb.c.
    
        * sysdeps/viengoos/pt-sysdep.h (EXCEPTION_AREA_SIZE): Don't
        define.
        (EXCEPTION_AREA_SIZE_LOG2): Likewise.
        (EXCEPTION_PAGE): Likewise.
        (PTHREAD_SYSDEP_MEMBERS): Remove fields exception_area, and
        exception_area_va.  Add fields utcb and lock_message_buffer.
        * sysdeps/viengoos/pt-thread-alloc.c: Include
        <hurd/message-buffer.h>.
        (__pthread_thread_alloc): Initialize thread->lock_message_buffer.
        When executed the first time, set the thread's L4 user-defined
        handler.  Initialize THREAD->UTCB with the thread's current utcb.
        Set HURD_UTCB to PTHREAD_HURD_UTCB_NP.  For subsequent threads,
        don't manually set up the activation area.  Instead, call
        hurd_activation_state_alloc.
        * sysdeps/viengoos/pt-thread-dealloc.c: Include
        <hurd/message-buffer.h>.
        (__pthread_thread_dealloc): Call __pthread_thread_halt.  Don't
        manually clean up the activation area.  Instead, call
        hurd_activation_state_free.  Free THREAD->LOCK_MESSAGE_BUFFER.
        * sysdeps/viengoos/ia32/pt-setup.c (stack_setup): Pre-fault the
        first four pages of the new stack.
        (__pthread_setup): Don't set up the activation area.
    
        * sysdeps/viengoos/pt-wakeup.c (__pthread_wakeup): Use
        futex_wake_using with the calling thread's lock messenger.
        * sysdeps/viengoos/pt-block.c (__pthread_block): Use
        futex_wait_using and provide THREAD->LOCK_MESSAGE_BUFFER as the
        message buffer.
    
        * sysdeps/viengoos/pt-thread-start.c (__pthread_thread_start):
        Don't set the first thread's L4 user-defined handler here.
        (__pthread_thread_start): Update use of rm_thread_exregs according
        to be consistent with new interface.
        * sysdeps/viengoos/pt-thread-halt.c (__pthread_thread_halt): If
        THREAD is the current thread, call vg_suspend.
    
        * sysdeps/viengoos/pt-setactivity-np.c (pthread_setactivity_np):
        Update use of rm_thread_exregs according to be consistent with new
        interface.
        * sysdeps/viengoos/ia32/signal-dispatch-lowlevel.c
        (signal_dispatch_lowlevel): Use __builtin_frame_address to get the
        current stack frame's start.  Update use of rm_thread_exregs
        according to be consistent with new interface.
    
    ruth/
    
    2008-12-12  Neal H. Walfield  <address@hidden>
    
        Update to new RPC interfaces.
        * ruth.c (main): Update use of rm_folio_alloc,
        rm_folio_object_alloc, rm_thread_exregs, rm_activity_policy,
        rm_activity_info.  Replace use of rm_thread_wait_object_destroy
        with rm_object_reply_on_destruction.  Replace use of `struct
        exception_info' with `struct activation_fault_info'.  Fix signal
        test's use of condition variables to not rely on the scheduler.
        When checking deallocation code, set up a fault handler to
        programmatically determine success.

commit bb9f6db73f4087228a609a4d75008c817d8e5bb0
Author: Neal H. Walfield <address@hidden>
Date:   Thu Dec 11 16:52:50 2008 +0100

    Create a generic spin-lock-inline.h using gcc's __sync primitives.
    
    2008-12-11  Neal H. Walfield  <address@hidden>
    
        * sysdeps/generic/bits/spin-lock-inline.h: New file.

commit 530e6e175487479512d0a65d5a104ec98ba2b61d
Author: Neal H. Walfield <address@hidden>
Date:   Thu Dec 11 16:46:31 2008 +0100

    Use calloc, not malloc, to allocate a new struct __pthread.
    
    2008-12-11  Neal H. Walfield  <address@hidden>
    
        * pthread/pt-alloc.c (__pthread_alloc): Use calloc, not malloc, to
        allocate a new struct __pthread.

commit e1051a03ddd40569d21478a834a707f5a93f42b0
Author: Neal H. Walfield <address@hidden>
Date:   Mon Nov 3 14:10:12 2008 +0100

    Remove .cvsignore files.  Add a .gitignore file.

commit 5fe5b7c18381120a91b51ce2485d883d1622537b
Author: Neal H. Walfield <address@hidden>
Date:   Mon Nov 3 14:04:36 2008 +0100

    Update to binutils 2.19.
    
    /
    
    2008-11-03  Neal H. Walfield  <address@hidden>
    
        * Makefile.am (libc-stmp): Don't create an empty
        sysroot/lib/libc.a.
    
    binutils/
    
    2008-11-03  Neal H. Walfield  <address@hidden>
    
        * Makefrag.am (binutils_version): Bump to 2.19.
    
    libc-parts/
    
    2008-11-03  Neal H. Walfield  <address@hidden>
    
        * headers.m4: Don't create an empty libc-parts/libc-parts.a.
    
    libhurd-btree/
    
    2008-11-03  Neal H. Walfield  <address@hidden>
    
        * headers.m4: Don't create an empty
        libhurd-btree/libhurd-btree.alibhurd-btree/libhurd-btree.a.
    
    libhurd-ihash/
    
    2008-11-03  Neal H. Walfield  <address@hidden>
    
        * headers.m4: Don't create an empty libhurd-ihash/libhurd-ihash.a.
    
    libhurd-mm
    
    2008-11-03  Neal H. Walfield  <address@hidden>
    
        * headers.m4: Don't create an empty libhurd-mm/libhurd-mm.a.
    
    libhurd-slab/
    
    2008-11-03  Neal H. Walfield  <address@hidden>
    
        * headers.m4: Don't create an empty libhurd-slab/libhurd-slab.a.
    
    libpthread/
    
    2008-11-03  Neal H. Walfield  <address@hidden>
    
        * headers.m4: Don't create an empty libpthread/libpthread.a.
    
    newlib/
    
    2008-11-03  Neal H. Walfield  <address@hidden>
    
        * headers.m4: Don't create an empty newlib/libc.a or an empty
        newlib/libm.a.
    
    viengoos/
    
    2008-11-03  Neal H. Walfield  <address@hidden>
    
        * headers.m4: Don't create an empty viengoos/libhurd-cap.a.

-----------------------------------------------------------------------

Summary of changes:
 .cvsignore                                         |    1 -
 ChangeLog                                          |  162 ++++++++++++++++++++
 Makefile.am                                        |    1 +
 headers.m4                                         |    8 +-
 pthread/pt-alloc.c                                 |    2 +-
 signal/kill.c                                      |    2 +
 signal/signal-dispatch.c                           |    4 +-
 signal/sigwaiter.c                                 |    2 +-
 signal/sigwaitinfo.c                               |    2 +-
 sysdeps/generic/bits/memory.h                      |   36 +++++
 sysdeps/{ia32 => generic}/bits/spin-lock-inline.h  |   21 ++--
 sysdeps/{ia32 => generic}/bits/spin-lock.h         |    2 +-
 sysdeps/viengoos/bits/pthread-np.h                 |    8 +-
 sysdeps/viengoos/ia32/pt-setup.c                   |   28 +---
 sysdeps/viengoos/ia32/signal-dispatch-lowlevel.c   |   37 +++--
 sysdeps/viengoos/pt-block.c                        |   16 ++-
 sysdeps/viengoos/pt-docancel.c                     |   14 ++-
 .../pt-startup.c => viengoos/pt-hurd-utcb-np.c}    |    9 +-
 sysdeps/viengoos/pt-setactivity-np.c               |   19 +--
 sysdeps/viengoos/pt-sigstate-init.c                |    1 +
 sysdeps/viengoos/pt-sigstate.c                     |    3 +-
 sysdeps/viengoos/pt-spin.c                         |   17 ++-
 sysdeps/viengoos/pt-stack-alloc.c                  |    3 +-
 sysdeps/viengoos/pt-startup.c                      |    9 +-
 sysdeps/viengoos/pt-sysdep.c                       |    9 +
 sysdeps/viengoos/pt-sysdep.h                       |   33 +++--
 sysdeps/viengoos/pt-thread-alloc.c                 |   85 ++++++-----
 sysdeps/viengoos/pt-thread-dealloc.c               |   26 +---
 sysdeps/viengoos/pt-thread-halt.c                  |   23 +++-
 sysdeps/viengoos/pt-thread-start.c                 |   47 +++---
 sysdeps/viengoos/pt-wakeup.c                       |   11 +-
 sysdeps/viengoos/sig-sysdep.h                      |   10 ++
 32 files changed, 457 insertions(+), 194 deletions(-)
 delete mode 100644 .cvsignore
 create mode 100644 sysdeps/generic/bits/memory.h
 copy sysdeps/{ia32 => generic}/bits/spin-lock-inline.h (86%)
 copy sysdeps/{ia32 => generic}/bits/spin-lock.h (95%)
 copy sysdeps/{generic/pt-startup.c => viengoos/pt-hurd-utcb-np.c} (83%)


hooks/post-receive
--
POSIX threading library




reply via email to

[Prev in Thread] Current Thread [Next in Thread]