(root)/
strace-6.5/
src/
fadvise.c
       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  }