#ifndef DEC_TYPEDEFS_H
#include "typedefs.h"
#endif
#ifndef DEC_LISTS_H
#include "lists.h"
#endif



struct hash_entry_tp {
	bool		is_free; /* Ramias:for run-time checks of LINK/UNLINK */
	HASH_ENTRY *	next;
	void       *	reference;
	int		key;
	};

typedef struct hash_table_tp  hash_table;

struct hash_table_tp {
                       int           max_hash;
                       HASH_ENTRY ** table;
                     };



hash_table * create_hash_table(int max_hash);
void del_hash_entry(hash_table * hash_head,int key);
void add_hash_entry(hash_table * hash_head,int key,void * entry);
void * get_hash_entry(hash_table * hash_head,int key);
void clear_hash_table(hash_table * hash_head);
void delete_hash_table(hash_table * hash_head);