X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FHash.h;h=d16f9ae9c1ba0b2de18bdb1161a3ad9ac2a7e41a;hb=e4417dcd4679da9c6b18c02ff667199c572bed89;hp=ad55953da4c56198eb57cbe395f558371e355601;hpb=0065d5ab628975892cea1ec7303f968c3338cbe1;p=ghc-hetmet.git diff --git a/rts/Hash.h b/rts/Hash.h index ad55953..d16f9ae 100644 --- a/rts/Hash.h +++ b/rts/Hash.h @@ -32,9 +32,18 @@ HashTable * allocStrHashTable ( void ); #define removeStrHashTable(table, key, data) \ (removeHashTable(table, (StgWord)key, data)) +/* Hash tables for arbitrary keys */ +typedef int HashFunction(HashTable *table, StgWord key); +typedef int CompareFunction(StgWord key1, StgWord key2); +HashTable * allocHashTable_(HashFunction *hash, CompareFunction *compare); +int hashWord(HashTable *table, StgWord key); +int hashStr(HashTable *table, char *key); + /* Freeing hash tables */ void freeHashTable ( HashTable *table, void (*freeDataFun)(void *) ); +void exitHashTable ( void ); + #endif /* HASH_H */