| 975 | } |
| 976 | |
| 977 | int rpmsgfs_client_chstat(FAR void *handle, FAR const char *path, |
| 978 | FAR const struct stat *buf, int flags) |
| 979 | { |
| 980 | FAR struct rpmsgfs_s *priv = handle; |
| 981 | FAR struct rpmsgfs_chstat_s *msg; |
| 982 | uint32_t space; |
| 983 | size_t len; |
| 984 | |
| 985 | len = sizeof(*msg) + strlen(path) + 1; |
| 986 | |
| 987 | msg = rpmsgfs_get_tx_payload_buffer(priv, &space); |
| 988 | if (!msg) |
| 989 | { |
| 990 | return -ENOMEM; |
| 991 | } |
| 992 | |
| 993 | DEBUGASSERT(len <= space); |
| 994 | |
| 995 | msg->flags = flags; |
| 996 | msg->buf.dev = buf->st_dev; |
| 997 | msg->buf.ino = buf->st_ino; |
| 998 | msg->buf.mode = buf->st_mode; |
| 999 | msg->buf.nlink = buf->st_nlink; |
| 1000 | msg->buf.uid = buf->st_uid; |
| 1001 | msg->buf.gid = buf->st_gid; |
| 1002 | msg->buf.rdev = buf->st_rdev; |
| 1003 | msg->buf.size = buf->st_size; |
| 1004 | msg->buf.atim_sec = buf->st_atim.tv_sec; |
| 1005 | msg->buf.atim_nsec = buf->st_atim.tv_nsec; |
| 1006 | msg->buf.mtim_sec = buf->st_mtim.tv_sec; |
| 1007 | msg->buf.mtim_nsec = buf->st_mtim.tv_nsec; |
| 1008 | msg->buf.ctim_sec = buf->st_ctim.tv_sec; |
| 1009 | msg->buf.ctim_nsec = buf->st_ctim.tv_nsec; |
| 1010 | msg->buf.blksize = buf->st_blksize; |
| 1011 | msg->buf.blocks = buf->st_blocks; |
| 1012 | |
| 1013 | strlcpy(msg->pathname, path, space - sizeof(*msg)); |
| 1014 | |
| 1015 | return rpmsgfs_send_recv(priv, RPMSGFS_CHSTAT, false, |
| 1016 | (struct rpmsgfs_header_s *)msg, len, NULL); |
| 1017 | } |
no test coverage detected