| 518 | } |
| 519 | |
| 520 | int |
| 521 | rte_member_delete_ht(const struct rte_member_setsum *ss, const void *key, |
| 522 | member_set_t set_id) |
| 523 | { |
| 524 | int i; |
| 525 | uint32_t prim_bucket, sec_bucket; |
| 526 | member_sig_t tmp_sig; |
| 527 | struct member_ht_bucket *buckets = ss->table; |
| 528 | |
| 529 | get_buckets_index(ss, key, &prim_bucket, &sec_bucket, &tmp_sig); |
| 530 | |
| 531 | for (i = 0; i < RTE_MEMBER_BUCKET_ENTRIES; i++) { |
| 532 | if (tmp_sig == buckets[prim_bucket].sigs[i] && |
| 533 | set_id == buckets[prim_bucket].sets[i]) { |
| 534 | buckets[prim_bucket].sets[i] = RTE_MEMBER_NO_MATCH; |
| 535 | return 0; |
| 536 | } |
| 537 | } |
| 538 | |
| 539 | for (i = 0; i < RTE_MEMBER_BUCKET_ENTRIES; i++) { |
| 540 | if (tmp_sig == buckets[sec_bucket].sigs[i] && |
| 541 | set_id == buckets[sec_bucket].sets[i]) { |
| 542 | buckets[sec_bucket].sets[i] = RTE_MEMBER_NO_MATCH; |
| 543 | return 0; |
| 544 | } |
| 545 | } |
| 546 | return -ENOENT; |
| 547 | } |
| 548 | |
| 549 | void |
| 550 | rte_member_reset_ht(const struct rte_member_setsum *ss) |
no test coverage detected