MCPcopy Create free account
hub / github.com/apache/nuttx / rpmsg_test_hold_rx_cb

Function rpmsg_test_hold_rx_cb

drivers/rpmsg/rpmsg_test.c:138–167  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

136 ****************************************************************************/
137
138static void rpmsg_test_hold_rx_cb(FAR struct rpmsg_endpoint *ept,
139 FAR void *data, size_t len, uint32_t src,
140 FAR void *_priv)
141{
142 FAR struct rpmsg_test_priv_s *priv = _priv;
143 FAR struct rpmsg_test_msg_s *msg = data;
144 uint32_t value = RPMSG_TEST_GET_VALUE(msg->cmd);
145 bool ret;
146
147 /* Hold the rx buffer and fill the rx buffer data with MAGIC2 */
148
149 ret = rpmsg_test_memcmp(msg->data, RPMSG_TEST_MAGIC1, msg->len);
150 DEBUGASSERT(ret);
151 memset(msg->data, RPMSG_TEST_MAGIC2, msg->len);
152 rpmsg_hold_rx_buffer(ept, data);
153
154 list_add_tail(&priv->rxhead, (FAR struct list_node *)data);
155
156 if (value == RPMSG_TEST_VAL_HOLD_RX_END)
157 {
158 syslog(LOG_EMERG, "Rpmsg Test: hold rx buffer finish\n");
159
160 /* Delay 10ms to release all the rx buffers, to make sure
161 * the hold rx buffer api is valid.
162 */
163
164 work_queue(LPWORK, &priv->work, rpmsg_test_hold_rx_work, priv,
165 MSEC2TICK(10));
166 }
167}
168
169/****************************************************************************
170 * Name: rpmsg_test_ept_cb

Callers 1

rpmsg_test_ept_cbFunction · 0.85

Calls 5

rpmsg_test_memcmpFunction · 0.85
list_add_tailFunction · 0.85
memsetFunction · 0.50
syslogFunction · 0.50
work_queueFunction · 0.50

Tested by

no test coverage detected