| 394 | } |
| 395 | |
| 396 | void rpmsg_ns_unbind(FAR struct rpmsg_device *rdev, |
| 397 | FAR const char *name, uint32_t dest) |
| 398 | { |
| 399 | FAR struct rpmsg_s *rpmsg = rpmsg_get_by_rdev(rdev); |
| 400 | FAR struct metal_list *node; |
| 401 | |
| 402 | nxrmutex_lock(&rpmsg->lock); |
| 403 | metal_list_for_each(&rpmsg->bind, node) |
| 404 | { |
| 405 | FAR struct rpmsg_bind_s *bind = |
| 406 | metal_container_of(node, struct rpmsg_bind_s, node); |
| 407 | |
| 408 | if (bind->dest == dest && !strncmp(bind->name, name, RPMSG_NAME_SIZE)) |
| 409 | { |
| 410 | metal_list_del(node); |
| 411 | kmm_free(bind); |
| 412 | break; |
| 413 | } |
| 414 | } |
| 415 | |
| 416 | nxrmutex_unlock(&rpmsg->lock); |
| 417 | } |
| 418 | |
| 419 | void rpmsg_device_created(FAR struct rpmsg_s *rpmsg) |
| 420 | { |
nothing calls this directly
no test coverage detected