RW_UNLOCK(D3) RW_UNLOCK(D3)
NAME
RW_UNLOCK - release a read/write lock
SYNOPSIS
#include <sys/types.h>
#include <sys/ksynch.h>
#include <sys/ddi.h>
void RW_UNLOCK(rwlock_t *lockp, pl_t pl);
Arguments
lockp Pointer to the read/write lock to be released.
pl The interrupt priority level to be set after
releasing the lock.
DESCRIPTION
The RW_UNLOCK function releases the read/write lock specified
by lockp and then sets the interrupt priority level in
accordance with the value specified by pl (if required by the
implementation). If the lock is held in read mode by multiple
contexts, RW_UNLOCK releases the lock in the calling context
but does not cause the lock to be released in any other
context.
Return Values
None
USAGE
See the description of the min_pl argument to RW_ALLOC(D3) for
a list of the valid values for pl.
If lock calls are not being nested or if the caller is
unlocking in the reverse order that locks were acquired, the
pl argument will typically be the value that was returned from
the corresponding call to acquire the lock. The caller may
need to specify a different value for pl if nested locks are
released in some order other than the reverse order of
acquisition, so as to ensure that the interrupt priority level
is kept sufficiently high to block interrupt code that might
attempt to acquire locks which are still held. Although
portable drivers must always specify an appropriate pl
argument, implementations which do not require that the
interrupt priority level be raised during lock acquisition may
choose to ignore this argument.
Copyright 1994 Novell, Inc. Page 1
RW_UNLOCK(D3) RW_UNLOCK(D3)
Level
Base or Interrupt.
Synchronization Constraints
Does not sleep.
Driver-defined basic locks, read/write locks, and sleep locks
may be held across calls to this function.
REFERENCES
RW_ALLOC(D3), RW_DEALLOC(D3), RW_RDLOCK(D3), RW_TRYRDLOCK(D3),
RW_TRYWRLOCK(D3), RW_WRLOCK(D3)
NOTICES
Portability
All processors
Applicability
ddi: 5, 5mp, 6, 6mp, 7, 7mp
Copyright 1994 Novell, Inc. Page 2