Rev 2089 | Rev 3104 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 2089 | Rev 2112 | ||
|---|---|---|---|
| Line 51... | Line 51... | ||
| 51 | * @param max_keys Maximal number of keys needed to identify an item. |
51 | * @param max_keys Maximal number of keys needed to identify an item. |
| 52 | * @param op Hash table operations structure. |
52 | * @param op Hash table operations structure. |
| 53 | */ |
53 | */ |
| 54 | void hash_table_create(hash_table_t *h, count_t m, count_t max_keys, hash_table_operations_t *op) |
54 | void hash_table_create(hash_table_t *h, count_t m, count_t max_keys, hash_table_operations_t *op) |
| 55 | { |
55 | { |
| 56 | int i; |
56 | index_t i; |
| 57 | 57 | ||
| 58 | ASSERT(h); |
58 | ASSERT(h); |
| 59 | ASSERT(op && op->hash && op->compare); |
59 | ASSERT(op && op->hash && op->compare); |
| 60 | ASSERT(max_keys > 0); |
60 | ASSERT(max_keys > 0); |
| 61 | 61 | ||
| 62 | h->entry = malloc(m * sizeof(link_t), 0); |
62 | h->entry = (link_t *) malloc(m * sizeof(link_t), 0); |
| 63 | if (!h->entry) { |
63 | if (!h->entry) { |
| 64 | panic("cannot allocate memory for hash table\n"); |
64 | panic("cannot allocate memory for hash table\n"); |
| 65 | } |
65 | } |
| 66 | memsetb((uintptr_t) h->entry, m * sizeof(link_t), 0); |
66 | memsetb((uintptr_t) h->entry, m * sizeof(link_t), 0); |
| 67 | 67 | ||