Exemplo n.º 1
0
int
main(void)
{
	static const char sample[] = "access_sample";

	long rc = syscall(__NR_access, sample, F_OK);
	printf("access(\"%s\", F_OK) = %ld %s (%m)\n",
	       sample, rc, errno2name());

	rc = syscall(__NR_access, sample, R_OK|W_OK|X_OK);
	printf("access(\"%s\", R_OK|W_OK|X_OK) = %ld %s (%m)\n",
	       sample, rc, errno2name());

	return 0;
}
Exemplo n.º 2
0
int
main(void)
{
	tprintf("%s", "");

	static char tmp[] = "preadv-pwritev-tmpfile";
	if (open(tmp, O_CREAT|O_RDONLY|O_TRUNC, 0600) != 0)
		perror_msg_and_fail("creat: %s", tmp);
	if (open(tmp, O_WRONLY) != 1)
		perror_msg_and_fail("open: %s", tmp);
	if (unlink(tmp))
		perror_msg_and_fail("unlink: %s", tmp);

	static const char w0_c[] = "012";
	const char *w0_d = hexdump_strdup(w0_c);
	void *w0 = tail_memdup(w0_c, LENGTH_OF(w0_c));

	const void *efault = w0 + LENGTH_OF(w0_c);

	static const char w1_c[] = "34567";
	const char *w1_d = hexdump_strdup(w1_c);
	void *w1 = tail_memdup(w1_c, LENGTH_OF(w1_c));

	static const char w2_c[] = "89abcde";
	const char *w2_d = hexdump_strdup(w2_c);
	void *w2 = tail_memdup(w2_c, LENGTH_OF(w2_c));

	long rc;

	rc = pwritev(1, efault, 42, 0);
	tprintf("pwritev(1, %p, 42, 0) = %ld %s (%m)\n",
		efault, rc, errno2name());

	rc = preadv(0, efault, 42, 0);
	tprintf("preadv(0, %p, 42, 0) = %ld %s (%m)\n",
		efault, rc, errno2name());

	static const char r0_c[] = "01234567";
	const char *r0_d = hexdump_strdup(r0_c);
	static const char r1_c[] = "89abcde";
	const char *r1_d = hexdump_strdup(r1_c);

	const struct iovec w_iov_[] = {
		{
			.iov_base = w0,
			.iov_len = LENGTH_OF(w0_c)
		}, {
			.iov_base = w1,
Exemplo n.º 3
0
int
main(void)
{
	static const char fname[] = "fchmod_test_file";

	int fd = open(fname, O_CREAT|O_RDONLY, 0400);

	if (fd == -1)
		perror_msg_and_fail("open");

	if (unlink(fname) == -1)
		perror_msg_and_fail("unlink");

	if (syscall(__NR_fchmod, fd, 0600) == 0) {
		close(fd);

		printf("fchmod(%d, 0600) = 0\n", fd);

		if (syscall(__NR_fchmod, fd, 0600) != -1)
			perror_msg_and_fail("fchmod");
	}
	printf("fchmod(%d, 0600) = -1 %s (%m)\n", fd, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 4
0
int
main(void)
{
	long rc = syscall(__NR_clock_adjtime, CLOCK_MONOTONIC, NULL);
	printf("clock_adjtime(CLOCK_MONOTONIC, NULL) = %ld %s (%m)\n",
	       rc, errno2name());

	void *efault = tail_alloc(1);

	rc = syscall(__NR_clock_adjtime, CLOCK_REALTIME, efault);
	printf("clock_adjtime(CLOCK_REALTIME, %p) = %ld %s (%m)\n",
	       efault, rc, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 5
0
int
main(void)
{
	long rc = syscall(__NR_userfaultfd, 1 | O_NONBLOCK | O_CLOEXEC);
	printf("userfaultfd(O_NONBLOCK|O_CLOEXEC|0x1) = %ld %s (%m)\n",
	       rc, errno2name());
	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 6
0
int
main(void)
{
	long rc = syscall(__NR_sethostname, 0, 63);
	printf("sethostname(NULL, 63) = %ld %s (%m)\n",
	       rc, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 7
0
int
main(void)
{
	static const char buf[] = "reboot";
	long rc = syscall(__NR_reboot, LINUX_REBOOT_MAGIC1,
			  INVALID_MAGIC, LINUX_REBOOT_CMD_RESTART2, buf);
	printf("reboot(LINUX_REBOOT_MAGIC1, %#x /* LINUX_REBOOT_MAGIC_??? */,"
	       " LINUX_REBOOT_CMD_RESTART2, \"%s\") = %ld %s (%m)\n",
	       INVALID_MAGIC, buf, rc, errno2name());

	rc = syscall(__NR_reboot, LINUX_REBOOT_MAGIC1,
		     LINUX_REBOOT_MAGIC2, INVALID_CMD);
	printf("reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2,"
	       " %#x /* LINUX_REBOOT_CMD_??? */) = %ld %s (%m)\n",
	       INVALID_CMD, rc, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 8
0
int
main(void)
{
	const long int fd = (long int) 0xdeadbeefffffffff;

	long rc = syscall(__NR_fsync, fd);
	printf("fsync(%d) = %ld %s (%m)\n", (int) fd, rc, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 9
0
int
main(void)
{
	static const char text[] = "strace";
	int rc = syscall(__NR_memfd_create, text, 7);

	printf("memfd_create(\"%s\", %s) = %d %s (%m)\n",
	       text, "MFD_CLOEXEC|MFD_ALLOW_SEALING|0x4", rc, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 10
0
int
main(void)
{
	static const char sample[] = "chroot.sample";

	long rc = syscall(__NR_chroot, sample);
	printf("chroot(\"%s\") = %ld %s (%m)\n",
	       sample, rc, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 11
0
int
main(void)
{
	struct epoll_event *const ev = tail_alloc(sizeof(*ev));
	ev->events = EPOLLIN;

	long rc = invoke_syscall(-1U, EPOLL_CTL_ADD, -2U, ev);
	printf("epoll_ctl(-1, EPOLL_CTL_ADD, -2, {EPOLLIN,"
	       " {u32=%u, u64=%" PRIu64 "}}) = %ld %s (%m)\n",
	       ev->data.u32, ev->data.u64, rc, errno2name());

	rc = invoke_syscall(-3U, EPOLL_CTL_DEL, -4U, ev);
	printf("epoll_ctl(-3, EPOLL_CTL_DEL, -4, %p) = %ld %s (%m)\n",
	       ev, rc, errno2name());

	rc = invoke_syscall(-1UL, EPOLL_CTL_MOD, -16UL, 0);
	printf("epoll_ctl(-1, EPOLL_CTL_MOD, -16, NULL) = %ld %s (%m)\n",
	       rc, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 12
0
int
main(void)
{
	const unsigned long addr = (unsigned long) 0xfacefeeddeadbeefULL;
	const unsigned long len = (unsigned long) 0xcafef00dbadc0dedULL;

	long rc = syscall(__NR_mlock2, addr, len, -1UL);
	printf("mlock2(%#lx, %lu, MLOCK_ONFAULT|0xfffffffe)"
	       " = %ld %s (%m)\n", addr, len, rc, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 13
0
int
main(void)
{
	static const char sample[] = "faccessat.sample";
	const long int fd = (long int) 0xdeadbeefffffffff;

	long rc = syscall(__NR_faccessat, fd, sample, F_OK);
	printf("faccessat(%d, \"%s\", F_OK) = %ld %s (%m)\n",
	       (int) fd, sample, rc, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 14
0
int
main(void)
{
	const long int fd_old = (long int) 0xdeadbeefffffffff;
	const long int fd_new = (long int) 0xdeadbeeffffffffe;

	long rc = syscall(__NR_dup2, fd_old, fd_new);
	printf("dup2(%d, %d) = %ld %s (%m)\n",
	       (int) fd_old, (int) fd_new, rc, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 15
0
int
main(int ac, char **av)
{
	unsigned long dev = (unsigned long) 0xdeadbeefbadc0dedULL;
	sample = av[0];

	long rc = call_mknod(0, dev);
	printf("mknod(\"%s\", 000) = %ld %s (%m)\n",
	       sample, rc, errno2name());

	rc = call_mknod(0xffff, dev);
	printf("mknod(\"%s\", %#03ho) = %ld %s (%m)\n",
	       sample, (unsigned short) -1, rc, errno2name());

	rc = call_mknod(S_IFREG, 0);
	printf("mknod(\"%s\", S_IFREG|000) = %ld %s (%m)\n",
	       sample, rc, errno2name());

	rc = call_mknod(S_IFDIR | 06, 0);
	printf("mknod(\"%s\", S_IFDIR|006) = %ld %s (%m)\n",
	       sample, rc, errno2name());

	rc = call_mknod(S_IFLNK | 060, 0);
	printf("mknod(\"%s\", S_IFLNK|060) = %ld %s (%m)\n",
	       sample, rc, errno2name());

	rc = call_mknod(S_IFIFO | 0600, 0);
	printf("mknod(\"%s\", S_IFIFO|0600) = %ld %s (%m)\n",
	       sample, rc, errno2name());

	dev = (unsigned long) 0xdeadbeef00000000ULL | makedev(1, 7);

	rc = call_mknod(S_IFCHR | 024, dev);
	printf("mknod(\"%s\", S_IFCHR|024, makedev(1, 7)) = %ld %s (%m)\n",
	       sample, rc, errno2name());

	const unsigned short mode = (0xffff & ~S_IFMT) | S_IFBLK;
	dev = (unsigned long) 0xdeadbeefbadc0dedULL;

	rc = call_mknod(mode, dev);
	printf("mknod(\"%s\", S_IFBLK|S_ISUID|S_ISGID|S_ISVTX|%#03ho"
	       ", makedev(%u, %u)) = %ld %s (%m)\n",
	       sample, mode & ~(S_IFMT|S_ISUID|S_ISGID|S_ISVTX),
	       major((unsigned) dev), minor((unsigned) dev),
	       rc, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 16
0
int
main(void)
{
	const long int fd_old = (long int) 0xdeadbeefffffffff;
	const long int fd_new = (long int) 0xdeadbeeffffffffe;

	long rc = syscall(__NR_renameat, fd_old, OLD_FILE, fd_new, NEW_FILE);
	printf("renameat(%d, \"%s\", %d, \"%s\") = %ld %s (%m)\n",
	       (int) fd_old, OLD_FILE, (int) fd_new, NEW_FILE,
	       rc, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 17
0
int
main(void)
{
	struct sock_filter *const filter = tail_alloc(sizeof(*filter) * N);
	const void *const efault = tail_alloc(1);
	struct sock_fprog *const prog = tail_alloc(sizeof(*prog));
	long rc;

	prog->filter = filter;
	prog->len = N;
	rc = syscall(__NR_seccomp, SECCOMP_SET_MODE_FILTER, -1, prog);
	printf("seccomp(SECCOMP_SET_MODE_FILTER, %s, {len=%u, filter=%p})"
	       " = %ld %s (%m)\n", "SECCOMP_FILTER_FLAG_TSYNC|0xfffffffe",
	       prog->len, prog->filter, rc, errno2name());

	rc = syscall(__NR_seccomp, SECCOMP_SET_MODE_FILTER, -2L, efault);
	printf("seccomp(SECCOMP_SET_MODE_FILTER, %s, %p) = %ld %s (%m)\n",
	       "0xfffffffe /* SECCOMP_FILTER_FLAG_??? */",
	       efault, rc, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 18
0
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;

	long rc = syscall(__NR_linkat, fd_old, sample_1, fd_new, sample_2, 0);
	printf("linkat(%d, \"%s\", %d, \"%s\", 0) = %ld %s (%m)\n",
	       (int) fd_old, sample_1, (int) fd_new, sample_2,
	       rc, errno2name());

	rc = syscall(__NR_linkat, -100, sample_1, -100, sample_2, -1L);
	printf("linkat(%s, \"%s\", %s, \"%s\", %s) = %ld %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, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 19
0
int
main(void)
{
	sigset_t set[2];
	struct epoll_event *const ev = tail_alloc(sizeof(*ev));

	long rc = syscall(__NR_epoll_pwait, -1, ev, 1, -2,
			  set, (kernel_ulong_t) sizeof(set));
	printf("epoll_pwait(-1, %p, 1, -2, %p, %u) = %ld %s (%m)\n",
	       ev, set, (unsigned) sizeof(set), rc, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 20
0
int
main(void)
{
	const unsigned int size = PATH_MAX - 1;
	const char *p = tail_alloc(size);
	const char *const efault = p + size;

	for (; p <= efault; ++p) {
		int rc = chdir(p);
		printf("chdir(%p) = %d %s (%m)\n", p, rc, errno2name());
	}

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 21
0
int
main(void)
{
	getsockopt(-1, SOL_RAW, ICMP_FILTER, 0, 0);
	printf("getsockopt(-1, SOL_RAW, ICMP_FILTER, NULL, NULL) = -1 %s (%m)\n",
	       errno2name());

	setsockopt(-1, SOL_RAW, ICMP_FILTER, NULL, 0);
	printf("setsockopt(-1, SOL_RAW, ICMP_FILTER, NULL, 0) = -1 %s (%m)\n",
	       errno2name());

	socklen_t *const plen = tail_alloc(sizeof(*plen));
	void *const efault = plen + 1;
	struct icmp_filter *const f = tail_alloc(sizeof(*f));

	getsockopt(-1, SOL_RAW, ICMP_FILTER, f, plen);
	printf("getsockopt(-1, SOL_RAW, ICMP_FILTER, %p, %p) = -1 %s (%m)\n",
	       f, plen, errno2name());

	setsockopt(-1, SOL_RAW, ICMP_FILTER, efault, sizeof(*f));
	printf("setsockopt(-1, SOL_RAW, ICMP_FILTER, %p, %u) = -1 %s (%m)\n",
	       efault, (unsigned) sizeof(*f), errno2name());

	f->data = ~(
		1<<ICMP_ECHOREPLY |
		1<<ICMP_DEST_UNREACH |
		1<<ICMP_SOURCE_QUENCH |
		1<<ICMP_REDIRECT |
		1<<ICMP_TIME_EXCEEDED |
		1<<ICMP_PARAMETERPROB);

	setsockopt(-1, SOL_RAW, ICMP_FILTER, f, -2);
	printf("setsockopt(-1, SOL_RAW, ICMP_FILTER, %p, -2) = -1 %s (%m)\n",
	       f, errno2name());

	setsockopt(-1, SOL_RAW, ICMP_FILTER, f, sizeof(*f));
	printf("setsockopt(-1, SOL_RAW, ICMP_FILTER, %s, %u) = -1 %s (%m)\n",
	       "~(1<<ICMP_ECHOREPLY|1<<ICMP_DEST_UNREACH|1<<ICMP_SOURCE_QUENCH"
	       "|1<<ICMP_REDIRECT|1<<ICMP_TIME_EXCEEDED|1<<ICMP_PARAMETERPROB)",
	       (unsigned) sizeof(*f), errno2name());

	setsockopt(-1, SOL_RAW, ICMP_FILTER, f, sizeof(*f) * 2);
	printf("setsockopt(-1, SOL_RAW, ICMP_FILTER, %s, %u) = -1 %s (%m)\n",
	       "~(1<<ICMP_ECHOREPLY|1<<ICMP_DEST_UNREACH|1<<ICMP_SOURCE_QUENCH"
	       "|1<<ICMP_REDIRECT|1<<ICMP_TIME_EXCEEDED|1<<ICMP_PARAMETERPROB)",
	       (unsigned) sizeof(*f) * 2, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 22
0
int
main(void)
{
	const long int fd_in = (long int) 0xdeadbeefffffffff;
	const long int fd_out = (long int) 0xdeadbeeffffffffe;
	const size_t len = (size_t) 0xdeadbef3facefed3ULL;
	const unsigned int flags = 15;

	long rc = syscall(__NR_tee, fd_in, fd_out, len, flags);
	printf("tee(%d, %d, %zu, %s) = %ld %s (%m)\n",
	       (int) fd_in, (int) fd_out, len,
	       "SPLICE_F_MOVE|SPLICE_F_NONBLOCK|SPLICE_F_MORE|SPLICE_F_GIFT",
	       rc, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 23
0
int
main(void)
{
	const kernel_ulong_t len = (kernel_ulong_t) 0xdefaced0badc0deULL;
	long rc;

	if (sizeof(len) > sizeof(long))
		rc = ftruncate(-1, len);
	else
		rc = syscall(__NR_ftruncate, -1L, len);

	printf("ftruncate(-1, %llu) = %ld %s (%m)\n",
	       (unsigned long long) len, rc, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 24
0
int
main(void)
{
	const unsigned long len = (unsigned long) 0xcafef00dbadc0dedULL;
	const unsigned long mode = 3;
	const unsigned long nodemask = (unsigned long) 0xfacefeedfffffff1ULL;
	const unsigned long maxnode = (unsigned long) 0xdeadbeeffffffff2ULL;
	const unsigned long flags = -1UL;

	long rc = syscall(__NR_mbind, 0, len, mode, nodemask, maxnode, flags);
	printf("mbind(NULL, %lu, %s, %#lx, %lu, %s|%#x) = %ld %s (%m)\n",
	       len, "MPOL_INTERLEAVE", nodemask, maxnode,
	       "MPOL_MF_STRICT|MPOL_MF_MOVE|MPOL_MF_MOVE_ALL",
	       (unsigned) flags & ~7, rc, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 25
0
int
main(int ac, const char **av)
{
	char *dname;

	assert(ac == 1);
	assert(asprintf(&dname, "%s.test.tmp.dir", av[0]) > 0);
	assert(!mkdir(dname, 0700));
	assert(!chdir(dname));
	(void) close(0);
	assert(!creat(fname, 0600));
	assert(!close(0));
	assert(!open(".", O_RDONLY | O_DIRECTORY));

	unsigned long count = (unsigned long) 0xfacefeeddeadbeefULL;
	long rc = syscall(__NR_getdents64, (long) 0xdefacedffffffffULL, NULL,
			  count);
	printf("getdents64(-1, NULL, %u) = %ld %s (%m)\n",
	       (unsigned) count, rc, errno2name());

	count = (unsigned long) 0xfacefeed00000000ULL | sizeof(buf);
	while ((rc = syscall(__NR_getdents64, 0, buf, count))) {
		kernel_dirent64 *d;
		long i;

		if (rc < 0)
			perror_msg_and_skip("getdents64");
		printf("getdents64(0, [");
		for (i = 0; i < rc; i += d->d_reclen) {
			d = (kernel_dirent64 *) &buf[i];
			if (i)
				printf(", ");
			print_dirent(d);
		}
		printf("], %u) = %ld\n", (unsigned) count, rc);
	}
	printf("getdents64(0, [], %u) = 0\n", (unsigned) count);
	puts("+++ exited with 0 +++");
	assert(!unlink(fname));
	assert(!chdir(".."));
	assert(!rmdir(dname));

	return 0;
}
Exemplo n.º 26
0
int
main(void)
{
	const int pid = getpid();
	long rc = syscall(__NR_getpriority, PRIO_PROCESS,
			  (unsigned long) 0xffffffff00000000 | pid);
	printf("getpriority(PRIO_PROCESS, %d) = %ld\n", pid, rc);

	rc = syscall(__NR_setpriority, PRIO_PROCESS,
		     (unsigned long) 0xffffffff00000000 | pid,
		     (unsigned long) 0xffffffff00000000);
	if (rc)
		printf("setpriority(PRIO_PROCESS, %d, 0) = %ld %s (%m)\n",
		       pid, rc, errno2name());
	else
		printf("setpriority(PRIO_PROCESS, %d, 0) = 0\n", pid);

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 27
0
int
main(void)
{
	const int fd = -1;
	const off64_t offset = 0xdeadbeefbadc0ded;
	const off64_t nbytes = 0xfacefeedcafef00d;
	const unsigned int flags = -1;

	int rc = sync_file_range(fd, offset, nbytes, flags);
	printf("%s(%d, SYNC_FILE_RANGE_WAIT_BEFORE"
	       "|SYNC_FILE_RANGE_WRITE|SYNC_FILE_RANGE_WAIT_AFTER"
	       "|0xfffffff8, %lld, %lld) = %d %s (%m)\n",
	       "sync_file_range2", fd,
	       (long long) offset,
	       (long long) nbytes,
	       rc, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 28
0
int
main(void)
{
	const long int fd_in = (long int) 0xdeadbeefffffffff;
	const long int fd_out = (long int) 0xdeadbeeffffffffe;
	long long int *const off_in = tail_alloc(sizeof(*off_in));
	long long int *const off_out = tail_alloc(sizeof(*off_out));
	*off_in = 0xdeadbef1facefed1;
	*off_out = 0xdeadbef2facefed2;
	const size_t len = (size_t) 0xdeadbef3facefed3ULL;
	const unsigned int flags = 15;

	long rc = syscall(__NR_splice,
			  fd_in, off_in, fd_out, off_out, len, flags);
	printf("splice(%d, [%lld], %d, [%lld], %zu, %s) = %ld %s (%m)\n",
	       (int) fd_in, *off_in, (int) fd_out, *off_out, len,
	       "SPLICE_F_MOVE|SPLICE_F_NONBLOCK|SPLICE_F_MORE|SPLICE_F_GIFT",
	       rc, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 29
0
int
main(void)
{
	const long int fd_in = (long int) 0xdeadbeefffffffff;
	const long int fd_out = (long int) 0xdeadbeeffffffffe;
	long long int *const off_in = tail_alloc(sizeof(*off_in));
	long long int *const off_out = tail_alloc(sizeof(*off_out));
	*off_in = 0xdeadbef1facefed1;
	*off_out = 0xdeadbef2facefed2;
	const size_t len = (size_t) 0xdeadbef3facefed3ULL;
	const unsigned int flags = 0;

	long rc = syscall(__NR_copy_file_range,
			  fd_in, off_in, fd_out, off_out, len, flags);
	printf("copy_file_range(%d, [%lld], %d, [%lld], %zu, %u)"
	       " = %ld %s (%m)\n",
	       (int) fd_in, *off_in, (int) fd_out, *off_out, len, flags,
	       rc, errno2name());

	puts("+++ exited with 0 +++");
	return 0;
}
Exemplo n.º 30
0
int
main(void)
{
	static const char sample[] = "swap.sample";
	long rc;

	rc = syscall(__NR_swapon, sample, 0);
	printf("swapon(\"%s\", %s) = %ld %s (%m)\n",
	       sample, "0", rc, errno2name());

	rc = syscall(__NR_swapon, sample, 42);
	printf("swapon(\"%s\", %s) = %ld %s (%m)\n",
	       sample, "42", rc, errno2name());

	rc = syscall(__NR_swapon, sample, SWAP_FLAG_PREFER);
	printf("swapon(\"%s\", %s) = %ld %s (%m)\n",
	       sample, "SWAP_FLAG_PREFER|0", rc, errno2name());

	rc = syscall(__NR_swapon, sample, SWAP_FLAG_PREFER | 42);
	printf("swapon(\"%s\", %s) = %ld %s (%m)\n",
	       sample, "SWAP_FLAG_PREFER|42", rc, errno2name());

	rc = syscall(__NR_swapon, sample, -1L);
	printf("swapon(\"%s\", %s) = %ld %s (%m)\n",
	       sample,
	       "SWAP_FLAG_PREFER|SWAP_FLAG_DISCARD|SWAP_FLAG_DISCARD_ONCE"
	       "|SWAP_FLAG_DISCARD_PAGES|0xfff80000|32767",
	       rc, errno2name());

	rc = syscall(__NR_swapoff, sample);
	printf("swapoff(\"%s\") = %ld %s (%m)\n",
	       sample, rc, errno2name());

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