Lines Matching refs:frame
84 static int rt_link_frame_init(struct rt_link_frame *frame, rt_uint8_t config) in rt_link_frame_init() argument
86 if (frame == RT_NULL) in rt_link_frame_init()
92 rt_memset(&frame->head, 0, sizeof(struct rt_link_frame_head)); in rt_link_frame_init()
95 frame->head.crc = 1; in rt_link_frame_init()
99 frame->head.ack = 1; in rt_link_frame_init()
102 frame->head.magicid = RT_LINK_FRAME_HEAD; in rt_link_frame_init()
104 rt_memset(&frame->extend, 0, sizeof(struct rt_link_extend)); in rt_link_frame_init()
105 frame->crc = 0; in rt_link_frame_init()
106 frame->real_data = RT_NULL; in rt_link_frame_init()
107 frame->data_len = 0; in rt_link_frame_init()
108 frame->index = 0; in rt_link_frame_init()
109 frame->total = 0; in rt_link_frame_init()
110 frame->attribute = RT_LINK_RESERVE_FRAME; in rt_link_frame_init()
111 frame->issent = RT_LINK_FRAME_NOSEND; in rt_link_frame_init()
113 rt_slist_init(&frame->slist); in rt_link_frame_init()
152 static rt_err_t rt_link_frame_extend_config(struct rt_link_frame *frame, rt_link_frame_attr_e attri… in rt_link_frame_extend_config() argument
154 frame->head.extend = 1; in rt_link_frame_extend_config()
155 frame->extend.attribute = attribute; in rt_link_frame_extend_config()
156 frame->extend.parameter = parameter; in rt_link_frame_extend_config()
184 struct rt_link_frame *frame = RT_NULL; in rt_link_service_send_finish() local
192 frame = rt_container_of(tem_list, struct rt_link_frame, slist); in rt_link_service_send_finish()
193 if (frame) in rt_link_service_send_finish()
195 service = frame->head.service; in rt_link_service_send_finish()
196 buffer = frame->real_data - (frame->index * RT_LINK_MAX_DATA_LENGTH); in rt_link_service_send_finish()
211 static rt_ssize_t frame_send(struct rt_link_frame *frame) in frame_send() argument
219 if (frame->head.crc) in frame_send()
223 if (frame->head.extend) in frame_send()
228 length += frame->data_len; in frame_send()
229 frame->head.length = frame->data_len; in frame_send()
230 rt_memcpy(data, &frame->head, RT_LINK_HEAD_LENGTH); in frame_send()
232 if (frame->head.extend) in frame_send()
234 rt_memcpy(data, &frame->extend, RT_LINK_EXTEND_LENGTH); in frame_send()
237 if (frame->attribute == RT_LINK_SHORT_DATA_FRAME || frame->attribute == RT_LINK_LONG_DATA_FRAME) in frame_send()
239 rt_memcpy(data, frame->real_data, frame->data_len); in frame_send()
240 data = data + frame->data_len; in frame_send()
242 if (frame->head.crc) in frame_send()
244 …frame->crc = rt_link_scb->calculate_crc(RT_FALSE, rt_link_scb->sendbuffer, length - RT_LINK_CRC_LE… in frame_send()
245 rt_memcpy(data, &frame->crc, RT_LINK_CRC_LENGTH); in frame_send()
248 …e send seq(%d) len(%d) attr:(%d), crc:(0x%08x).", frame->head.sequence, length, frame->attribute, … in frame_send()
256 struct rt_link_frame *frame = RT_NULL; in rt_link_frame_send() local
273 frame = rt_container_of(slist, struct rt_link_frame, slist); in rt_link_frame_send()
276 if (frame_send(frame) == 0) in rt_link_frame_send()
278 rt_link_scb->service[frame->head.service]->err = RT_LINK_EIO; in rt_link_frame_send()
281 frame->issent = RT_LINK_FRAME_SENT; in rt_link_frame_send()
282 if ((slist == RT_NULL) || (frame->index + 1 >= frame->total)) in rt_link_frame_send()
293 if ((is_finish) && (frame->head.ack == 0)) in rt_link_frame_send()
326 static rt_err_t rt_link_frame_stop_receive(struct rt_link_frame *frame) in rt_link_frame_stop_receive() argument
328 rt_memset(frame, 0, sizeof(struct rt_link_frame)); in rt_link_frame_stop_receive()
869 struct rt_link_frame *frame = RT_NULL; in rt_link_send_ready() local
873 … frame = rt_container_of(rt_slist_next(&rt_link_scb->tx_data_slist), struct rt_link_frame, slist); in rt_link_send_ready()
889 if ((frame != RT_NULL) && (frame->issent == RT_LINK_FRAME_NOSEND)) in rt_link_send_ready()
920 …struct rt_link_frame *frame = rt_container_of(rt_slist_next(&rt_link_scb->tx_data_slist), struct r… in rt_link_send_timeout() local
921 frame->issent = RT_LINK_FRAME_NOSEND; in rt_link_send_timeout()
923 frame->head.sequence, in rt_link_send_timeout()
1291 …struct rt_link_frame *frame = rt_container_of(rt_slist_next(&rt_link_scb->tx_data_slist), struct r… in rt_link_service_attach() local
1292 seq = frame->head.sequence; in rt_link_service_attach()