UNLOCK(D3)

UNLOCK - release a basic lock

As shipped in IRIX 6.5.19. Unchanged since IRIX 6.5.

NAME
     UNLOCK - release a basic lock

SYNOPSIS
     #include <sys/types.h>
     #include <sys/ksynch.h>
     #include <sys/ddi.h>
     void UNLOCK(lock_t *lockp, int pl);

   Arguments
     lockp     Pointer to the basic lock to be released.

     pl        The interrupt priority level to be set after releasing the
               lock.  This argument should be the value returned by 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.

   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 should be the value that was returned from the corresponding
     call to acquire the lock.  The caller may need to specify a different
     returned value by other LOCK 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.

   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
     LOCK(D3), LOCK_ALLOC(D3), LOCK_DEALLOC(D3), TRYLOCK(D3)