Donny9 commented on code in PR #17909:
URL: https://github.com/apache/nuttx/pull/17909#discussion_r2707941592
##########
drivers/timers/rpmsg_rtc.c:
##########
@@ -716,39 +714,61 @@ static int rpmsg_rtc_server_ept_cb(FAR struct
rpmsg_endpoint *ept,
}
}
-static bool rpmsg_rtc_server_ns_match(FAR struct rpmsg_device *rdev,
- FAR void *priv,
- FAR const char *name,
- uint32_t dest)
-{
- return !strcmp(name, RPMSG_RTC_EPT_NAME);
-}
-
static void rpmsg_rtc_server_ept_release(FAR struct rpmsg_endpoint *ept)
{
FAR struct rpmsg_rtc_client_s *client = container_of(ept,
struct rpmsg_rtc_client_s, ept);
FAR struct rpmsg_rtc_server_s *server = ept->priv;
nxmutex_lock(&server->lock);
- list_delete(&client->node);
+ if (list_in_list(&client->node))
+ {
+ list_delete(&client->node);
+ }
+
nxmutex_unlock(&server->lock);
kmm_free(client);
}
-static void rpmsg_rtc_server_ns_bind(FAR struct rpmsg_device *rdev,
- FAR void *priv,
- FAR const char *name,
- uint32_t dest)
+static void rpmsg_rtc_server_sync(FAR struct rpmsg_rtc_server_s *server,
+ FAR struct rpmsg_rtc_client_s *client)
+{
+ struct rtc_time rtctime;
+
+ if (server->lower->ops->rdtime(server->lower, &rtctime) >= 0)
+ {
+ struct rpmsg_rtc_set_s msg;
+
+ msg.sec = timegm((FAR struct tm *)&rtctime);
+ msg.nsec = rtctime.tm_nsec;
+ msg.base_sec = g_basetime.tv_sec;
+ msg.base_nsec = g_basetime.tv_nsec;
+
+ msg.header.command = RPMSG_RTC_SYNC;
+ rpmsg_send(&client->ept, &msg, sizeof(msg));
+ }
+}
+
+static void rpmsg_rtc_server_ns_bound(FAR struct rpmsg_endpoint *ept)
+{
+ FAR struct rpmsg_rtc_client_s *client;
+ FAR struct rpmsg_rtc_server_s *server;
+
+ client = container_of(ept, struct rpmsg_rtc_client_s, ept);
+ server = client->ept.priv;
+
+ nxmutex_lock(&server->lock);
+ list_add_tail(&server->list, &client->node);
Review Comment:
No need to check list_in_list() here because ns_bound callback is only
called once when the endpoint is successfully bound to the remote endpoint.
This callback will never be invoked multiple times for the same endpoint.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]