MCPcopy Create free account
hub / github.com/F-Stack/f-stack / try_insert

Function try_insert

dpdk/lib/member/rte_member_ht.c:332–354  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

330}
331
332static inline int
333try_insert(struct member_ht_bucket *buckets, uint32_t prim, uint32_t sec,
334 member_sig_t sig, member_set_t set_id)
335{
336 int i;
337 /* If not full then insert into one slot */
338 for (i = 0; i < RTE_MEMBER_BUCKET_ENTRIES; i++) {
339 if (buckets[prim].sets[i] == RTE_MEMBER_NO_MATCH) {
340 buckets[prim].sigs[i] = sig;
341 buckets[prim].sets[i] = set_id;
342 return 0;
343 }
344 }
345 /* If prim failed, we need to access second bucket */
346 for (i = 0; i < RTE_MEMBER_BUCKET_ENTRIES; i++) {
347 if (buckets[sec].sets[i] == RTE_MEMBER_NO_MATCH) {
348 buckets[sec].sigs[i] = sig;
349 buckets[sec].sets[i] = set_id;
350 return 0;
351 }
352 }
353 return -1;
354}
355
356static inline int
357try_update(struct member_ht_bucket *buckets, uint32_t prim, uint32_t sec,

Callers 1

rte_member_add_htFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected