Subversion Repositories HelenOS-historic

Rev

Rev 1380 | Rev 1702 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1380 Rev 1502
Line 37... Line 37...
37
struct mutex {
37
struct mutex {
38
    semaphore_t sem;
38
    semaphore_t sem;
39
};
39
};
40
 
40
 
41
#define mutex_lock(mtx) \
41
#define mutex_lock(mtx) \
42
    _mutex_lock_timeout((mtx),SYNCH_NO_TIMEOUT,SYNCH_BLOCKING)
42
    _mutex_lock_timeout((mtx),SYNCH_NO_TIMEOUT,SYNCH_FLAGS_NONE)
43
#define mutex_trylock(mtx) \
43
#define mutex_trylock(mtx) \
44
    _mutex_lock_timeout((mtx),SYNCH_NO_TIMEOUT,SYNCH_NON_BLOCKING)
44
    _mutex_lock_timeout((mtx),SYNCH_NO_TIMEOUT,SYNCH_FLAGS_NON_BLOCKING)
45
#define mutex_lock_timeout(mtx,usec) \
45
#define mutex_lock_timeout(mtx,usec) \
46
    _mutex_lock_timeout((mtx),(usec),SYNCH_NON_BLOCKING)
46
    _mutex_lock_timeout((mtx),(usec),SYNCH_FLAGS_NON_BLOCKING)
47
#define mutex_lock_active(mtx) \
47
#define mutex_lock_active(mtx) \
48
    while (mutex_trylock((mtx)) != ESYNCH_OK_ATOMIC)
48
    while (mutex_trylock((mtx)) != ESYNCH_OK_ATOMIC)
49
 
49
 
50
extern void mutex_initialize(mutex_t *mtx);
50
extern void mutex_initialize(mutex_t *mtx);
51
extern int _mutex_lock_timeout(mutex_t *mtx, __u32 usec, int trylock);
51
extern int _mutex_lock_timeout(mutex_t *mtx, __u32 usec, int flags);
52
extern void mutex_unlock(mutex_t *mtx);
52
extern void mutex_unlock(mutex_t *mtx);
53
 
53
 
54
#endif
54
#endif