(root)/
strace-6.5/
src/
linux/
sparc/
set_error.c
       1  /*
       2   * Copyright (c) 2016-2021 The strace developers.
       3   * All rights reserved.
       4   *
       5   * SPDX-License-Identifier: LGPL-2.1-or-later
       6   */
       7  
       8  static int
       9  sparc_set_o0_psr(struct tcb *tcp, const unsigned long o0,
      10  		 const unsigned long psr_set, const unsigned long psr_clear)
      11  {
      12  	sparc_regs.u_regs[U_REG_O0] = o0;
      13  	sparc_regs.psr |= psr_set;
      14  	sparc_regs.psr &= ~psr_clear;
      15  	return set_regs(tcp->pid);
      16  }
      17  
      18  static int
      19  arch_set_error(struct tcb *tcp)
      20  {
      21  	return sparc_set_o0_psr(tcp, tcp->u_error, PSR_C, 0);
      22  }
      23  
      24  static int
      25  arch_set_success(struct tcb *tcp)
      26  {
      27  	return sparc_set_o0_psr(tcp, tcp->u_rval, 0, PSR_C);
      28  }