1 /* Run-time dynamic linker data structures for loaded ELF shared objects.
3 Copyright (C) 1995-2022 Free Software Foundation, Inc.
4 This file is part of the GNU C Library.
6 The GNU C Library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
11 The GNU C Library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
16 You should have received a copy of the GNU Lesser General Public
17 License along with the GNU C Library; if not, see
18 <https://www.gnu.org/licenses/>. */
20 #ifndef _X86_LDSODEFS_H
21 #define _X86_LDSODEFS_H 1
24 #include <cpu-features.h>
28 struct La_x86_64_regs
;
29 struct La_x86_64_retval
;
33 #define ARCH_PLTENTER_MEMBERS \
34 Elf32_Addr (*i86_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *, \
35 uintptr_t *, struct La_i86_regs *, \
36 unsigned int *, const char *name, \
37 long int *framesizep); \
38 Elf64_Addr (*x86_64_gnu_pltenter) (Elf64_Sym *, unsigned int, \
40 uintptr_t *, struct La_x86_64_regs *, \
41 unsigned int *, const char *name, \
42 long int *framesizep); \
43 Elf32_Addr (*x32_gnu_pltenter) (Elf32_Sym *, unsigned int, uintptr_t *, \
44 uintptr_t *, struct La_x32_regs *, \
45 unsigned int *, const char *name, \
48 #define ARCH_PLTEXIT_MEMBERS \
49 unsigned int (*i86_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *, \
50 uintptr_t *, const struct La_i86_regs *, \
51 struct La_i86_retval *, const char *); \
52 unsigned int (*x86_64_gnu_pltexit) (Elf64_Sym *, unsigned int, \
55 const struct La_x86_64_regs *, \
56 struct La_x86_64_retval *, \
58 unsigned int (*x32_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *, \
60 const struct La_x32_regs *, \
61 struct La_x86_64_retval *, \
64 #include <cet-control.h>
65 #include_next <ldsodefs.h>