1 /*
2 * Check decoding of sync_file_range syscall.
3 *
4 * Copyright (c) 2016-2018 Dmitry V. Levin <ldv@strace.io>
5 * Copyright (c) 2016-2021 The strace developers.
6 * All rights reserved.
7 *
8 * SPDX-License-Identifier: GPL-2.0-or-later
9 */
10
11 #include "tests.h"
12 #include <fcntl.h>
13 #include "scno.h"
14
15 #if defined HAVE_SYNC_FILE_RANGE && defined __NR_sync_file_range
16
17 # include <stdio.h>
18
19 int
20 main(void)
21 {
22 const int fd = -1;
23 const off64_t offset = 0xdeadbeefbadc0dedULL;
24 const off64_t nbytes = 0xfacefeedcafef00dULL;
25 const unsigned int flags = -1;
26
27 int rc = sync_file_range(fd, offset, nbytes, flags);
28 printf("%s(%d, %lld, %lld, SYNC_FILE_RANGE_WAIT_BEFORE"
29 "|SYNC_FILE_RANGE_WRITE|SYNC_FILE_RANGE_WAIT_AFTER"
30 "|0xfffffff8) = %d %s (%m)\n",
31 "sync_file_range", fd,
32 (long long) offset,
33 (long long) nbytes,
34 rc, errno2name());
35
36 puts("+++ exited with 0 +++");
37 return 0;
38 }
39
40 #else
41
42 SKIP_MAIN_UNDEFINED("HAVE_SYNC_FILE_RANGE && __NR_sync_file_range")
43
44 #endif