(root)/
strace-6.5/
src/
link.c
       1  /*
       2   * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
       3   * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
       4   * Copyright (c) 1993-1996 Rick Sladkey <jrs@world.std.com>
       5   * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
       6   * Copyright (c) 2006 Ulrich Drepper <drepper@redhat.com>
       7   * Copyright (c) 2006 Bernhard Kaindl <bk@suse.de>
       8   * Copyright (c) 2006-2021 Dmitry V. Levin <ldv@strace.io>
       9   * All rights reserved.
      10   *
      11   * SPDX-License-Identifier: LGPL-2.1-or-later
      12   */
      13  
      14  #include "defs.h"
      15  #include <linux/fcntl.h>
      16  #include "xlat/at_flags.h"
      17  
      18  SYS_FUNC(link)
      19  {
      20  	/* oldpath */
      21  	printpath(tcp, tcp->u_arg[0]);
      22  	tprint_arg_next();
      23  
      24  	/* newpath */
      25  	printpath(tcp, tcp->u_arg[1]);
      26  
      27  	return RVAL_DECODED;
      28  }
      29  
      30  SYS_FUNC(linkat)
      31  {
      32  	/* olddirfd */
      33  	print_dirfd(tcp, tcp->u_arg[0]);
      34  	tprint_arg_next();
      35  
      36  	/* oldpath */
      37  	printpath(tcp, tcp->u_arg[1]);
      38  	tprint_arg_next();
      39  
      40  	/* newdirfd */
      41  	print_dirfd(tcp, tcp->u_arg[2]);
      42  	tprint_arg_next();
      43  
      44  	/* newpath */
      45  	printpath(tcp, tcp->u_arg[3]);
      46  	tprint_arg_next();
      47  
      48  	/* flags */
      49  	printflags(at_flags, tcp->u_arg[4], "AT_???");
      50  
      51  	return RVAL_DECODED;
      52  }
      53  
      54  SYS_FUNC(unlinkat)
      55  {
      56  	/* dirfd */
      57  	print_dirfd(tcp, tcp->u_arg[0]);
      58  	tprint_arg_next();
      59  
      60  	/* pathname */
      61  	printpath(tcp, tcp->u_arg[1]);
      62  	tprint_arg_next();
      63  
      64  	/* flags */
      65  	printflags(at_flags, tcp->u_arg[2], "AT_???");
      66  
      67  	return RVAL_DECODED;
      68  }
      69  
      70  SYS_FUNC(symlinkat)
      71  {
      72  	/* target */
      73  	printpath(tcp, tcp->u_arg[0]);
      74  	tprint_arg_next();
      75  
      76  	/* newdirfd */
      77  	print_dirfd(tcp, tcp->u_arg[1]);
      78  	tprint_arg_next();
      79  
      80  	/* linkpath */
      81  	printpath(tcp, tcp->u_arg[2]);
      82  
      83  	return RVAL_DECODED;
      84  }