xref: /minix/minix/include/ddekit/lock.h (revision 83133719)
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