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 |