Lines Matching refs:frame

149                                  const qemu_can_frame *frame)  in can_sja_accept_filter()  argument
156 if (frame->can_id & QEMU_CAN_EFF_FLAG) { /* EFF */ in can_sja_accept_filter()
160 if (!can_bus_filter_match(&filter, frame->can_id)) { in can_sja_accept_filter()
167 if (!can_bus_filter_match(&filter, frame->can_id)) { in can_sja_accept_filter()
171 if (frame->can_id & QEMU_CAN_RTR_FLAG) { /* RTR */ in can_sja_accept_filter()
175 if (frame->can_dlc == 0) { in can_sja_accept_filter()
179 if ((frame->data[0] & ~(s->code_mask[6])) != in can_sja_accept_filter()
184 if (frame->can_dlc < 2) { in can_sja_accept_filter()
188 if ((frame->data[1] & ~(s->code_mask[7])) == in can_sja_accept_filter()
196 if (frame->can_id & QEMU_CAN_EFF_FLAG) { /* EFF */ in can_sja_accept_filter()
200 if (can_bus_filter_match(&filter, frame->can_id)) { in can_sja_accept_filter()
207 if (can_bus_filter_match(&filter, frame->can_id)) { in can_sja_accept_filter()
216 if (can_bus_filter_match(&filter, frame->can_id)) { in can_sja_accept_filter()
226 if ((frame->data[0] & mask) == in can_sja_accept_filter()
235 if (can_bus_filter_match(&filter, frame->can_id)) { in can_sja_accept_filter()
268 static void buff2frame_pel(const uint8_t *buff, qemu_can_frame *frame) in buff2frame_pel() argument
272 frame->flags = 0; in buff2frame_pel()
273 frame->can_id = 0; in buff2frame_pel()
275 frame->can_id = QEMU_CAN_RTR_FLAG; in buff2frame_pel()
277 frame->can_dlc = buff[0] & 0x0f; in buff2frame_pel()
279 if (frame->can_dlc > 8) { in buff2frame_pel()
280 frame->can_dlc = 8; in buff2frame_pel()
284 frame->can_id |= QEMU_CAN_EFF_FLAG; in buff2frame_pel()
285 frame->can_id |= buff[1] << 21; /* ID.28~ID.21 */ in buff2frame_pel()
286 frame->can_id |= buff[2] << 13; /* ID.20~ID.13 */ in buff2frame_pel()
287 frame->can_id |= buff[3] << 5; in buff2frame_pel()
288 frame->can_id |= buff[4] >> 3; in buff2frame_pel()
289 for (i = 0; i < frame->can_dlc; i++) { in buff2frame_pel()
290 frame->data[i] = buff[5 + i]; in buff2frame_pel()
293 frame->data[i] = 0; in buff2frame_pel()
296 frame->can_id |= buff[1] << 3; in buff2frame_pel()
297 frame->can_id |= buff[2] >> 5; in buff2frame_pel()
298 for (i = 0; i < frame->can_dlc; i++) { in buff2frame_pel()
299 frame->data[i] = buff[3 + i]; in buff2frame_pel()
302 frame->data[i] = 0; in buff2frame_pel()
308 static void buff2frame_bas(const uint8_t *buff, qemu_can_frame *frame) in buff2frame_bas() argument
312 frame->flags = 0; in buff2frame_bas()
313 frame->can_id = ((buff[0] << 3) & (0xff << 3)) + ((buff[1] >> 5) & 0x07); in buff2frame_bas()
315 frame->can_id = QEMU_CAN_RTR_FLAG; in buff2frame_bas()
317 frame->can_dlc = buff[1] & 0x0f; in buff2frame_bas()
319 if (frame->can_dlc > 8) { in buff2frame_bas()
320 frame->can_dlc = 8; in buff2frame_bas()
323 for (i = 0; i < frame->can_dlc; i++) { in buff2frame_bas()
324 frame->data[i] = buff[2 + i]; in buff2frame_bas()
327 frame->data[i] = 0; in buff2frame_bas()
332 static int frame2buff_pel(const qemu_can_frame *frame, uint8_t *buff) in frame2buff_pel() argument
335 int dlen = frame->can_dlc; in frame2buff_pel()
337 if (frame->can_id & QEMU_CAN_ERR_FLAG) { /* error frame, NOT support now. */ in frame2buff_pel()
345 buff[0] = 0x0f & frame->can_dlc; /* DLC */ in frame2buff_pel()
346 if (frame->can_id & QEMU_CAN_RTR_FLAG) { /* RTR */ in frame2buff_pel()
349 if (frame->can_id & QEMU_CAN_EFF_FLAG) { /* EFF */ in frame2buff_pel()
351 buff[1] = extract32(frame->can_id, 21, 8); /* ID.28~ID.21 */ in frame2buff_pel()
352 buff[2] = extract32(frame->can_id, 13, 8); /* ID.20~ID.13 */ in frame2buff_pel()
353 buff[3] = extract32(frame->can_id, 5, 8); /* ID.12~ID.05 */ in frame2buff_pel()
354 buff[4] = extract32(frame->can_id, 0, 5) << 3; /* ID.04~ID.00,xxx */ in frame2buff_pel()
356 buff[5 + i] = frame->data[i]; in frame2buff_pel()
360 buff[1] = extract32(frame->can_id, 3, 8); /* ID.10~ID.03 */ in frame2buff_pel()
361 buff[2] = extract32(frame->can_id, 0, 3) << 5; /* ID.02~ID.00,xxxxx */ in frame2buff_pel()
363 buff[3 + i] = frame->data[i]; in frame2buff_pel()
372 static int frame2buff_bas(const qemu_can_frame *frame, uint8_t *buff) in frame2buff_bas() argument
375 int dlen = frame->can_dlc; in frame2buff_bas()
382 if ((frame->can_id & QEMU_CAN_EFF_FLAG) || in frame2buff_bas()
383 (frame->can_id & QEMU_CAN_ERR_FLAG)) { in frame2buff_bas()
391 buff[0] = extract32(frame->can_id, 3, 8); /* ID.10~ID.03 */ in frame2buff_bas()
392 buff[1] = extract32(frame->can_id, 0, 3) << 5; /* ID.02~ID.00,xxxxx */ in frame2buff_bas()
393 if (frame->can_id & QEMU_CAN_RTR_FLAG) { /* RTR */ in frame2buff_bas()
396 buff[1] |= frame->can_dlc & 0x0f; in frame2buff_bas()
398 buff[2 + i] = frame->data[i]; in frame2buff_bas()
425 qemu_can_frame frame; in can_sja_mem_write() local
478 buff2frame_pel(s->tx_buff, &frame); in can_sja_mem_write()
480 can_display_msg("[cansja]: Tx request " , &frame); in can_sja_mem_write()
490 can_bus_client_send(&s->bus_client, &frame, 1); in can_sja_mem_write()
582 buff2frame_bas(s->tx_buff, &frame); in can_sja_mem_write()
584 can_display_msg("[cansja]: Tx request " , &frame); in can_sja_mem_write()
594 can_bus_client_send(&s->bus_client, &frame, 1); in can_sja_mem_write()
783 const qemu_can_frame *frame = frames; in can_sja_receive() local
788 if (frame->flags & QEMU_CAN_FRMF_TYPE_FD) { in can_sja_receive()
790 can_display_msg("[cansja]: ignor fd frame ", frame); in can_sja_receive()
796 can_display_msg("[cansja]: receive ", frame); in can_sja_receive()
804 if (can_sja_accept_filter(s, frame) == 0) { in can_sja_receive()
812 ret = frame2buff_pel(frame, rcv); in can_sja_receive()
852 ret = frame2buff_bas(frame, rcv); in can_sja_receive()