Subversion Repositories Kolibri OS

Rev

Rev 5192 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5192 Rev 6536
Line 1... Line -...
1
#ifndef __SYS_LOCK_H__
-
 
2
#define __SYS_LOCK_H__
-
 
Line 3... Line 1...
3
 
1
#ifndef _SYS_LOCK_H_
4
//#define  _LIBC  1
2
#define _SYS_LOCK_H_
Line 5... Line 3...
5
#define  NOT_IN_libc 1
3
 
6
 
4
#include 
7
#ifndef __USE_GNU
5
#include 
Line 8... Line 6...
8
#define __USE_GNU 1
6
#include 
Line 9... Line -...
9
#endif
-
 
10
 
7
 
Line 11... Line 8...
11
void __mutex_lock(volatile int *val);
8
typedef __gthread_mutex_t _LOCK_T;
12
 
-
 
13
typedef volatile int __libc_lock_t;
-
 
14
typedef struct { volatile int mutex; } __libc_lock_recursive_t;
-
 
15
 
-
 
16
#define __libc_lock_define(CLASS,NAME) \
-
 
17
  CLASS __libc_lock_t NAME;
-
 
18
#define __libc_rwlock_define(CLASS,NAME) \
-
 
Line 19... Line -...
19
  CLASS __libc_rwlock_t NAME;
-
 
20
#define __libc_lock_define_recursive(CLASS,NAME) \
9
 
Line 21... Line 10...
21
  CLASS __libc_lock_recursive_t NAME;
10
typedef __gthread_recursive_mutex_t _LOCK_RECURSIVE_T;
22
#define __rtld_lock_define_recursive(CLASS,NAME) \
11
 
Line 23... Line 12...
23
  CLASS __rtld_lock_recursive_t NAME;
12
#define _MUTEX_INITIALIZER { 0, -1 }
24
 
13
 
Line 25... Line 14...
25
typedef __libc_lock_t _LOCK_T;
14
#define _MUTEX_RECURSIVE_INITIALIZER { 0,-1,0,0 }
-
 
15
 
26
typedef __libc_lock_recursive_t _LOCK_RECURSIVE_T;
16
#define __LOCK_INIT(_qualifier, _designator) \
-
 
17
    _qualifier _LOCK_T _designator = _MUTEX_INITIALIZER
Line 27... Line 18...
27
 
18
 
28
#define __LOCK_INIT(class,lock) \
-
 
-
 
19
#define __LOCK_INIT_RECURSIVE(_qualifier, _designator) \
Line 29... Line 20...
29
  __libc_lock_define_initialized(class, lock)
20
    _qualifier _LOCK_RECURSIVE_T _designator = _MUTEX_RECURSIVE_INITIALIZER
-
 
21
 
-
 
22
static inline int __libc_lock_acquire(_LOCK_T *lock)
-
 
23
{
Line 30... Line -...
30
 
-
 
31
#define __LOCK_INIT_RECURSIVE(class, lock) \
-
 
32
  __libc_lock_define_initialized_recursive(class, lock)
-
 
33
 
-
 
34
#define __libc_lock_define_initialized(CLASS,NAME) \
-
 
35
  CLASS __libc_lock_t NAME;
-
 
36
 
-
 
37
#define __libc_lock_define_initialized_recursive(CLASS,NAME) \
-
 
38
  CLASS __libc_lock_recursive_t NAME = _LIBC_LOCK_RECURSIVE_INITIALIZER;
24
    if(lock->handle == -1)
39
 
-
 
40
#define _LIBC_LOCK_RECURSIVE_INITIALIZER {0}
-
 
-
 
25
        __gthread_mutex_init_function(lock);
Line -... Line 26...
-
 
26
 
-
 
27
    return __gthread_mutex_lock(lock);
Line 41... Line 28...
41
 
28
}
42
#define __lock_init(__lock) __libc_lock_init(__lock)
29
 
-
 
30
static inline int __libc_lock_acquire_recursive(_LOCK_RECURSIVE_T *lock)
-
 
31
{
Line 43... Line -...
43
#define __lock_init_recursive(__lock) __libc_lock_init_recursive(__lock)
-
 
44
#define __lock_acquire(__lock) __libc_lock_lock(__lock)
-
 
45
#define __lock_acquire_recursive(__lock) __libc_lock_lock_recursive(__lock)
-
 
46
#define __lock_release(__lock) __libc_lock_unlock(__lock)
-
 
47
#define __lock_release_recursive(__lock) __libc_lock_unlock_recursive(__lock)
-
 
48
#define __lock_try_acquire(__lock) __libc_lock_trylock(__lock)
-
 
49
#define __lock_try_acquire_recursive(__lock) \
-
 
50
	__libc_lock_trylock_recursive(__lock)
-
 
51
#define __lock_close(__lock) __libc_lock_fini(__lock)
-
 
52
#define __lock_close_recursive(__lock) __libc_lock_fini_recursive(__lock)
-
 
53
 
-
 
54
 
32
    if(lock->handle == -1)