more change for PMC
[IRC.git] / Robust / src / Runtime / oooJava / hashRCR.h
1 #ifndef _HASHRCR_H_\r
2 #define _HASHRCR_H_\r
3 \r
4 #include <stdlib.h>\r
5 #include <stdio.h>\r
6 \r
7 #ifndef INTPTR\r
8 #ifdef BIT64\r
9 #define INTPTR long\r
10 #else\r
11 #define INTPTR int\r
12 #endif\r
13 #endif\r
14 \r
15 #define INLINE    inline __attribute__((always_inline))\r
16 \r
17 extern __thread unsigned int dc_c_size;\r
18 extern __thread unsigned INTPTR dc_c_mask;\r
19 extern __thread unsigned int dc_c_numelements;\r
20 extern __thread unsigned int dc_c_threshold;\r
21 extern __thread double dc_c_loadfactor;\r
22 \r
23 typedef struct dchashlistnode {\r
24   void * object;\r
25   int traverserState;\r
26   struct dchashlistnode *next;\r
27   struct dchashlistnode *lnext;\r
28 } dchashlistnode_t;\r
29 \r
30 #define NUMDCLIST 250\r
31 typedef struct dclist {\r
32   struct dchashlistnode array[NUMDCLIST];\r
33   int num;\r
34   struct dclist *next;\r
35 } dcliststruct_t;\r
36 \r
37 \r
38 void hashRCRCreate(unsigned int size, double loadfactor);\r
39 INLINE int hashRCRSearch(void * objectPtr, int traverserState);\r
40 unsigned int hashRCRResize(unsigned int newsize);\r
41 void hashRCRDelete();\r
42 void hashRCRreset();\r
43 #endif\r