rem: struct domain *dmp = domains, *opr;
add: struct domain *dmp = domains, *opr = NULL;
context: void remove_domain(int fam){	struct domain *dmp = domains, *opr;	for (; dmp; dmp = dmp->dom_next) {		if (dmp->dom_family == fam)			break;		opr = dmp;	}	if (!dmp || dmp->dom_protosw != NULL)		return;	acquire_sem_etc(dom_lock, 1, B_CAN_INTERRUPT, 0);	/* we're ok to remove it! */	if (opr)		opr->dom_next = dmp->dom_next;	else		domains = dmp->dom_next;	dmp->dom_next = NULL;	if (dmp->dom_family == AF_INET)		free(dmp);	release_sem_etc(dom_lock, 1, B_CAN_INTERRUPT);		return;}