X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lincan.git/blobdiff_plain/a4c9ead4b64bd4de307f375c2ff313a7a07a06e0..258e4a224adc90317b3d11622a3076ba6d61b0d2:/lincan/src/virtual.c diff --git a/lincan/src/virtual.c b/lincan/src/virtual.c index d51defe..67fc276 100644 --- a/lincan/src/virtual.c +++ b/lincan/src/virtual.c @@ -280,9 +280,9 @@ void virtual_irq_write_handler(struct chip_t *chip, struct msgobj_t *obj) * message queues. * File: src/virtual.c */ -can_irqreturn_t virtual_irq_handler(int irq, void *dev_id, struct pt_regs *regs) +int virtual_irq_handler(int irq, struct chip_t *chip) { - return CAN_IRQ_HANDLED; + return CANCHIP_IRQ_HANDLED; } @@ -320,6 +320,9 @@ void virtual_do_tx_timeout(unsigned long data) struct msgobj_t *obj=(struct msgobj_t *)data; if(obj->tx_slot) { + /* fill CAN message timestamp */ + can_filltimestamp(&obj->tx_slot->msg.timestamp); + /* Deliver message to edges */ canque_filter_msg2edges(obj->qends, &obj->tx_slot->msg); /* Free transmitted slot */ @@ -359,6 +362,9 @@ int virtual_wakeup_tx(struct chip_t *chip, struct msgobj_t *obj) /* Ensure delivery of all ready slots */ while((cmd=canque_test_outslot(obj->qends, &qedge, &slot)) >= 0){ if(cmd==0) { + /* fill CAN message timestamp */ + can_filltimestamp(&slot->msg.timestamp); + canque_filter_msg2edges(obj->qends, &slot->msg); DEBUGMSG("virtual: direct delivery\n"); }