Performs a conditional atomic compare and exchange operation on a longword. The longword pointed to by source is read and compared with the longword old_value. If they are equal, the longword new_value is written into the longword pointed to by source. The read and write is performed atomically, with no intervening access to the same memory region. The function returns 1 if the write occurs, and 0 otherwise. Syntax: int __CMP_SWAP_LONG (volatile void *source, int old_value, int new_value);