| 303 | } |
| 304 | |
| 305 | U32 krecvmsg(KThread* thread, U32 socket, U32 address, U32 flags) { |
| 306 | KFileDescriptorPtr fd = thread->process->getFileDescriptor(socket); |
| 307 | |
| 308 | if (!fd) { |
| 309 | return -K_EBADF; |
| 310 | } |
| 311 | if (IS_NOT_SOCKET(fd)) { |
| 312 | return -K_ENOTSOCK; |
| 313 | } |
| 314 | std::shared_ptr<KSocketObject> s = std::dynamic_pointer_cast<KSocketObject>(fd->kobject); |
| 315 | return s->recvmsg(thread, fd, address, flags); |
| 316 | } |
| 317 | |
| 318 | // ssize_t sendto(int socket, const void *message, size_t length, int flags, const struct sockaddr *dest_addr, socklen_t dest_len); |
| 319 | U32 ksendto(KThread* thread, U32 socket, U32 message, U32 length, U32 flags, U32 dest_addr, U32 dest_len) { |
no test coverage detected