UNLOCK(D3) UNLOCK(D3)
NAME
UNLOCK - release a basic lock
SYNOPSIS
#include <sys/types.h>
#include <sys/ksynch.h>
#include <sys/ddi.h>
void UNLOCK(lock_t *lockp, pl_t pl);
Arguments
lockp Pointer to the basic lock to be released.
pl The interrupt priority level to be set after
releasing the lock.
DESCRIPTION
UNLOCK releases the basic lock specified by lockp and then
sets the interrupt priority level in accordance with the value
specified by pl (if required by the implementation).
Return Values
None
USAGE
See the description of the min_pl argument to LOCK_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.
Level
Base or Interrupt.
Copyright 1994 Novell, Inc. Page 1
UNLOCK(D3) UNLOCK(D3)
Synchronization Constraints
Does not sleep.
Driver-defined basic locks, read/write locks, and sleep locks
may be held across calls to this function.
REFERENCES
LOCK(D3), LOCK_ALLOC(D3), LOCK_DEALLOC(D3), TRYLOCK(D3)
NOTICES
Portability
All processors
Applicability
ddi: 5, 5mp, 6, 6mp, 7, 7mp
Copyright 1994 Novell, Inc. Page 2