xref: /aosp_15_r20/external/libdrm/xf86drmHash.h (revision 7688df22e49036ff52a766b7101da3a49edadb8c)
1*7688df22SAndroid Build Coastguard Worker /*
2*7688df22SAndroid Build Coastguard Worker  * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
3*7688df22SAndroid Build Coastguard Worker  * All Rights Reserved.
4*7688df22SAndroid Build Coastguard Worker  *
5*7688df22SAndroid Build Coastguard Worker  * Permission is hereby granted, free of charge, to any person obtaining a
6*7688df22SAndroid Build Coastguard Worker  * copy of this software and associated documentation files (the "Software"),
7*7688df22SAndroid Build Coastguard Worker  * to deal in the Software without restriction, including without limitation
8*7688df22SAndroid Build Coastguard Worker  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9*7688df22SAndroid Build Coastguard Worker  * and/or sell copies of the Software, and to permit persons to whom the
10*7688df22SAndroid Build Coastguard Worker  * Software is furnished to do so, subject to the following conditions:
11*7688df22SAndroid Build Coastguard Worker  *
12*7688df22SAndroid Build Coastguard Worker  * The above copyright notice and this permission notice (including the next
13*7688df22SAndroid Build Coastguard Worker  * paragraph) shall be included in all copies or substantial portions of the
14*7688df22SAndroid Build Coastguard Worker  * Software.
15*7688df22SAndroid Build Coastguard Worker  *
16*7688df22SAndroid Build Coastguard Worker  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17*7688df22SAndroid Build Coastguard Worker  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18*7688df22SAndroid Build Coastguard Worker  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
19*7688df22SAndroid Build Coastguard Worker  * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20*7688df22SAndroid Build Coastguard Worker  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21*7688df22SAndroid Build Coastguard Worker  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22*7688df22SAndroid Build Coastguard Worker  * DEALINGS IN THE SOFTWARE.
23*7688df22SAndroid Build Coastguard Worker  *
24*7688df22SAndroid Build Coastguard Worker  * Authors: Rickard E. (Rik) Faith <[email protected]>
25*7688df22SAndroid Build Coastguard Worker  */
26*7688df22SAndroid Build Coastguard Worker 
27*7688df22SAndroid Build Coastguard Worker #define HASH_SIZE  512		/* Good for about 100 entries */
28*7688df22SAndroid Build Coastguard Worker 				/* If you change this value, you probably
29*7688df22SAndroid Build Coastguard Worker                                    have to change the HashHash hashing
30*7688df22SAndroid Build Coastguard Worker                                    function! */
31*7688df22SAndroid Build Coastguard Worker 
32*7688df22SAndroid Build Coastguard Worker typedef struct HashBucket {
33*7688df22SAndroid Build Coastguard Worker     unsigned long     key;
34*7688df22SAndroid Build Coastguard Worker     void              *value;
35*7688df22SAndroid Build Coastguard Worker     struct HashBucket *next;
36*7688df22SAndroid Build Coastguard Worker } HashBucket, *HashBucketPtr;
37*7688df22SAndroid Build Coastguard Worker 
38*7688df22SAndroid Build Coastguard Worker typedef struct HashTable {
39*7688df22SAndroid Build Coastguard Worker     unsigned long    magic;
40*7688df22SAndroid Build Coastguard Worker     unsigned long    entries;
41*7688df22SAndroid Build Coastguard Worker     unsigned long    hits;	/* At top of linked list */
42*7688df22SAndroid Build Coastguard Worker     unsigned long    partials;	/* Not at top of linked list */
43*7688df22SAndroid Build Coastguard Worker     unsigned long    misses;	/* Not in table */
44*7688df22SAndroid Build Coastguard Worker     HashBucketPtr    buckets[HASH_SIZE];
45*7688df22SAndroid Build Coastguard Worker     int              p0;
46*7688df22SAndroid Build Coastguard Worker     HashBucketPtr    p1;
47*7688df22SAndroid Build Coastguard Worker } HashTable, *HashTablePtr;
48