_check_lock Subroutine

Purpose

Conditionally updates a single word variable atomically.

Library

Standard C library (libc.a)

Syntax

#include <sys/atomic_op.h>

boolean_t _check_lock ( word_addr,  old_val,  new_val)
atomic_p word_addr;
int old_val;
int new_val;

Parameters

Item Description
word_addr Specifies the address of the single word variable.
old_val Specifies the old value to be checked against the value of the single word variable.
new_val Specifies the new value to be conditionally assigned to the single word variable.

Description

The _check_lock subroutine performs an atomic (uninterruptible) sequence of operations. The compare_and_swap subroutine is similar, but does not issue synchronization instructions and therefore is inappropriate for updating lock words.

Note: The word variable must be aligned on a full word boundary.

Return Values

Item Description
FALSE Indicates that the single word variable was equal to the old value and has been set to the new value.
TRUE Indicates that the single word variable was not equal to the old value and has been left unchanged.