Lines Matching refs:update
138 static SLEntryPtr SLLocate(void *l, unsigned long key, SLEntryPtr *update) in SLLocate() argument
149 update[i] = entry; in SLLocate()
159 SLEntryPtr update[SL_MAX_LEVEL + 1]; in drmSLInsert() local
165 entry = SLLocate(list, key, update); in drmSLInsert()
173 update[level] = list->head; in drmSLInsert()
180 entry->forward[i] = update[i]->forward[i]; in drmSLInsert()
181 update[i]->forward[i] = entry; in drmSLInsert()
191 SLEntryPtr update[SL_MAX_LEVEL + 1]; in drmSLDelete() local
197 entry = SLLocate(list, key, update); in drmSLDelete()
203 if (update[i]->forward[i] == entry) in drmSLDelete()
204 update[i]->forward[i] = entry->forward[i]; in drmSLDelete()
218 SLEntryPtr update[SL_MAX_LEVEL + 1]; in drmSLLookup() local
221 entry = SLLocate(list, key, update); in drmSLLookup()
236 SLEntryPtr update[SL_MAX_LEVEL + 1] = {0}; in drmSLLookupNeighbors() local
239 SLLocate(list, key, update); in drmSLLookupNeighbors()
244 if (update[0]) { in drmSLLookupNeighbors()
245 *prev_key = update[0]->key; in drmSLLookupNeighbors()
246 *prev_value = update[0]->value; in drmSLLookupNeighbors()
248 if (update[0]->forward[0]) { in drmSLLookupNeighbors()
249 *next_key = update[0]->forward[0]->key; in drmSLLookupNeighbors()
250 *next_value = update[0]->forward[0]->value; in drmSLLookupNeighbors()