diff options
Diffstat (limited to 'scalls/recvfrom.c')
-rw-r--r-- | scalls/recvfrom.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/scalls/recvfrom.c b/scalls/recvfrom.c new file mode 100644 index 0000000..0e37153 --- /dev/null +++ b/scalls/recvfrom.c @@ -0,0 +1,15 @@ +#include <fs/vfs.h> +#include <poll.h> +#include <scalls/recvfrom.h> + +size_t syscall_recvfrom(int socket, void *buffer, size_t length, int flags, + struct sockaddr *address, socklen_t *address_len) { + if (flags & MSG_WAITALL) { + struct pollfd fds[1]; + fds[0].fd = socket; + fds[0].events = POLLIN; + poll(fds, 1, 0); + } + kprintf("got event\n"); + return vfs_pread(socket, buffer, length, 0); +} |