1ad811070SMark Rutlandcat <<EOF 2ad811070SMark Rutland/** 3ad811070SMark Rutland * ${class}${atomicname}() - atomic compare and exchange with ${desc_order} ordering 4ad811070SMark Rutland * @v: pointer to ${atomic}_t 5ad811070SMark Rutland * @old: ${int} value to compare with 6ad811070SMark Rutland * @new: ${int} value to assign 7ad811070SMark Rutland * 8ad811070SMark Rutland * If (@v == @old), atomically updates @v to @new with ${desc_order} ordering. 9*6dfee110SMark Rutland * Otherwise, @v is not modified and relaxed ordering is provided. 10ad811070SMark Rutland * 11ad811070SMark Rutland * ${desc_noinstr} 12ad811070SMark Rutland * 13ad811070SMark Rutland * Return: The original value of @v. 14ad811070SMark Rutland */ 15ad811070SMark RutlandEOF 16