summaryrefslogtreecommitdiff
path: root/userland/libc/sys/socket/recvfrom.c
blob: 5bbfeea81920e5b1edf1734f5b7a4e28e811c7ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <assert.h>
#include <sys/socket.h>
#include <syscall.h>

struct two_args {
  uint32_t a;
  uint32_t b;
};

size_t recvfrom(int socket, void *buffer, size_t length, int flags,
                struct sockaddr *address, socklen_t *address_len) {
  struct two_args extra_args;
  extra_args.a = address;
  extra_args.b = address_len;

  return syscall(SYS_RECVFROM, socket, buffer, length, flags, &extra_args);
}