#include "tests.h"
#include <sys/syscall.h>

#ifdef __NR_linkat

# include <errno.h>
# include <stdio.h>
# include <unistd.h>

int
main(void)
{
	static const char sample_1[] = "linkat_sample_old";
	static const char sample_2[] = "linkat_sample_new";
	const long fd_old = (long) 0xdeadbeefffffffff;
	const long fd_new = (long) 0xdeadbeeffffffffe;

	int rc = syscall(__NR_linkat, fd_old, sample_1, fd_new, sample_2, 0);
	printf("linkat(%d, \"%s\", %d, \"%s\", 0) = %d %s (%m)\n",
	       (int) fd_old, sample_1, (int) fd_new, sample_2, rc,
	       errno == ENOSYS ? "ENOSYS" : "EBADF");

	rc = syscall(__NR_linkat, -100, sample_1, -100, sample_2, -1L);
	printf("linkat(%s, \"%s\", %s, \"%s\", %s) = %d %s (%m)\n",
	       "AT_FDCWD", sample_1, "AT_FDCWD", sample_2,
	       "AT_SYMLINK_NOFOLLOW|AT_REMOVEDIR|AT_SYMLINK_FOLLOW"
	       "|AT_NO_AUTOMOUNT|AT_EMPTY_PATH|0xffffe0ff",
	       rc, errno == ENOSYS ? "ENOSYS" : "EINVAL");

	puts("+++ exited with 0 +++");
	return 0;
}

#else

SKIP_MAIN_UNDEFINED("__NR_linkat")

#endif
