rem: if(diff_usec(last_exi_idtime[nChn],idtime)==0) {
add: if(idtime==last_exi_idtime[nChn]) {
context: u32 EXI_GetID(u32 nChn,u32 nDev,u32 *nId){	s64 idtime = 0;	u32 ret,lck,reg,level;	exibus_priv *exi = &eximap[nChn];#ifdef _EXI_DEBUG	printf("EXI_GetID(exi_buscode = %d)\n",exi->exi_buscode);#endif	if(nChn<EXI_CHANNEL_2 && nDev==EXI_DEVICE_0) {		if(__exi_probe(nChn)==0) return 0;		if(exi->exi_idtime==last_exi_idtime[nChn]) {#ifdef _EXI_DEBUG			printf("EXI_GetID(exi_id = %d)\n",exi->exi_id);#endif			*nId = exi->exi_id;			return 1;		}#ifdef _EXI_DEBUG		printf("EXI_GetID(setting interrupts,%08x)\n",exi->flags);#endif		if(__exi_attach(nChn,NULL)==0) return 0;		idtime = last_exi_idtime[nChn];	}#ifdef _EXI_DEBUG	printf("EXI_GetID(interrupts set)\n");#endif	lck = 0;	if(nChn<EXI_CHANNEL_2 && nDev==EXI_DEVICE_0) lck = 1;	if(lck)  ret = EXI_Lock(nChn,nDev,__unlocked_handler);	else ret = EXI_Lock(nChn,nDev,NULL);	if(ret) {		if(EXI_Select(nChn,nDev,EXI_SPEED1MHZ)==1) {			reg = 0;			EXI_Imm(nChn,&reg,2,EXI_WRITE,NULL);			EXI_Sync(nChn);			EXI_Imm(nChn,nId,4,EXI_READ,NULL);			EXI_Sync(nChn);			EXI_Deselect(nChn);			EXI_Unlock(nChn);		}	}		ret = 0;	if(nChn<EXI_CHANNEL_2 && nDev==EXI_DEVICE_0) {		EXI_Detach(nChn);				_CPU_ISR_Disable(level);		if(diff_usec(last_exi_idtime[nChn],idtime)==0) {			exi->exi_idtime = idtime;			exi->exi_id = *nId;			ret = 1;		}		_CPU_ISR_Restore(level);#ifdef _EXI_DEBUG		printf("EXI_GetID(exi_id = %d)\n",exi->exi_id);#endif	}	return ret;}