-// Insert the <key>, if it doesn't already exist in <ll>
-uint64_t ll_add (list_t *ll, uint64_t key, uint64_t value) {
- TRACE("l3", "ll_add: inserting key %p value %p", key, value);
- node_t *pred;
- node_t *item = NULL;
+// Insert a new item if a matching key doesn't already exist in <ll>
+uint64_t ll_cas (list_t *ll, const void *key_data, uint32_t key_len, uint64_t expected_val, uint64_t new_val) {
+ assert(new_val != DOES_NOT_EXIST);
+ TRACE("l3", "ll_cas: inserting key %p val %p", key_data, new_val);