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

Function rpmsgdev_read_handler

drivers/misc/rpmsgdev.c:911–935  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

909 ****************************************************************************/
910
911static int rpmsgdev_read_handler(FAR struct rpmsg_endpoint *ept,
912 FAR void *data, size_t len,
913 uint32_t src, FAR void *priv)
914{
915 FAR struct rpmsgdev_header_s *header = data;
916 FAR struct rpmsgdev_cookie_s *cookie =
917 (FAR struct rpmsgdev_cookie_s *)(uintptr_t)header->cookie;
918 FAR struct rpmsgdev_read_s *rsp = data;
919 FAR struct iovec *read = cookie->data;
920
921 cookie->result = header->result;
922 if (cookie->result > 0)
923 {
924 memcpy(read->iov_base + read->iov_len, rsp->buf, cookie->result);
925 read->iov_len += cookie->result;
926 }
927
928 if (header->command == RPMSGDEV_READ_NOFRAG ||
929 cookie->result <= 0 || read->iov_len >= rsp->count)
930 {
931 rpmsg_post(ept, &cookie->sem);
932 }
933
934 return 0;
935}
936
937/****************************************************************************
938 * Name: rpmsgdev_ioctl_handler

Callers

nothing calls this directly

Calls 2

rpmsg_postFunction · 0.85
memcpyFunction · 0.50

Tested by

no test coverage detected