1 | #ifndef OSCAM_LOCK_H_
|
---|
2 | #define OSCAM_LOCK_H_
|
---|
3 |
|
---|
4 | // Lock types
|
---|
5 | #define WRITELOCK 1
|
---|
6 | #define READLOCK 2
|
---|
7 |
|
---|
8 | void cs_lock_create(const char *n, CS_MUTEX_LOCK *l, const char *name, uint32_t timeout_ms);
|
---|
9 | void cs_lock_destroy(const char *n, CS_MUTEX_LOCK *l);
|
---|
10 | void cs_rwlock_int(const char *n, CS_MUTEX_LOCK *l, int8_t type);
|
---|
11 | void cs_rwunlock_int(const char *n, CS_MUTEX_LOCK *l, int8_t type);
|
---|
12 | int8_t cs_try_rwlock_int(const char *n, CS_MUTEX_LOCK *l, int8_t type);
|
---|
13 |
|
---|
14 | void cs_lock_create_nolog(const char *n, CS_MUTEX_LOCK *l, const char *name, uint32_t timeout_ms);
|
---|
15 | void cs_rwlock_int_nolog(const char *n, CS_MUTEX_LOCK *l, int8_t type);
|
---|
16 | void cs_rwunlock_int_nolog(const char *n, CS_MUTEX_LOCK *l, int8_t type);
|
---|
17 |
|
---|
18 | #define cs_writelock(n, l) cs_rwlock_int(n, l, WRITELOCK)
|
---|
19 | #define cs_readlock(n, l) cs_rwlock_int(n, l, READLOCK)
|
---|
20 | #define cs_writeunlock(n, l) cs_rwunlock_int(n, l, WRITELOCK)
|
---|
21 | #define cs_readunlock(n, l) cs_rwunlock_int(n, l, READLOCK)
|
---|
22 | #define cs_try_writelock(n, l) cs_try_rwlock_int(n, l, WRITELOCK)
|
---|
23 | #define cs_try_readlock(n, l) cs_try_rwlock_int(n, l, READLOCK)
|
---|
24 |
|
---|
25 | #define cs_writelock_nolog(n, l) cs_rwlock_int_nolog(n, l, WRITELOCK)
|
---|
26 | #define cs_writeunlock_nolog(n, l) cs_rwunlock_int_nolog(n, l, WRITELOCK)
|
---|
27 |
|
---|
28 | #endif
|
---|