summaryrefslogtreecommitdiff
path: root/hurd/lock.h
AgeCommit message (Collapse)Author
2009-01-16Conditionalize use of l4 functions on USE_L4.Neal H. Walfield
/ 2009-01-16 Neal H. Walfield <neal@gnu.org> * 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 <neal@gnu.org> * 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 <neal@gnu.org> * 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 <neal@gnu.org> * 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 <neal@gnu.org> * _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 <neal@gnu.org> * 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 <neal@gnu.org> * 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 <neal@gnu.org> * 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 <neal@gnu.org> * 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 <neal@gnu.org> * 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.
2008-12-04Use 0, not NULL.Neal H. Walfield
2008-12-04 Neal H. Walfield <neal@gnu.org> * lock.h: Don't include <atomic.h>. (ss_lock_trace_dump): Set FUNC to 0, not NULL.
2008-06-222008-06-22 Neal H. Walfield <neal@gnu.org>neal
* lock.h (SS_MUTEX_LOCK, SS_MUTEX_LOCK_WAIT, SS_MUTEX_UNLOCK, SS_MUTEX_TRYLOCK, SS_MUTEX_TRYLOCK_BLOCKED, SS_RMUTEX_LOCK, SS_RMUTEX_LOCK_INC, SS_RMUTEX_LOCK_WAIT, SS_RMUTEX_UNLOCK, SS_RMUTEX_UNLOCK_DEC, SS_RMUTEX_TRYLOCK, SS_RMUTEX_TRYLOCK_INC, SS_RMUTEX_TRYLOCK_BLOCKED) [NDEBUG]: Also define in this case.
2008-01-232008-01-24 Neal H. Walfield <neal@gnu.org>neal
* lock.h (ss_lock_trace_dump): Use S_PRINTF rather than printf.
2008-01-232008-01-24 Neal H. Walfield <neal@gnu.org>neal
* lock.h (ss_lock_trace_dump): Use s_printf rather than printf.
2008-01-222008-01-22 Neal H. Walfield <neal@gnu.org>neal
* mutex.h [RM_INTERN]: Raise an error. [! __hurd_mutex_have_type]: Only define ss_mutex_t in this case. Define __hurd_mutex_have_type. Change ss_mutex_t to an int. [__need_ss_mutex_t]: Undefine __need_ss_mutex_t. Don't make the rest of the file available. [! __need_ss_mutex_t]: Include <hurd/futex.h>. (_MUTEX_UNLOCKED): New define. (_MUTEX_LOCKED): Likewise. (_MUTEX_WAITERS): Likewise. (ss_mutex_lock): Implement in terms of futexes. (ss_mutex_unlock): Likewise. (ss_mutex_trylock): Likewise. * lock.h (SS_RMUTEX_LOCK): Define. (SS_RMUTEX_LOCK_INC): Likewise. (SS_RMUTEX_LOCK_WAIT): Likewise. (SS_RMUTEX_UNLOCK): Likewise. (SS_RMUTEX_UNLOCK_DEC): Likewise. (SS_RMUTEX_TRYLOCK): Likewise. (SS_RMUTEX_TRYLOCK_INC): Likewise. (SS_RMUTEX_TRYLOCK_BLOCKED): Likewise. (ss_lock_trace_dump): Handle the above new cases. * rmutex.h: New file. * Makefile.am (includehurd_HEADERS): Add rmutex.h. * headers.m4: Link $(BUILDIR)/include/hurd/rmutex.h to rmutex.h.
2008-01-032008-01-03 Neal H. Walfield <neal@gnu.org>neal
* mutex.h: Don't include <l4/ipc.h>. Include <hurd/lock.h>. (struct ss_lock_trace): Move from here.. * lock.h: ... to this new file. * mutex.h (SS_LOCK_TRACE_COUNT): Likewise. (ss_mutex_lock): Likewise. (ss_mutex_lock): Likewise. (SS_MUTEX_LOCK): Likewise. (SS_MUTEX_LOCK_WAIT): Likewise. (SS_MUTEX_UNLOCK): Likewise. (SS_MUTEX_TRYLOCK): Likewise. (SS_MUTEX_TRYLOCK_BLOCKED): Likewise. (ss_lock_trace_dump): Likewise. (ss_mutex_trace_add): Likewise. (ss_mutex_lock): To wait, call __ss_lock_wait. (ss_mutex_unlock): To wakeup a thread, use __ss_lock_wakeup. (ss_mutex_lock): New define. (ss_mutex_unlock): Likewise. (ss_mutex_trylock): Likewise. * Makefile.am (includehurd_HEADERS): Add lock.h. * headers.m4: Create link from ../include/hurd/lock.h to hurd/lock.h.