(root)/
strace-6.5/
tests-mx32/
oldselect.c
       1  /*
       2   * Copyright (c) 2015-2018 Dmitry V. Levin <ldv@strace.io>
       3   * Copyright (c) 2015-2021 The strace developers.
       4   * All rights reserved.
       5   *
       6   * SPDX-License-Identifier: GPL-2.0-or-later
       7   */
       8  
       9  #include "tests.h"
      10  #include "scno.h"
      11  
      12  #if defined __NR_select && defined __NR__newselect \
      13   && __NR_select != __NR__newselect \
      14   && !defined __sparc__
      15  
      16  # define TEST_SYSCALL_NR __NR_select
      17  # define TEST_SYSCALL_STR "select"
      18  # define xselect xselect
      19  # include "xselect.c"
      20  
      21  static uint32_t *args;
      22  
      23  static long
      24  xselect(const kernel_ulong_t nfds,
      25  	const kernel_ulong_t rs,
      26  	const kernel_ulong_t ws,
      27  	const kernel_ulong_t es,
      28  	const kernel_ulong_t tv)
      29  {
      30  	if (!args)
      31  		args = tail_alloc(sizeof(*args) * 5);
      32  	args[0] = nfds;
      33  	args[1] = rs;
      34  	args[2] = ws;
      35  	args[3] = es;
      36  	args[4] = tv;
      37  	long rc = syscall(TEST_SYSCALL_NR, args);
      38  	errstr = sprintrc(rc);
      39  	return rc;
      40  }
      41  
      42  #else
      43  
      44  SKIP_MAIN_UNDEFINED("__NR_select && __NR__newselect"
      45  		    " && __NR_select != __NR__newselect"
      46  		    " && !defined __sparc__")
      47  
      48  #endif