| 417 | } |
| 418 | |
| 419 | void rpmsg_device_created(FAR struct rpmsg_s *rpmsg) |
| 420 | { |
| 421 | FAR struct rpmsg_device *rdev = rpmsg_get_rdev_by_rpmsg(rpmsg); |
| 422 | FAR struct metal_list *node; |
| 423 | FAR struct metal_list *tmp; |
| 424 | |
| 425 | down_write(&g_rpmsg_lock); |
| 426 | metal_list_for_each_safe(&g_rpmsg_cb, tmp, node) |
| 427 | { |
| 428 | FAR struct rpmsg_cb_s *cb = |
| 429 | metal_container_of(node, struct rpmsg_cb_s, node); |
| 430 | |
| 431 | if (cb->device_created) |
| 432 | { |
| 433 | cb->device_created(rdev, cb->priv); |
| 434 | } |
| 435 | } |
| 436 | |
| 437 | rpmsg->init = true; |
| 438 | up_write(&g_rpmsg_lock); |
| 439 | |
| 440 | #ifdef CONFIG_RPMSG_PING |
| 441 | rpmsg_ping_init(rdev, &rpmsg->ping); |
| 442 | #endif |
| 443 | #ifdef CONFIG_RPMSG_TEST |
| 444 | rpmsg_test_init(rdev, &rpmsg->test); |
| 445 | #endif |
| 446 | } |
| 447 | |
| 448 | void rpmsg_device_destory(FAR struct rpmsg_s *rpmsg) |
| 449 | { |
no test coverage detected