rem: int new_pdomain(str* _n, int _s, pdomain_t** _d)
add: int new_pdomain(str* _n, int _s, pdomain_t** _d, register_watcher_t _r, unregister_watcher_t _u)
context: int new_pdomain(str* _n, int _s, pdomain_t** _d){	int i;		*_d = (pdomain_t*)shm_malloc(sizeof(pdomain_t));	if (!(*_d)) {		paerrno = PA_NO_MEMORY;		LOG(L_ERR, "new_pdomain(): No memory left\n");		return -1;	}	memset(*_d, 0, sizeof(pdomain_t));		(*_d)->table = (hslot_t*)shm_malloc(sizeof(hslot_t) * _s);	if (!(*_d)->table) {		paerrno = PA_NO_MEMORY;		LOG(L_ERR, "new_pdomain(): No memory left 2\n");		shm_free(*_d);		return -2;	}	(*_d)->name = _n;		for(i = 0; i < _s; i++) {		init_slot(*_d, &((*_d)->table[i]));	}	(*_d)->size = _s;	init_lock((*_d)->lock);	(*_d)->users = 0;	(*_d)->expired = 0;		return 0;}