mirror of git://sourceware.org/git/glibc.git
Include <sgidefs.h>. Use _ABIO32, _ABIN32 and _ABI64 for ABI selection
throughout.
This commit is contained in:
parent
56eb7d3add
commit
b8ddf7a11f
|
@ -32,6 +32,7 @@
|
|||
#error ENTRY_POINT needs to be defined for MIPS.
|
||||
#endif
|
||||
|
||||
#include <sgidefs.h>
|
||||
#include <sys/asm.h>
|
||||
|
||||
/* The offset of gp from GOT might be system-dependent. It's set by
|
||||
|
@ -74,10 +75,9 @@ do { if ((l)->l_info[DT_MIPS (RLD_MAP)]) \
|
|||
static inline int __attribute_used__
|
||||
elf_machine_matches_host (const ElfW(Ehdr) *ehdr)
|
||||
{
|
||||
#if _MIPS_SIM == _MIPS_SIM_ABI32 || _MIPS_SIM == _MIPS_SIM_NABI32
|
||||
#if _MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIN32
|
||||
/* Don't link o32 and n32 together. */
|
||||
if (((ehdr->e_flags & EF_MIPS_ABI2) != 0)
|
||||
!= (_MIPS_SIM != _MIPS_SIM_ABI32))
|
||||
if (((ehdr->e_flags & EF_MIPS_ABI2) != 0) != (_MIPS_SIM == _ABIN32))
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
|
@ -130,7 +130,7 @@ elf_machine_load_address (void)
|
|||
}
|
||||
|
||||
/* The MSB of got[1] of a gnu object is set to identify gnu objects. */
|
||||
#if _MIPS_SIM == _MIPS_SIM_ABI64
|
||||
#if _MIPS_SIM == _ABI64
|
||||
# define ELF_MIPS_GNU_GOT1_MASK 0x8000000000000000L
|
||||
#else
|
||||
# define ELF_MIPS_GNU_GOT1_MASK 0x80000000L
|
||||
|
@ -257,7 +257,7 @@ elf_machine_runtime_link_map (ElfW(Addr) gpreg, ElfW(Addr) stub_pc)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
||||
#if _MIPS_SIM == _ABIO32
|
||||
#define ELF_DL_FRAME_SIZE 40
|
||||
|
||||
#define ELF_DL_SAVE_ARG_REGS "\
|
||||
|
@ -278,7 +278,7 @@ elf_machine_runtime_link_map (ElfW(Addr) gpreg, ElfW(Addr) stub_pc)
|
|||
|
||||
#define IFABIO32(X) X
|
||||
|
||||
#else /* _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _MIPS_SIM_ABI64 */
|
||||
#else /* _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64 */
|
||||
|
||||
#define ELF_DL_FRAME_SIZE 80
|
||||
|
||||
|
@ -550,7 +550,7 @@ elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc,
|
|||
|
||||
switch (r_type)
|
||||
{
|
||||
#if _MIPS_SIM == _MIPS_SIM_ABI64
|
||||
#if _MIPS_SIM == _ABI64
|
||||
case (R_MIPS_64 << 8) | R_MIPS_REL32:
|
||||
#else
|
||||
case R_MIPS_REL32:
|
||||
|
@ -615,7 +615,7 @@ elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc,
|
|||
break;
|
||||
case R_MIPS_NONE: /* Alright, Wilbur. */
|
||||
break;
|
||||
#if _MIPS_SIM == _MIPS_SIM_ABI64
|
||||
#if _MIPS_SIM == _ABI64
|
||||
case R_MIPS_64:
|
||||
/* For full compliance with the ELF64 ABI, one must precede the
|
||||
_REL32/_64 pair of relocations with a _64 relocation, such
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Startup code compliant to the ELF Mips ABI.
|
||||
Copyright (C) 1995, 1997, 2000, 2001, 2002, 2003
|
||||
Copyright (C) 1995, 1997, 2000, 2001, 2002, 2003, 2004
|
||||
Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
|
@ -37,6 +37,7 @@
|
|||
|
||||
#define __ASSEMBLY__ 1
|
||||
#include <entry.h>
|
||||
#include <sgidefs.h>
|
||||
#include <sys/asm.h>
|
||||
|
||||
#ifndef ENTRY_POINT
|
||||
|
@ -93,12 +94,12 @@ ENTRY_POINT:
|
|||
on o32 and quad words (16 bytes) on n32 and n64. */
|
||||
|
||||
and $29, -2 * SZREG
|
||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
||||
#if _MIPS_SIM == _ABIO32
|
||||
PTR_SUBIU $29, 32
|
||||
#endif
|
||||
PTR_LA $7, __libc_csu_init /* init */
|
||||
PTR_LA $8, __libc_csu_fini
|
||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
||||
#if _MIPS_SIM == _ABIO32
|
||||
PTR_S $8, 16($29) /* fini */
|
||||
PTR_S $2, 20($29) /* rtld_fini */
|
||||
PTR_S $29, 24($29) /* stack_end */
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
02111-1307 USA. */
|
||||
|
||||
#include <setjmp.h>
|
||||
#include <sgidefs.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#undef __longjmp
|
||||
|
@ -39,7 +40,7 @@ __longjmp (env, val_arg)
|
|||
register int val asm ("a1");
|
||||
|
||||
/* Pull back the floating point callee-saved registers. */
|
||||
#if _MIPS_SIM == _MIPS_SIM_ABI64
|
||||
#if _MIPS_SIM == _ABI64
|
||||
asm volatile ("l.d $f24, %0" : : "m" (env[0].__fpregs[0]));
|
||||
asm volatile ("l.d $f25, %0" : : "m" (env[0].__fpregs[1]));
|
||||
asm volatile ("l.d $f26, %0" : : "m" (env[0].__fpregs[2]));
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. MIPS64 version.
|
||||
Copyright (C) 1996, 1997, 2000, 2002, 2003 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996, 1997, 2000, 2002, 2003, 2004
|
||||
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
|
||||
|
@ -21,6 +22,7 @@
|
|||
We cannot do it in C because it must be a tail-call, so frame-unwinding
|
||||
in setjmp doesn't clobber the state restored by longjmp. */
|
||||
|
||||
#include <sgidefs.h>
|
||||
#include <sysdep.h>
|
||||
#include <sys/asm.h>
|
||||
|
||||
|
@ -33,7 +35,7 @@ ENTRY (_setjmp)
|
|||
#endif
|
||||
SETUP_GP64 (v0, C_SYMBOL_NAME (_setjmp))
|
||||
PTR_LA t9, C_SYMBOL_NAME (__sigsetjmp)
|
||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
||||
#if _MIPS_SIM == _ABIO32
|
||||
nop
|
||||
#endif
|
||||
RESTORE_GP64
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. MIPS64 version.
|
||||
Copyright (C) 1996, 1997, 2002, 2003 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996, 1997, 2002, 2003, 2004 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
|
||||
|
@ -21,6 +21,7 @@
|
|||
We cannot do it in C because it must be a tail-call, so frame-unwinding
|
||||
in setjmp doesn't clobber the state restored by longjmp. */
|
||||
|
||||
#include <sgidefs.h>
|
||||
#include <sysdep.h>
|
||||
#include <sys/asm.h>
|
||||
|
||||
|
@ -33,7 +34,7 @@ ENTRY (setjmp)
|
|||
#endif
|
||||
SETUP_GP64 (v0, C_SYMBOL_NAME (setjmp))
|
||||
PTR_LA t9, C_SYMBOL_NAME (__sigsetjmp)
|
||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
||||
#if _MIPS_SIM == _ABIO32
|
||||
nop
|
||||
#endif
|
||||
RESTORE_GP64
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
/* Copyright (C) 1996, 1997, 2000, 2002, 2003 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1996, 1997, 2000, 2002, 2003, 2004
|
||||
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
|
||||
|
@ -16,6 +17,7 @@
|
|||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#include <sgidefs.h>
|
||||
#include <sysdep.h>
|
||||
#include <sys/asm.h>
|
||||
|
||||
|
@ -33,11 +35,11 @@ ENTRY (__sigsetjmp)
|
|||
move a2, sp
|
||||
move a3, fp
|
||||
PTR_LA t9, __sigsetjmp_aux
|
||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
||||
#if _MIPS_SIM == _ABIO32
|
||||
nop
|
||||
#endif
|
||||
RESTORE_GP64
|
||||
#if _MIPS_SIM != _MIPS_SIM_ABI32
|
||||
#if _MIPS_SIM != _ABIO32
|
||||
move a4, gp
|
||||
#endif
|
||||
jr t9
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
02111-1307 USA. */
|
||||
|
||||
#include <setjmp.h>
|
||||
#include <sgidefs.h>
|
||||
|
||||
/* This function is only called via the assembly language routine
|
||||
__sigsetjmp, which arranges to pass in the stack pointer and the frame
|
||||
|
@ -29,7 +30,7 @@ __sigsetjmp_aux (jmp_buf env, int savemask, long long sp, long long fp,
|
|||
long long gp)
|
||||
{
|
||||
/* Store the floating point callee-saved registers... */
|
||||
#if _MIPS_SIM == _MIPS_SIM_ABI64
|
||||
#if _MIPS_SIM == _ABI64
|
||||
asm volatile ("s.d $f24, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[0]));
|
||||
asm volatile ("s.d $f25, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[1]));
|
||||
asm volatile ("s.d $f26, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[2]));
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 1997, 1998, 2002, 2003 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1997, 1998, 2002, 2003, 2004 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ralf Baechle <ralf@gnu.org>.
|
||||
|
||||
|
@ -20,6 +20,8 @@
|
|||
#ifndef _SYS_REGDEF_H
|
||||
#define _SYS_REGDEF_H
|
||||
|
||||
#include <sgidefs.h>
|
||||
|
||||
/*
|
||||
* Symbolic register names for 32 bit ABI
|
||||
*/
|
||||
|
@ -31,7 +33,7 @@
|
|||
#define a1 $5
|
||||
#define a2 $6
|
||||
#define a3 $7
|
||||
#if _MIPS_SIM != _MIPS_SIM_ABI32
|
||||
#if _MIPS_SIM != _ABIO32
|
||||
#define a4 $8
|
||||
#define a5 $9
|
||||
#define a6 $10
|
||||
|
@ -44,7 +46,7 @@
|
|||
#define ta1 a5
|
||||
#define ta2 a6
|
||||
#define ta3 a7
|
||||
#else /* if _MIPS_SIM == _MIPS_SIM_ABI32 */
|
||||
#else /* if _MIPS_SIM == _ABIO32 */
|
||||
#define t0 $8 /* caller saved */
|
||||
#define t1 $9
|
||||
#define t2 $10
|
||||
|
@ -57,7 +59,7 @@
|
|||
#define ta1 t5
|
||||
#define ta2 t6
|
||||
#define ta3 t7
|
||||
#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
|
||||
#endif /* _MIPS_SIM == _ABIO32 */
|
||||
#define s0 $16 /* callee saved */
|
||||
#define s1 $17
|
||||
#define s2 $18
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 1998, 1999, 2002, 2003 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1998, 1999, 2002, 2003, 2004 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
|
||||
|
@ -22,10 +22,11 @@
|
|||
#define _SYS_UCONTEXT_H 1
|
||||
|
||||
#include <features.h>
|
||||
#include <sgidefs.h>
|
||||
#include <signal.h>
|
||||
|
||||
/* Type for general register. */
|
||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
||||
#if _MIPS_SIM == _ABIO32
|
||||
typedef __uint32_t greg_t;
|
||||
#else
|
||||
typedef __uint64_t greg_t;
|
||||
|
@ -119,7 +120,7 @@ typedef struct fpregset
|
|||
{
|
||||
union
|
||||
{
|
||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
||||
#if _MIPS_SIM == _ABIO32
|
||||
double fp_dregs[16];
|
||||
float fp_fregs[32];
|
||||
unsigned int fp_regs[32];
|
||||
|
@ -143,7 +144,7 @@ typedef struct
|
|||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
{
|
||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
||||
#if _MIPS_SIM == _ABIO32
|
||||
unsigned long int uc_flags;
|
||||
#else
|
||||
__uint64_t uc_flags;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 1992, 1995, 1997, 1999, 2000, 2002, 2003
|
||||
/* Copyright (C) 1992, 1995, 1997, 1999, 2000, 2002, 2003, 2004
|
||||
Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Brendan Kehoe (brendan@zen.org).
|
||||
|
@ -18,6 +18,7 @@
|
|||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#include <sgidefs.h>
|
||||
#include <sysdeps/unix/sysdep.h>
|
||||
|
||||
#ifdef __ASSEMBLER__
|
||||
|
@ -69,7 +70,7 @@
|
|||
/* The mips move insn is d,s. */
|
||||
#define MOVE(x,y) move y , x
|
||||
|
||||
#if _MIPS_SIM == _MIPS_SIM_ABI32 || _MIPS_SIM == _MIPS_SIM_ABIO64
|
||||
#if _MIPS_SIM == _ABIO32
|
||||
# define L(label) $L ## label
|
||||
#else
|
||||
# define L(label) .L ## label
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <sgidefs.h>
|
||||
#include <unistd.h>
|
||||
#include <endian.h>
|
||||
|
||||
|
@ -55,14 +56,14 @@ __libc_pread (fd, buf, count, offset)
|
|||
{
|
||||
ssize_t result;
|
||||
|
||||
#if _MIPS_SIM != _MIPS_SIM_ABI64
|
||||
#if _MIPS_SIM != _ABI64
|
||||
assert (sizeof (offset) == 4);
|
||||
#endif
|
||||
|
||||
if (SINGLE_THREAD_P)
|
||||
{
|
||||
/* First try the syscall. */
|
||||
#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _MIPS_SIM_ABI64
|
||||
#if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
|
||||
result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count,
|
||||
offset);
|
||||
#else
|
||||
|
@ -80,7 +81,7 @@ __libc_pread (fd, buf, count, offset)
|
|||
int oldtype = LIBC_CANCEL_ASYNC ();
|
||||
|
||||
/* First try the syscall. */
|
||||
#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM_ABI64
|
||||
#if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
|
||||
result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count, offset);
|
||||
#else
|
||||
result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
02111-1307 USA. */
|
||||
|
||||
#include <errno.h>
|
||||
#include <sgidefs.h>
|
||||
#include <unistd.h>
|
||||
#include <endian.h>
|
||||
|
||||
|
@ -58,7 +59,7 @@ __libc_pread64 (fd, buf, count, offset)
|
|||
if (SINGLE_THREAD_P)
|
||||
{
|
||||
/* First try the syscall. */
|
||||
#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _MIPS_SIM_ABI64
|
||||
#if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
|
||||
result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count,
|
||||
offset);
|
||||
#else
|
||||
|
@ -77,7 +78,7 @@ __libc_pread64 (fd, buf, count, offset)
|
|||
int oldtype = LIBC_CANCEL_ASYNC ();
|
||||
|
||||
/* First try the syscall. */
|
||||
#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _MIPS_SIM_ABI64
|
||||
#if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
|
||||
result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count, offset);
|
||||
#else
|
||||
result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
02111-1307 USA. */
|
||||
|
||||
#include <errno.h>
|
||||
#include <sgidefs.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/ptrace.h>
|
||||
#include <sys/user.h>
|
||||
|
@ -28,7 +29,7 @@
|
|||
#include <bp-checks.h>
|
||||
#include <sgidefs.h>
|
||||
|
||||
#if _MIPS_SIM == _MIPS_SIM_NABI32
|
||||
#if _MIPS_SIM == _ABIN32
|
||||
__extension__ typedef long long int reg_type;
|
||||
#else
|
||||
typedef long int reg_type;
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <sgidefs.h>
|
||||
#include <unistd.h>
|
||||
#include <endian.h>
|
||||
|
||||
|
@ -55,14 +56,14 @@ __libc_pwrite (fd, buf, count, offset)
|
|||
{
|
||||
ssize_t result;
|
||||
|
||||
#if _MIPS_SIM == _MIPS_SIM_ABI64
|
||||
#if _MIPS_SIM != _ABI64
|
||||
assert (sizeof (offset) == 4);
|
||||
#endif
|
||||
|
||||
if (SINGLE_THREAD_P)
|
||||
{
|
||||
/* First try the syscall. */
|
||||
#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _MIPS_SIM_ABI64
|
||||
#if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
|
||||
result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count,
|
||||
offset);
|
||||
#else
|
||||
|
@ -80,7 +81,7 @@ __libc_pwrite (fd, buf, count, offset)
|
|||
int oldtype = LIBC_CANCEL_ASYNC ();
|
||||
|
||||
/* First try the syscall. */
|
||||
#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _MIPS_SIM_ABI64
|
||||
#if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
|
||||
result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count, offset);
|
||||
#else
|
||||
result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
02111-1307 USA. */
|
||||
|
||||
#include <errno.h>
|
||||
#include <sgidefs.h>
|
||||
#include <unistd.h>
|
||||
#include <endian.h>
|
||||
|
||||
|
@ -54,7 +55,7 @@ __libc_pwrite64 (fd, buf, count, offset)
|
|||
if (SINGLE_THREAD_P)
|
||||
{
|
||||
/* First try the syscall. */
|
||||
#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _MIPS_SIM_ABI64
|
||||
#if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
|
||||
result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count,
|
||||
offset);
|
||||
#else
|
||||
|
@ -74,7 +75,7 @@ __libc_pwrite64 (fd, buf, count, offset)
|
|||
int oldtype = LIBC_CANCEL_ASYNC ();
|
||||
|
||||
/* First try the syscall. */
|
||||
#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _MIPS_SIM_ABI64
|
||||
#if _MIPS_SIM == _ABIN32 || _MIPS_SIM == _ABI64
|
||||
result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count, offset);
|
||||
#else
|
||||
result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
02111-1307 USA. */
|
||||
|
||||
#include <errno.h>
|
||||
#include <sgidefs.h>
|
||||
#include <signal.h>
|
||||
#include <string.h>
|
||||
|
||||
|
@ -40,7 +41,7 @@ int __libc_missing_rt_sigs;
|
|||
|
||||
#endif
|
||||
|
||||
#if _MIPS_SIM != _MIPS_SIM_ABI32
|
||||
#if _MIPS_SIM != _ABIO32
|
||||
|
||||
# ifdef __NR_rt_sigreturn
|
||||
static void restore_rt (void) asm ("__restore_rt");
|
||||
|
@ -82,7 +83,7 @@ __libc_sigaction (sig, act, oact)
|
|||
memcpy (&kact.sa_mask, &act->sa_mask, sizeof (kernel_sigset_t));
|
||||
kact.sa_flags = act->sa_flags;
|
||||
# ifdef HAVE_SA_RESTORER
|
||||
# if _MIPS_SIM == _MIPS_SIM_ABI32
|
||||
# if _MIPS_SIM == _ABIO32
|
||||
kact.sa_restorer = act->sa_restorer;
|
||||
# else
|
||||
kact.sa_restorer = &restore_rt;
|
||||
|
@ -140,7 +141,7 @@ __libc_sigaction (sig, act, oact)
|
|||
oact->sa_mask.__val[0] = k_osigact.sa_mask;
|
||||
oact->sa_flags = k_osigact.sa_flags;
|
||||
# ifdef HAVE_SA_RESTORER
|
||||
# if _MIPS_SIM == _MIPS_SIM_ABI32
|
||||
# if _MIPS_SIM == _ABIO32
|
||||
oact->sa_restorer = k_osigact.sa_restorer;
|
||||
# else
|
||||
oact->sa_restorer = &restore;
|
||||
|
@ -177,7 +178,7 @@ asm \
|
|||
);
|
||||
|
||||
/* The return code for realtime-signals. */
|
||||
#if _MIPS_SIM != _MIPS_SIM_ABI32
|
||||
#if _MIPS_SIM != _ABIO32
|
||||
# ifdef __NR_rt_sigreturn
|
||||
RESTORE (restore_rt, __NR_rt_sigreturn)
|
||||
# endif
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
used on Linux. */
|
||||
|
||||
#include <features.h>
|
||||
#include <sgidefs.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/user.h>
|
||||
|
@ -34,7 +35,7 @@
|
|||
#define ELF_NGREG 45
|
||||
#define ELF_NFPREG 33
|
||||
|
||||
#if _MIPS_SIM == _MIPS_SIM_NABI32
|
||||
#if _MIPS_SIM == _ABIN32
|
||||
__extension__ typedef unsigned long long elf_greg_t;
|
||||
#else
|
||||
typedef unsigned long elf_greg_t;
|
||||
|
@ -65,7 +66,7 @@ struct elf_prstatus
|
|||
{
|
||||
struct elf_siginfo pr_info; /* Info associated with signal. */
|
||||
short int pr_cursig; /* Current signal. */
|
||||
#if _MIPS_SIM == _MIPS_SIM_NABI32
|
||||
#if _MIPS_SIM == _ABIN32
|
||||
__extension__ unsigned long long int pr_sigpend;
|
||||
__extension__ unsigned long long int pr_sighold;
|
||||
#else
|
||||
|
@ -93,7 +94,7 @@ struct elf_prpsinfo
|
|||
char pr_sname; /* Char for pr_state. */
|
||||
char pr_zomb; /* Zombie. */
|
||||
char pr_nice; /* Nice val. */
|
||||
#if _MIPS_SIM == _MIPS_SIM_NABI32
|
||||
#if _MIPS_SIM == _ABIN32
|
||||
__extension__ unsigned long long int pr_flag;
|
||||
#else
|
||||
unsigned long int pr_flag; /* Flags. */
|
||||
|
|
|
@ -22,14 +22,13 @@
|
|||
#define _SYS_UCONTEXT_H 1
|
||||
|
||||
#include <features.h>
|
||||
#include <sgidefs.h>
|
||||
#include <signal.h>
|
||||
|
||||
/* We need the signal context definitions even if they are not used
|
||||
included in <signal.h>. */
|
||||
#include <bits/sigcontext.h>
|
||||
|
||||
#include <sgidefs.h>
|
||||
|
||||
/* Type for general register. Even in o32 we assume 64-bit registers,
|
||||
like the kernel. */
|
||||
__extension__ typedef unsigned long long int greg_t;
|
||||
|
@ -54,7 +53,7 @@ typedef struct fpregset {
|
|||
|
||||
|
||||
/* Context to describe whole processor state. */
|
||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
||||
#if _MIPS_SIM == _ABIO32
|
||||
/* Earlier versions of glibc for mips had an entirely different
|
||||
definition of mcontext_t, that didn't even resemble the
|
||||
corresponding kernel data structure. Since all legitimate uses of
|
||||
|
|
Loading…
Reference in New Issue