* sysdeps/mips/ldsodefs.h: New file.
authorDaniel Jacobowitz <dan@codesourcery.com>
Mon, 8 May 2006 19:19:56 +0000 (19:19 +0000)
committerDaniel Jacobowitz <dan@codesourcery.com>
Mon, 8 May 2006 19:19:56 +0000 (19:19 +0000)
* sysdeps/mips/tst-audit.h: New file.

ChangeLog.mips
sysdeps/mips/ldsodefs.h [new file with mode: 0644]
sysdeps/mips/tst-audit.h [new file with mode: 0644]

index 015c86f..ba14421 100644 (file)
@@ -1,3 +1,8 @@
+2006-05-08  Richard Sandiford  <richard@codesourcery.com>
+
+       * sysdeps/mips/ldsodefs.h: New file.
+       * sysdeps/mips/tst-audit.h: New file.
+
 2006-05-05  Daniel Jacobowitz  <dan@codesourcery.com>
 
        * sysdeps/unix/sysv/linux/mips/bits/mman.h: Formatting changes
diff --git a/sysdeps/mips/ldsodefs.h b/sysdeps/mips/ldsodefs.h
new file mode 100644 (file)
index 0000000..876f1c3
--- /dev/null
@@ -0,0 +1,66 @@
+/* Run-time dynamic linker data structures for loaded ELF shared objects.
+   Copyright (C) 2006 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef __LDSODEFS_H \
+#define _MIPS_LDSODEFS_H 1
+
+#include <elf.h>
+
+struct La_mips_32_regs;
+struct La_mips_32_retval;
+struct La_mips_64_regs;
+struct La_mips_64_retval;
+
+#define ARCH_PLTENTER_MEMBERS                                              \
+    Elf32_Addr (*mips_o32_gnu_pltenter) (Elf32_Sym *, unsigned int,        \
+                                        uintptr_t *, uintptr_t *,          \
+                                        const struct La_mips_32_regs *,    \
+                                        unsigned int *, const char *name,  \
+                                        long int *framesizep);             \
+    Elf32_Addr (*mips_n32_gnu_pltenter) (Elf32_Sym *, unsigned int,        \
+                                        uintptr_t *, uintptr_t *,          \
+                                        const struct La_mips_64_regs *,    \
+                                        unsigned int *, const char *name,  \
+                                        long int *framesizep);             \
+    Elf64_Addr (*mips_n64_gnu_pltenter) (Elf64_Sym *, unsigned int,        \
+                                        uintptr_t *, uintptr_t *,          \
+                                        const struct La_mips_64_regs *,    \
+                                        unsigned int *, const char *name,  \
+                                        long int *framesizep);
+
+#define ARCH_PLTEXIT_MEMBERS                                               \
+    unsigned int (*mips_o32_gnu_pltexit) (Elf32_Sym *, unsigned int,       \
+                                         uintptr_t *, uintptr_t *,         \
+                                         const struct La_mips_32_regs *,   \
+                                         struct La_mips_32_retval *,       \
+                                         const char *);                    \
+    unsigned int (*mips_n32_gnu_pltexit) (Elf32_Sym *, unsigned int,       \
+                                         uintptr_t *, uintptr_t *,         \
+                                         const struct La_mips_64_regs *,   \
+                                         struct La_mips_64_retval *,       \
+                                         const char *);                    \
+    unsigned int (*mips_n64_gnu_pltexit) (Elf64_Sym *, unsigned int,       \
+                                         uintptr_t *, uintptr_t *,         \
+                                         const struct La_mips_64_regs *,   \
+                                         struct La_mips_64_retval *,       \
+                                         const char *);
+
+#include_next <ldsodefs.h>
+
+#endif
diff --git a/sysdeps/mips/tst-audit.h b/sysdeps/mips/tst-audit.h
new file mode 100644 (file)
index 0000000..cafa3eb
--- /dev/null
@@ -0,0 +1,40 @@
+/* Definitions for testing PLT entry/exit auditing.  ARM version.
+
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <sgidefs.h>
+
+#if _MIPS_SIM == _ABIO32
+#define pltenter la_mips_o32_gnu_pltenter
+#define pltexit la_mips_o32_gnu_pltexit
+#define La_regs La_mips_32_regs
+#define La_retval La_mips_32_retval
+#else
+#if _MIPS_SIM == _ABIN32
+#define pltenter la_mips_n32_gnu_pltenter
+#define pltexit la_mips_n32_gnu_pltexit
+#else
+#define pltenter la_mips_n64_gnu_pltenter
+#define pltexit la_mips_n64_gnu_pltexit
+#endif
+#define La_regs La_mips_64_regs
+#define La_retval La_mips_64_retval
+#endif
+#define int_retval lrv_v0