(root)/
strace-6.5/
src/
linux/
m68k/
arch_sigreturn.c
       1  /*
       2   * Copyright (c) 2015-2021 The strace developers.
       3   * All rights reserved.
       4   *
       5   * SPDX-License-Identifier: LGPL-2.1-or-later
       6   */
       7  
       8  static void
       9  arch_sigreturn(struct tcb *tcp)
      10  {
      11  	unsigned long addr, sp;
      12  
      13  	/* Fetch pointer to struct sigcontext.  */
      14  	if (!get_stack_pointer(tcp, &sp) ||
      15  	    umove_or_printaddr(tcp, sp + 2 * sizeof(int), &addr))
      16  		return;
      17  
      18  	unsigned long mask[NSIG_BYTES / sizeof(long)];
      19  	/* Fetch first word of signal mask.  */
      20  	if (umove_or_printaddr(tcp, addr, &mask[0]))
      21  		return;
      22  
      23  	/* Fetch remaining words of signal mask, located immediately before.  */
      24  	addr -= sizeof(mask) - sizeof(long);
      25  	if (umoven_or_printaddr(tcp, addr, sizeof(mask) - sizeof(long), &mask[1]))
      26  		return;
      27  
      28  	tprintsigmask_addr(mask);
      29  }