Lines Matching defs:msg
41 lws_smd_msg_t *msg;
58 msg = lws_malloc(sizeof(*msg) + LWS_SMD_SS_RX_HEADER_LEN_EFF + len,
60 if (!msg)
63 memset(msg, 0, sizeof(*msg));
64 msg->timestamp = lws_now_usecs();
65 msg->length = (uint16_t)len;
66 msg->_class = _class;
68 return ((uint8_t *)&msg[1]) + LWS_SMD_SS_RX_HEADER_LEN_EFF;
74 lws_smd_msg_t *msg = (lws_smd_msg_t *)(((uint8_t *)*ppay) -
75 LWS_SMD_SS_RX_HEADER_LEN_EFF - sizeof(*msg));
78 lws_free(msg);
90 lws_smd_msg_t *msg = lws_container_of(p, lws_smd_msg_t, list);
92 lwsl_info(" msg %d: %p: ref %d, lat %dms, cls: 0x%x, len %u: '%s'\n",
93 n++, msg, msg->refcount,
94 (unsigned int)((lws_now_usecs() - msg->timestamp) / 1000),
95 msg->length, msg->_class,
96 (const char *)&msg[1] + LWS_SMD_SS_RX_HEADER_LEN_EFF);
111 _lws_smd_msg_peer_interested_in_msg(lws_smd_peer_t *pr, lws_smd_msg_t *msg)
113 return !!(msg->_class & pr->_class_filter);
121 _lws_smd_msg_assess_peers_interested(lws_smd_t *smd, lws_smd_msg_t *msg,
130 if (pr != exc && _lws_smd_msg_peer_interested_in_msg(pr, msg))
162 _lws_smd_msg_destroy(struct lws_context *cx, lws_smd_t *smd, lws_smd_msg_t *msg)
173 if (xpr->tail == msg) {
174 lwsl_cx_err(cx, "peer %p has msg %p "
175 "we are about to destroy as tail", xpr, msg);
187 lwsl_cx_info(cx, "destroy msg %p", msg);
188 lws_dll2_remove(&msg->list);
189 lws_free(msg);
199 lws_smd_msg_t *msg = (lws_smd_msg_t *)(((uint8_t *)pay) -
200 LWS_SMD_SS_RX_HEADER_LEN_EFF - sizeof(*msg));
216 msg->refcount = (uint16_t)_lws_smd_msg_assess_peers_interested(
217 &ctx->smd, msg, exc);
218 if (!msg->refcount) {
222 lws_free(msg);
229 msg->exc = exc;
233 lws_dll2_add_tail(&msg->list, &ctx->smd.owner_messages);
244 !pr->tail && _lws_smd_msg_peer_interested_in_msg(pr, msg)) {
245 pr->tail = msg;
254 msg, msg->refcount, ctx->smd.owner_messages.count);
288 lws_smd_msg_t *msg;
310 msg = (lws_smd_msg_t *)(((uint8_t *)p) - LWS_SMD_SS_RX_HEADER_LEN_EFF -
311 sizeof(*msg));
312 msg->length = (uint16_t)n;
374 lws_smd_msg_t *msg;
402 msg = (lws_smd_msg_t *)(((uint8_t *)p) - LWS_SMD_SS_RX_HEADER_LEN_EFF -
403 sizeof(*msg));
404 msg->length = (uint16_t)(len - LWS_SMD_SS_RX_HEADER_LEN_EFF);
406 msg->timestamp = (lws_usec_t)lws_ser_ru64be(buf + 8);
409 memcpy(p, buf + LWS_SMD_SS_RX_HEADER_LEN_EFF, msg->length);
423 tag, (unsigned int)_class, msg->length,
424 (unsigned long long)msg->timestamp);
496 lws_smd_msg_t *msg;
503 msg = lws_container_of(tail, lws_smd_msg_t, list);
504 if (msg->exc != pr &&
505 _lws_smd_msg_peer_interested_in_msg(pr, msg))
506 return msg;
529 lws_smd_msg_t *msg;
534 msg = lws_container_of(pr->tail, lws_smd_msg_t, list);
538 (unsigned int)msg->_class, (int)msg->length,
539 (int)msg->refcount, pr);
541 pr->cb(pr->opaque, msg->_class, msg->timestamp,
542 ((uint8_t *)&msg[1]) + LWS_SMD_SS_RX_HEADER_LEN_EFF,
543 (size_t)msg->length);
545 assert(msg->refcount);
559 if (!--msg->refcount)
560 _lws_smd_msg_destroy(ctx, &ctx->smd, msg);
648 lws_smd_msg_t *msg = lws_container_of(p, lws_smd_msg_t, list);
650 if (_lws_smd_msg_peer_interested_in_msg(pr, msg))
651 msg->refcount++;
708 lws_smd_msg_t *msg = lws_container_of(p, lws_smd_msg_t, list);
710 if ((lws_now_usecs() - msg->timestamp) > ctx->smd_ttl_us) {
712 msg);
727 if (pr->tail == msg)
737 _lws_smd_msg_destroy(ctx, &ctx->smd, msg);
780 lws_smd_msg_t *msg = lws_container_of(p, lws_smd_msg_t, list);
782 lws_dll2_remove(&msg->list);
783 lws_free(msg);