- fix for ticker #4787
[oscam.git] / oscam-lock.h
blob36e06ddc07bad72c2b7b19795482ad3263c45d1a
1 #ifndef OSCAM_LOCK_H_
2 #define OSCAM_LOCK_H_
4 // Lock types
5 #define WRITELOCK 1
6 #define READLOCK 2
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);
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);
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)
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)
28 #endif