Changeset b1c57a8 in mainline for kernel/generic/include/synch


Ignore:
Timestamp:
2014-10-09T15:03:55Z (11 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
e367939c
Parents:
21799398 (diff), 207e8880 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge from lp:~adam-hraska+lp/helenos/rcu/.

Only merge from the feature branch and resolve all conflicts.

Location:
kernel/generic/include/synch
Files:
4 added
4 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/synch/condvar.h

    r21799398 rb1c57a8  
    3939#include <synch/waitq.h>
    4040#include <synch/mutex.h>
     41#include <synch/spinlock.h>
    4142#include <abi/synch.h>
    4243
     
    5051        _condvar_wait_timeout((cv), (mtx), (usec), SYNCH_FLAGS_NONE)
    5152
     53#ifdef CONFIG_SMP
     54#define _condvar_wait_timeout_spinlock(cv, lock, usec, flags) \
     55        _condvar_wait_timeout_spinlock_impl((cv), (lock), (usec), (flags))
     56#else
     57#define _condvar_wait_timeout_spinlock(cv, lock, usec, flags) \
     58        _condvar_wait_timeout_spinlock_impl((cv), NULL, (usec), (flags))
     59#endif
     60
    5261extern void condvar_initialize(condvar_t *cv);
    5362extern void condvar_signal(condvar_t *cv);
     
    5564extern int _condvar_wait_timeout(condvar_t *cv, mutex_t *mtx, uint32_t usec,
    5665    int flags);
     66extern int _condvar_wait_timeout_spinlock_impl(condvar_t *cv, spinlock_t *lock,
     67        uint32_t usec, int flags);
     68extern int _condvar_wait_timeout_irq_spinlock(condvar_t *cv,
     69        irq_spinlock_t *irq_lock, uint32_t usec, int flags);
     70
    5771
    5872#endif
  • kernel/generic/include/synch/futex.h

    r21799398 rb1c57a8  
    5555extern sysarg_t sys_futex_wakeup(uintptr_t);
    5656
    57 extern void futex_cleanup(void);
     57extern void futex_task_cleanup(void);
     58extern void futex_task_init(struct task *);
     59extern void futex_task_deinit(struct task *);
    5860
    5961#endif
  • kernel/generic/include/synch/semaphore.h

    r21799398 rb1c57a8  
    5353        _semaphore_down_timeout((s), (usec), SYNCH_FLAGS_NONE)
    5454
     55#define semaphore_down_interruptable(s) \
     56        (ESYNCH_INTERRUPTED != _semaphore_down_timeout((s), SYNCH_NO_TIMEOUT, \
     57                SYNCH_FLAGS_INTERRUPTIBLE))
     58
    5559extern void semaphore_initialize(semaphore_t *, int);
    5660extern int _semaphore_down_timeout(semaphore_t *, uint32_t, unsigned int);
  • kernel/generic/include/synch/spinlock.h

    r21799398 rb1c57a8  
    4545#ifdef CONFIG_SMP
    4646
    47 typedef struct {
     47typedef struct spinlock {
    4848        atomic_t val;
    4949       
     
    163163/* On UP systems, spinlocks are effectively left out. */
    164164
     165/* Allow the use of spinlock_t as an incomplete type. */
     166typedef struct spinlock spinlock_t;
     167
    165168#define SPINLOCK_DECLARE(name)
    166169#define SPINLOCK_EXTERN(name)
     
    177180
    178181#define spinlock_lock(lock)     preemption_disable()
    179 #define spinlock_trylock(lock)  (preemption_disable(), 1)
     182#define spinlock_trylock(lock)  ({ preemption_disable(); 1; })
    180183#define spinlock_unlock(lock)   preemption_enable()
    181184#define spinlock_locked(lock)   1
Note: See TracChangeset for help on using the changeset viewer.