|
Coda Distributed File System
|
#include <stdio.h>#include <stdlib.h>#include <assert.h>#include <lwp/lwp.h>#include <lwp/lock.h>#include "lwp.private.h"
Functions | |
| void | Lock_Init (struct Lock *lock) |
| void | Lock_Obtain (struct Lock *lock, int how) |
| void | ObtainDualLock (struct Lock *lock_1, enum lock_how how_1, struct Lock *lock_2, enum lock_how how_2) |
| void | ReleaseDualLock (struct Lock *lock_1, enum lock_how how_1, struct Lock *lock_2, enum lock_how how_2) |
| void | Lock_ReleaseR (struct Lock *lock) |
| void | Lock_ReleaseW (struct Lock *lock) |
| void | ObtainReadLock (struct Lock *lock) |
| void | ObtainWriteLock (struct Lock *lock) |
| void | ObtainSharedLock (struct Lock *lock) |
| void | ReleaseReadLock (struct Lock *lock) |
| void | ReleaseWriteLock (struct Lock *lock) |
| void | ReleaseSharedLock (struct Lock *lock) |
| int | CheckLock (struct Lock *lock) |
| int | WriteLocked (struct Lock *lock) |
| int CheckLock | ( | struct Lock * | lock | ) |
Check the status of the lock
| lock | pointer to the lock |
| void Lock_Init | ( | struct Lock * | lock | ) |
Initialize the Lock structure
| lock | pointer to the lock |
| void Lock_Obtain | ( | struct Lock * | lock, |
| int | how | ||
| ) |
Obtain the lock
| lock | pointer to the lock |
| how | locking type |
| void Lock_ReleaseR | ( | struct Lock * | lock | ) |
Release lock obtained for reading
| lock | pointer to the lock |
| void Lock_ReleaseW | ( | struct Lock * | lock | ) |
Release lock obtained for writing
| lock | pointer to the lock |
| void ObtainDualLock | ( | struct Lock * | lock_1, |
| enum lock_how | how_1, | ||
| struct Lock * | lock_2, | ||
| enum lock_how | how_2 | ||
| ) |
Safely obtain two simultaneous locks
| lock_1 | pointer to the first lock |
| how_1 | first lock's type |
| lock_2 | pointer to the second lock |
| how_2 | second lock's type |
| void ObtainReadLock | ( | struct Lock * | lock | ) |
Obtain the lock for reading
| lock | pointer to the lock |
| void ObtainSharedLock | ( | struct Lock * | lock | ) |
Obtain the lock as shared lock
| lock | pointer to the lock |
| void ObtainWriteLock | ( | struct Lock * | lock | ) |
Obtain the lock for writing
| lock | pointer to the lock |
| void ReleaseDualLock | ( | struct Lock * | lock_1, |
| enum lock_how | how_1, | ||
| struct Lock * | lock_2, | ||
| enum lock_how | how_2 | ||
| ) |
Safely release two simultaneous locks
| lock_1 | pointer to the first lock |
| how_1 | first lock's type |
| lock_2 | pointer to the second lock |
| how_2 | second lock's type |
| void ReleaseReadLock | ( | struct Lock * | lock | ) |
Release the lock obtained for reading
| lock | pointer to the lock |
| void ReleaseSharedLock | ( | struct Lock * | lock | ) |
Release the lock obtained as a shared lock
| lock | pointer to the lock |
| void ReleaseWriteLock | ( | struct Lock * | lock | ) |
Release the lock obtained for writing
| lock | pointer to the lock |
| int WriteLocked | ( | struct Lock * | lock | ) |
Check if the lock was acquired for reading
| lock | pointer to the lock |