77cccac8cd
This is part of a broader change to make header files better represent the dependencies between one another (see https://github.com/jemalloc/jemalloc/issues/533). It breaks up component headers into smaller parts that can be made to have a simpler dependency graph. For the autogenerated headers (smoothstep.h and size_classes.h), no splitting was necessary, so I didn't add support to emit multiple headers.
42 lines
837 B
C
42 lines
837 B
C
#ifndef JEMALLOC_INTERNAL_CKH_STRUCTS_H
|
|
#define JEMALLOC_INTERNAL_CKH_STRUCTS_H
|
|
|
|
/* Hash table cell. */
|
|
struct ckhc_s {
|
|
const void *key;
|
|
const void *data;
|
|
};
|
|
|
|
struct ckh_s {
|
|
#ifdef CKH_COUNT
|
|
/* Counters used to get an idea of performance. */
|
|
uint64_t ngrows;
|
|
uint64_t nshrinks;
|
|
uint64_t nshrinkfails;
|
|
uint64_t ninserts;
|
|
uint64_t nrelocs;
|
|
#endif
|
|
|
|
/* Used for pseudo-random number generation. */
|
|
uint64_t prng_state;
|
|
|
|
/* Total number of items. */
|
|
size_t count;
|
|
|
|
/*
|
|
* Minimum and current number of hash table buckets. There are
|
|
* 2^LG_CKH_BUCKET_CELLS cells per bucket.
|
|
*/
|
|
unsigned lg_minbuckets;
|
|
unsigned lg_curbuckets;
|
|
|
|
/* Hash and comparison functions. */
|
|
ckh_hash_t *hash;
|
|
ckh_keycomp_t *keycomp;
|
|
|
|
/* Hash table with 2^lg_curbuckets buckets. */
|
|
ckhc_t *tab;
|
|
};
|
|
|
|
#endif /* JEMALLOC_INTERNAL_CKH_STRUCTS_H */
|