- if (extended) {
- id0=canobj_read_reg(chip,obj,iMSGID3);
- id1=canobj_read_reg(chip,obj,iMSGID2)<<8;
- id2=canobj_read_reg(chip,obj,iMSGID1)<<16;
- id3=canobj_read_reg(chip,obj,iMSGID0)<<24;
- message_id=(id0|id1|id2|id3)>>3;
- }
- else {
- id0=canobj_read_reg(chip,obj,iMSGID1);
- id1=canobj_read_reg(chip,obj,iMSGID0)<<8;
- message_id=(id0|id1)>>5;
- }
-
- can_spin_lock(&hardware_p->rtr_lock);
- rtr_search=hardware_p->rtr_queue;
- while (rtr_search != NULL) {
- if (rtr_search->id == message_id)
- break;
- rtr_search=rtr_search->next;
- }
- can_spin_unlock(&hardware_p->rtr_lock);
- if ((rtr_search!=NULL) && (rtr_search->id==message_id))
- i82527_irq_rtr_handler(chip, obj, rtr_search, message_id);
- else
- i82527_irq_read_handler(chip, obj, message_id);