| 136 | ****************************************************************************/ |
| 137 | |
| 138 | static 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 |
no test coverage detected