#include <stdarg.h>
#include <unistd.h>
#include "pthread_impl.h"
#include "syscall.h"

int clone(int (*func)(void*), void* stack, int flags, void* arg, ...) {
  va_list ap;
  pid_t *ptid, *ctid;
  void* tls;

  va_start(ap, arg);
  ptid = va_arg(ap, pid_t*);
  tls = va_arg(ap, void*);
  ctid = va_arg(ap, pid_t*);
  va_end(ap);

  return __syscall_ret(__clone(func, stack, flags, arg, ptid, tls, ctid));
}
