rem: hash = (h_entry_t*)shm_malloc(hash_size*sizeof(h_entry_t));
add: hash = (pd_entry_t*)shm_malloc(hash_size*sizeof(pd_entry_t));
context: h_entry_t* init_hash(unsigned int hash_size){	int i, j;		/* initialized to NULL */	h_entry_t *hash = NULL; 	/* space for the hash is allocated in share memory */	hash = (h_entry_t*)shm_malloc(hash_size*sizeof(h_entry_t));	if(hash == NULL)		return NULL;	/* create mutex semaphores for each entry of the hash */	for(i=0; i<hash_size; i++)	{		if(lock_init(&hash[i].lock) == 0)			goto error;			hash[i].e = NULL;	}	    	/* the allocated hash */	return hash;error:	for(j=0; j<i; j++)		lock_destroy(&hash[j].lock);		shm_free(hash);		return NULL;}