root / lab4 / .minix-src / include / ddekit / lock.h @ 14
History | View | Annotate | Download (788 Bytes)
1 | 13 | up20180614 | #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 |