SV_WAIT(D3)SV_WAIT(D3)NAMESV_WAIT - sleep on a synchronization variable
SYNOPSIS
#include <sys/ksynch.h>
#include <sys/ddi.h>
void SV_WAIT(sv_t *svp, void *lkp, int rv);
Arguments
svp Pointer to the synchronization variable on which to sleep.
lkp Pointer to either a basic lock or a mutual exclusion lock.
rv Return value from LOCK(D3), or 0.
DESCRIPTIONSV_WAIT causes the calling process to go to sleep waiting for a call to
SV_SIGNAL or SV_BROADCAST for the synchronization variable specified by
svp.
The lock specified by lkp must be held by the caller upon entry. The
lock is released after the process is queued on the synchronization
variable -- when the caller returns from SV_WAIT the lock is not held.
If lkp specifies a basic lock, rv must specify the return value from the
lock acquisition call; if lkp specifies a mutual exclusion (sleeping)
lock, rv must be 0.
Return Values
None
Level
Base only.
Synchronization Constraints
Will sleep.
Driver-defined basic locks (with the exception of the lock specified by
lkp) may not be held across calls to this function.
Driver-defined sleep locks may be held across calls to this function.
REFERENCESLOCK(D3), UNLOCK(D3), MUTEX_LOCK(D3), MUTEX_UNLOCK(D3), SV_ALLOC(D3),
SV_INIT(D3), SV_DEALLOC(D3), SV_DESTROY(D3), SV_WAIT_SIG(D3),
SV_SIGNAL(D3), SV_BROADCAST(D3).
Page 1