* sysdeps/mips/ldsodefs.h: New file.
[platform/upstream/glibc.git] / sysdeps / mips / ldsodefs.h
1 /* Run-time dynamic linker data structures for loaded ELF shared objects.
2    Copyright (C) 2006 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, write to the Free
17    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18    02111-1307 USA.  */
19
20 #ifndef __LDSODEFS_H \
21 #define _MIPS_LDSODEFS_H 1
22
23 #include <elf.h>
24
25 struct La_mips_32_regs;
26 struct La_mips_32_retval;
27 struct La_mips_64_regs;
28 struct La_mips_64_retval;
29
30 #define ARCH_PLTENTER_MEMBERS                                               \
31     Elf32_Addr (*mips_o32_gnu_pltenter) (Elf32_Sym *, unsigned int,         \
32                                          uintptr_t *, uintptr_t *,          \
33                                          const struct La_mips_32_regs *,    \
34                                          unsigned int *, const char *name,  \
35                                          long int *framesizep);             \
36     Elf32_Addr (*mips_n32_gnu_pltenter) (Elf32_Sym *, unsigned int,         \
37                                          uintptr_t *, uintptr_t *,          \
38                                          const struct La_mips_64_regs *,    \
39                                          unsigned int *, const char *name,  \
40                                          long int *framesizep);             \
41     Elf64_Addr (*mips_n64_gnu_pltenter) (Elf64_Sym *, unsigned int,         \
42                                          uintptr_t *, uintptr_t *,          \
43                                          const struct La_mips_64_regs *,    \
44                                          unsigned int *, const char *name,  \
45                                          long int *framesizep);
46
47 #define ARCH_PLTEXIT_MEMBERS                                                \
48     unsigned int (*mips_o32_gnu_pltexit) (Elf32_Sym *, unsigned int,        \
49                                           uintptr_t *, uintptr_t *,         \
50                                           const struct La_mips_32_regs *,   \
51                                           struct La_mips_32_retval *,       \
52                                           const char *);                    \
53     unsigned int (*mips_n32_gnu_pltexit) (Elf32_Sym *, unsigned int,        \
54                                           uintptr_t *, uintptr_t *,         \
55                                           const struct La_mips_64_regs *,   \
56                                           struct La_mips_64_retval *,       \
57                                           const char *);                    \
58     unsigned int (*mips_n64_gnu_pltexit) (Elf64_Sym *, unsigned int,        \
59                                           uintptr_t *, uintptr_t *,         \
60                                           const struct La_mips_64_regs *,   \
61                                           struct La_mips_64_retval *,       \
62                                           const char *);
63
64 #include_next <ldsodefs.h>
65
66 #endif