1  /* System-specific settings for dynamic linker code.  i386 version.
       2     Copyright (C) 2002-2023 Free Software Foundation, Inc.
       3     This file is part of the GNU C Library.
       4  
       5     The GNU C Library is free software; you can redistribute it and/or
       6     modify it under the terms of the GNU Lesser General Public
       7     License as published by the Free Software Foundation; either
       8     version 2.1 of the License, or (at your option) any later version.
       9  
      10     The GNU C Library is distributed in the hope that it will be useful,
      11     but WITHOUT ANY WARRANTY; without even the implied warranty of
      12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      13     Lesser General Public License for more details.
      14  
      15     You should have received a copy of the GNU Lesser General Public
      16     License along with the GNU C Library; if not, see
      17     <https://www.gnu.org/licenses/>.  */
      18  
      19  #ifndef _LINUX_I386_DL_SYSDEP_H
      20  
      21  #include_next <dl-sysdep.h>
      22  
      23  /* Traditionally system calls have been made using int $0x80.  A
      24     second method was introduced which, if possible, will use the
      25     sysenter/syscall instructions.  To signal the presence and where to
      26     find the code the kernel passes an AT_SYSINFO value in the
      27     auxiliary vector to the application.  */
      28  #define NEED_DL_SYSINFO	1
      29  
      30  #ifndef __ASSEMBLER__
      31  extern void _dl_sysinfo_int80 (void) attribute_hidden;
      32  # define DL_SYSINFO_DEFAULT (uintptr_t) _dl_sysinfo_int80
      33  # define DL_SYSINFO_IMPLEMENTATION \
      34    asm (".text\n\t"							      \
      35         ".type _dl_sysinfo_int80,@function\n\t"				      \
      36         ".hidden _dl_sysinfo_int80\n"					      \
      37         CFI_STARTPROC "\n"						      \
      38         "_dl_sysinfo_int80:\n\t"						      \
      39         "int $0x80;\n\t"							      \
      40         "ret;\n\t"							      \
      41         CFI_ENDPROC "\n"							      \
      42         ".size _dl_sysinfo_int80,.-_dl_sysinfo_int80\n\t"		      \
      43         ".previous");
      44  #endif
      45  
      46  #endif	/* dl-sysdep.h */