1 #ifndef _DDEKIT_LOCK_H 2 #define _DDEKIT_LOCK_H 3 4 #include <ddekit/ddekit.h> 5 6 struct ddekit_lock; 7 typedef struct ddekit_lock *ddekit_lock_t; 8 9 /* Initialize a DDEKit unlocked lock. */ 10 #define ddekit_lock_init ddekit_lock_init_unlocked 11 12 /* Initialize a DDEKit unlocked lock. */ 13 void ddekit_lock_init_unlocked(ddekit_lock_t *mtx); 14 15 /* Initialize a DDEKit locked lock. */ 16 void ddekit_lock_init_locked(ddekit_lock_t *mtx); 17 18 /* Uninitialize a DDEKit lock. */ 19 void ddekit_lock_deinit(ddekit_lock_t *mtx); 20 21 /* Acquire a lock. */ 22 void ddekit_lock_lock(ddekit_lock_t *mtx); 23 24 /* Acquire a lock, non-blocking. */ 25 int ddekit_lock_try_lock(ddekit_lock_t *mtx); 26 27 /* Unlock function. */ 28 void ddekit_lock_unlock(ddekit_lock_t *mtx); 29 30 /* Get lock owner. */ 31 int ddekit_lock_owner(ddekit_lock_t *mtx); 32 33 #endif 34