1 | /*
|
---|
2 | * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved.
|
---|
3 | *
|
---|
4 | * Licensed under the Apache License 2.0 (the "License"). You may not use
|
---|
5 | * this file except in compliance with the License. You can obtain a copy
|
---|
6 | * in the file LICENSE in the source distribution or at
|
---|
7 | * https://www.openssl.org/source/license.html
|
---|
8 | */
|
---|
9 | #include <openssl/crypto.h>
|
---|
10 |
|
---|
11 | #include "internal/tsan_assist.h"
|
---|
12 |
|
---|
13 | struct lhash_node_st {
|
---|
14 | void *data;
|
---|
15 | struct lhash_node_st *next;
|
---|
16 | unsigned long hash;
|
---|
17 | };
|
---|
18 |
|
---|
19 | struct lhash_st {
|
---|
20 | OPENSSL_LH_NODE **b;
|
---|
21 | OPENSSL_LH_COMPFUNC comp;
|
---|
22 | OPENSSL_LH_HASHFUNC hash;
|
---|
23 | unsigned int num_nodes;
|
---|
24 | unsigned int num_alloc_nodes;
|
---|
25 | unsigned int p;
|
---|
26 | unsigned int pmax;
|
---|
27 | unsigned long up_load; /* load times 256 */
|
---|
28 | unsigned long down_load; /* load times 256 */
|
---|
29 | unsigned long num_items;
|
---|
30 | unsigned long num_expands;
|
---|
31 | unsigned long num_expand_reallocs;
|
---|
32 | unsigned long num_contracts;
|
---|
33 | unsigned long num_contract_reallocs;
|
---|
34 | TSAN_QUALIFIER unsigned long num_hash_calls;
|
---|
35 | TSAN_QUALIFIER unsigned long num_comp_calls;
|
---|
36 | unsigned long num_insert;
|
---|
37 | unsigned long num_replace;
|
---|
38 | unsigned long num_delete;
|
---|
39 | unsigned long num_no_delete;
|
---|
40 | TSAN_QUALIFIER unsigned long num_retrieve;
|
---|
41 | TSAN_QUALIFIER unsigned long num_retrieve_miss;
|
---|
42 | TSAN_QUALIFIER unsigned long num_hash_comps;
|
---|
43 | int error;
|
---|
44 | };
|
---|