| author | Nicholas Hastings <skamonkey@gmail.com> |
| Wed Aug 14 14:20:57 2013 -0400 (2013-08-14) | |
| changeset 4008 | 490b01aa0683 |
| parent 3075 | a86a7061c44c |
| permissions | -rw-r--r-- |
| dvander@3075 | 1 |
/* vim: set ts=4 sw=4 tw=99 et: */ |
| dvander@3075 | 2 |
#ifndef _INCLUDE_SPCOMP_SYMHASH_H_ |
| dvander@3075 | 3 |
#define _INCLUDE_SPCOMP_SYMHASH_H_ |
| dvander@3075 | 4 |
|
| dvander@3075 | 5 |
SC_FUNC uint32_t NameHash(const char *str); |
| dvander@3075 | 6 |
|
| dvander@3075 | 7 |
typedef struct HashEntry { |
| dvander@3075 | 8 |
symbol *sym; |
| dvander@3075 | 9 |
struct HashEntry *next; |
| dvander@3075 | 10 |
} HashEntry; |
| dvander@3075 | 11 |
|
| dvander@3075 | 12 |
struct HashTable { |
| dvander@3075 | 13 |
uint32_t nbuckets; |
| dvander@3075 | 14 |
uint32_t nused; |
| dvander@3075 | 15 |
uint32_t bucketmask; |
| dvander@3075 | 16 |
HashEntry **buckets; |
| dvander@3075 | 17 |
}; |
| dvander@3075 | 18 |
|
| dvander@3075 | 19 |
SC_FUNC HashTable *NewHashTable(); |
| dvander@3075 | 20 |
SC_FUNC void DestroyHashTable(HashTable *ht); |
| dvander@3075 | 21 |
SC_FUNC void AddToHashTable(HashTable *ht, symbol *sym); |
| dvander@3075 | 22 |
SC_FUNC void RemoveFromHashTable(HashTable *ht, symbol *sym); |
| dvander@3075 | 23 |
SC_FUNC symbol *FindInHashTable(HashTable *ht, const char *name, int fnumber); |
| dvander@3075 | 24 |
SC_FUNC symbol *FindTaggedInHashTable(HashTable *ht, const char *name, int fnumber, |
| dvander@3075 | 25 |
int *cmptag); |
| dvander@3075 | 26 |
|
| dvander@3075 | 27 |
#endif /* _INCLUDE_SPCOMP_SYMHASH_H_ */ |
| dvander@3075 | 28 |