1 /*
2 * Copyright (c) 2004 Ulrich Drepper <drepper@redhat.com>
3 * Copyright (c) 2004 Roland McGrath <roland@redhat.com>
4 * Copyright (c) 2007 Daniel Jacobowitz <dan@codesourcery.com>
5 * Copyright (c) 2009 Andreas Schwab <schwab@redhat.com>
6 * Copyright (c) 2009 Kirill A. Shutemov <kirill@shutemov.name>
7 * Copyright (c) 2011-2015 Dmitry V. Levin <ldv@strace.io>
8 * Copyright (c) 2014-2021 The strace developers.
9 * All rights reserved.
10 *
11 * SPDX-License-Identifier: LGPL-2.1-or-later
12 */
13
14 #include "defs.h"
15
16 #include <fcntl.h>
17
18 #include "xlat/advise.h"
19
20 SYS_FUNC(fadvise64)
21 {
22 /* fd */
23 printfd(tcp, tcp->u_arg[0]);
24 tprint_arg_next();
25
26 /* offset */
27 unsigned int argn = print_arg_lld(tcp, 1);
28 tprint_arg_next();
29
30 /* len */
31 kernel_ulong_t len = tcp->u_arg[argn++];
32 PRINT_VAL_U(len);
33 tprint_arg_next();
34
35 /* advice */
36 printxval(advise, tcp->u_arg[argn], "POSIX_FADV_???");
37
38 return RVAL_DECODED;
39 }
40
41 SYS_FUNC(fadvise64_64)
42 {
43 /* fd */
44 printfd(tcp, tcp->u_arg[0]);
45 tprint_arg_next();
46
47 /* offset */
48 unsigned int argn = print_arg_lld(tcp, 1);
49 tprint_arg_next();
50
51 /* len */
52 argn = print_arg_lld(tcp, argn);
53 tprint_arg_next();
54
55 /* advice */
56 #if defined __ARM_EABI__ || defined AARCH64 || defined POWERPC || defined XTENSA
57 printxval(advise, tcp->u_arg[1], "POSIX_FADV_???");
58 #else
59 printxval(advise, tcp->u_arg[argn], "POSIX_FADV_???");
60 #endif
61
62 return RVAL_DECODED;
63 }