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) |