- /* Initiate transmission in case we are not already transmitting */
- cli();
- if (!fifo->tx_in_progress) {
- fifo->tx_in_progress = 1;
- sti();
- if ( (ret = chip->chipspecops->pre_write_config(chip, obj,
- write_msg)) < 0) {
- CANMSG("Error initializing hardware for sending\n");
- return -EIO;
- }
- obj->ret = 0;
- if ( (ret = chip->chipspecops->send_msg(chip, obj,
- write_msg)) < 0) {
- CANMSG("Error sending message\n");
- return -EIO;
- }
- /* If O_SYNC is specified wait for successfull transmission */
-/* while (1) {
- cli();
- if ( (!file->f_flags & O_SYNC) ||
- (!fifo->tx_in_progress)) {
- sti();
- if (obj->ret < 0)
- return obj->ret;
- else
- return written;
- }
- cli();
- if (fifo->tx_in_progress) {
- can_timeout = interruptible_sleep_on_timeout(
- &fifo->writeq, CANTIMEOUT);
- }
- sti();
- if (signal_pending(current))
- return -EINTR;
- if (!can_timeout)
- return -EIO;
- } */
+ /* Get slot */
+ if(canque_get_inslot4id(qends, &qedge, &slot,
+ 0, msg_buff.id, 0) < 0) break;
+ slot->msg=msg_buff;
+ canque_put_inslot(qends, qedge, slot);
+ buffer += sizeof(struct canmsg_t);