X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=rculfhash-mm-chunk.c;h=a7a9b765b4c2c734389b869fc8c4f0ceb7e46281;hp=046977651b02b17e53177457c6a0baef187c8656;hb=92af1a30ca6a70945b167c31631c8598a626c71a;hpb=308d1cb3650b63d373e60eef0582d6e238b0d2d0 diff --git a/rculfhash-mm-chunk.c b/rculfhash-mm-chunk.c index 0469776..a7a9b76 100644 --- a/rculfhash-mm-chunk.c +++ b/rculfhash-mm-chunk.c @@ -75,28 +75,18 @@ static struct cds_lfht *alloc_cds_lfht(unsigned long min_nr_alloc_buckets, unsigned long max_nr_buckets) { - struct cds_lfht *ht; unsigned long nr_chunks, cds_lfht_size; min_nr_alloc_buckets = max(min_nr_alloc_buckets, - max_nr_buckets / MAX_CHUNK_TABLE); - + max_nr_buckets / MAX_CHUNK_TABLE); nr_chunks = max_nr_buckets / min_nr_alloc_buckets; cds_lfht_size = offsetof(struct cds_lfht, tbl_chunk) + - sizeof(ht->tbl_chunk[0]) * nr_chunks; + sizeof(struct cds_lfht_node *) * nr_chunks; cds_lfht_size = max(cds_lfht_size, sizeof(struct cds_lfht)); - ht = calloc(1, cds_lfht_size); - assert(ht); - - ht->mm = &cds_lfht_mm_chunk; - - ht->min_nr_alloc_buckets = min_nr_alloc_buckets; - ht->min_alloc_buckets_order = get_count_order_ulong(min_nr_alloc_buckets); - ht->max_nr_buckets = max_nr_buckets; - - ht->bucket_at = bucket_at; - return ht; + return __default_alloc_cds_lfht( + &cds_lfht_mm_chunk, cds_lfht_size, + min_nr_alloc_buckets, max_nr_buckets); } const struct cds_lfht_mm_type cds_lfht_mm_chunk = {