(root)/
strace-6.5/
src/
linux/
ia64/
raw_syscall.h
       1  /*
       2   * Raw syscalls.
       3   *
       4   * Copyright (c) 2018-2021 The strace developers.
       5   * All rights reserved.
       6   *
       7   * SPDX-License-Identifier: LGPL-2.1-or-later
       8   */
       9  
      10  #ifndef STRACE_RAW_SYSCALL_H
      11  # define STRACE_RAW_SYSCALL_H
      12  
      13  # include "kernel_types.h"
      14  
      15  static inline kernel_ulong_t
      16  raw_syscall_0(const kernel_ulong_t nr, kernel_ulong_t *err)
      17  {
      18  	register kernel_ulong_t r15 __asm__("r15") = nr;
      19  	register kernel_ulong_t r8 __asm__("r8");
      20  	register kernel_ulong_t r10 __asm__("r10");
      21  	__asm__ __volatile__("break 0x100000"
      22  			     : "=r"(r8), "=r"(r10), "+r"(r15)
      23  			     :
      24  			     : "memory", "out0", "out1", "out2",
      25  			       "out3", "out4", "out5", "out6", "out7",
      26  			       "r2", "r3", "r9", "r11", "r13",
      27  			       "r14", "r16", "r17", "r18", "r19", "r20",
      28  			       "r21", "r22", "r23", "r24", "r25", "r26",
      29  			       "r27", "r28", "r29", "r30", "r31",
      30  			       "p6", "p7", "p8", "p9", "p10",
      31  			       "p11", "p12", "p13", "p14", "p15",
      32  			       "f6", "f7", "f8", "f9", "f10",
      33  			       "f11", "f12", "f13", "f14", "f15",
      34  			       "f5", "f6", "f7", "f8", "f9", "f10", "f11",
      35  			       "b6", "b7");
      36  	*err = !!r10;
      37  	return r8;
      38  }
      39  # define raw_syscall_0 raw_syscall_0
      40  
      41  #endif /* !STRACE_RAW_SYSCALL_H */