mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-22 19:00:07 +00:00
Update.
2004-11-05 Maciej W. Rozycki <macro@mips.com> * sysdeps/mips/dl-machine.h: Include <sgidefs.h>. Use _ABIO32, _ABIN32 and _ABI64 for ABI selection throughout. * sysdeps/mips/elf/start.S: Likewise. * sysdeps/mips/mips64/__longjmp.c: Likewise. * sysdeps/mips/mips64/bsd-_setjmp.S: Likewise. * sysdeps/mips/mips64/bsd-setjmp.S: Likewise. * sysdeps/mips/mips64/setjmp.S: Likewise. * sysdeps/mips/mips64/setjmp_aux.c: Likewise. * sysdeps/mips/sys/regdef.h: Likewise. * sysdeps/mips/sys/ucontext.h: Likewise. * sysdeps/unix/mips/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/kernel-features.h: Likewise. * sysdeps/unix/sysv/linux/mips/pread.c: Likewise. * sysdeps/unix/sysv/linux/mips/pread64.c: Likewise. * sysdeps/unix/sysv/linux/mips/ptrace.c: Likewise. * sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/mips/sigaction.c: Likewise. * sysdeps/unix/sysv/linux/mips/sys/procfs.h: Likewise. * sysdeps/unix/sysv/linux/mips/sys/ucontext.h: Likewise. * sysdeps/mips/atomicity.h: Use _ABIO32, _ABIN32 and _ABI64 for ABI selection throughout. * sysdeps/mips/bits/setjmp.h: Likewise. * sysdeps/mips/fpu/bits/mathdef.h: Likewise. * sysdeps/mips/machine-gmon.h: Likewise. * sysdeps/mips/sys/asm.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/sigcontext.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/stat.h: Likewise. * sysdeps/unix/sysv/linux/mips/kernel_stat.h: Likewise. * sysdeps/unix/sysv/linux/mips/sigcontextinfo.h: Likewise. * sysdeps/unix/sysv/linux/mips/sys/ptrace.h: Likewise. * sysdeps/unix/sysv/linux/mips/sys/tas.h: Likewise. * sysdeps/unix/sysv/linux/mips/sys/user.h: Likewise. * sysdeps/mips/sgidefs.h: Prevent <asm/sgidefs.h> from being included by kernel headers and undo its settings if already included. Define _ABIO32, _ABIN32 and _ABI64 if missing and use them to define _MIPS_SIM_ABI32, _MIPS_SIM_NABI32 and _MIPS_SIM_ABI64 for compatibility. * sysdeps/unix/sysv/linux/mips/Makefile: Use _ABIO32, _ABIN32 and _ABI64 for ABI selection in generated syscall-list.h * sysdeps/unix/sysv/linux/mips/configure.in: Use _ABIO32, _ABIN32 and _ABI64 for ABI selection in generated asm-unistd.h. * sysdeps/unix/sysv/linux/mips/configure: Regenerate. * sysdeps/unix/sysv/linux/mips/pwrite.c (__libc_pwrite): Correct an inverted _MIPS_SIM conditional.
This commit is contained in:
parent
cdb7b96289
commit
c997e9d40e
52
ChangeLog
52
ChangeLog
@ -1,3 +1,55 @@
|
|||||||
|
2004-11-05 Maciej W. Rozycki <macro@mips.com>
|
||||||
|
|
||||||
|
* sysdeps/mips/dl-machine.h: Include <sgidefs.h>. Use _ABIO32,
|
||||||
|
_ABIN32 and _ABI64 for ABI selection throughout.
|
||||||
|
* sysdeps/mips/elf/start.S: Likewise.
|
||||||
|
* sysdeps/mips/mips64/__longjmp.c: Likewise.
|
||||||
|
* sysdeps/mips/mips64/bsd-_setjmp.S: Likewise.
|
||||||
|
* sysdeps/mips/mips64/bsd-setjmp.S: Likewise.
|
||||||
|
* sysdeps/mips/mips64/setjmp.S: Likewise.
|
||||||
|
* sysdeps/mips/mips64/setjmp_aux.c: Likewise.
|
||||||
|
* sysdeps/mips/sys/regdef.h: Likewise.
|
||||||
|
* sysdeps/mips/sys/ucontext.h: Likewise.
|
||||||
|
* sysdeps/unix/mips/sysdep.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/kernel-features.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/pread.c: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/pread64.c: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/ptrace.c: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/sigaction.c: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/sys/procfs.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/sys/ucontext.h: Likewise.
|
||||||
|
|
||||||
|
* sysdeps/mips/atomicity.h: Use _ABIO32, _ABIN32 and _ABI64 for
|
||||||
|
ABI selection throughout.
|
||||||
|
* sysdeps/mips/bits/setjmp.h: Likewise.
|
||||||
|
* sysdeps/mips/fpu/bits/mathdef.h: Likewise.
|
||||||
|
* sysdeps/mips/machine-gmon.h: Likewise.
|
||||||
|
* sysdeps/mips/sys/asm.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/bits/sigcontext.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/bits/stat.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/kernel_stat.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/sigcontextinfo.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/sys/ptrace.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/sys/tas.h: Likewise.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/sys/user.h: Likewise.
|
||||||
|
|
||||||
|
* sysdeps/mips/sgidefs.h: Prevent <asm/sgidefs.h> from being
|
||||||
|
included by kernel headers and undo its settings if already
|
||||||
|
included. Define _ABIO32, _ABIN32 and _ABI64 if missing and use
|
||||||
|
them to define _MIPS_SIM_ABI32, _MIPS_SIM_NABI32 and
|
||||||
|
_MIPS_SIM_ABI64 for compatibility.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/Makefile: Use _ABIO32, _ABIN32 and
|
||||||
|
_ABI64 for ABI selection in generated syscall-list.h
|
||||||
|
* sysdeps/unix/sysv/linux/mips/configure.in: Use _ABIO32, _ABIN32
|
||||||
|
and _ABI64 for ABI selection in generated asm-unistd.h.
|
||||||
|
* sysdeps/unix/sysv/linux/mips/configure: Regenerate.
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/mips/pwrite.c (__libc_pwrite): Correct
|
||||||
|
an inverted _MIPS_SIM conditional.
|
||||||
|
|
||||||
2004-11-23 Alexandre Oliva <aoliva@redhat.com>
|
2004-11-23 Alexandre Oliva <aoliva@redhat.com>
|
||||||
|
|
||||||
* sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): Use free
|
* sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): Use free
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
2004-11-05 Maciej W. Rozycki <macro@mips.com>
|
||||||
|
|
||||||
|
* sysdeps/mips/pspinlock.c: Include <sgidefs.h>. Use _ABIO32,
|
||||||
|
_ABIN32 and _ABI64 for ABI selection throughout.
|
||||||
|
* sysdeps/mips/pt-machine.h: Use _ABIO32, _ABIN32 and _ABI64 for
|
||||||
|
ABI selection throughout.
|
||||||
|
|
||||||
2004-10-18 Roland McGrath <roland@redhat.com>
|
2004-10-18 Roland McGrath <roland@redhat.com>
|
||||||
|
|
||||||
[BZ #406]
|
[BZ #406]
|
||||||
|
@ -33,7 +33,7 @@ exchange_and_add (volatile uint32_t *mem, int val)
|
|||||||
("/* Inline exchange & add */\n"
|
("/* Inline exchange & add */\n"
|
||||||
"1:\n\t"
|
"1:\n\t"
|
||||||
".set push\n\t"
|
".set push\n\t"
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
#if _MIPS_SIM == _ABIO32
|
||||||
".set mips2\n\t"
|
".set mips2\n\t"
|
||||||
#endif
|
#endif
|
||||||
"ll %0,%3\n\t"
|
"ll %0,%3\n\t"
|
||||||
@ -59,7 +59,7 @@ atomic_add (volatile uint32_t *mem, int val)
|
|||||||
("/* Inline atomic add */\n"
|
("/* Inline atomic add */\n"
|
||||||
"1:\n\t"
|
"1:\n\t"
|
||||||
".set push\n\t"
|
".set push\n\t"
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
#if _MIPS_SIM == _ABIO32
|
||||||
".set mips2\n\t"
|
".set mips2\n\t"
|
||||||
#endif
|
#endif
|
||||||
"ll %0,%2\n\t"
|
"ll %0,%2\n\t"
|
||||||
@ -83,10 +83,10 @@ compare_and_swap (volatile long int *p, long int oldval, long int newval)
|
|||||||
("/* Inline compare & swap */\n"
|
("/* Inline compare & swap */\n"
|
||||||
"1:\n\t"
|
"1:\n\t"
|
||||||
".set push\n\t"
|
".set push\n\t"
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
#if _MIPS_SIM == _ABIO32
|
||||||
".set mips2\n\t"
|
".set mips2\n\t"
|
||||||
#endif
|
#endif
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI64
|
#if _MIPS_SIM == _ABI64
|
||||||
"lld %1,%5\n\t"
|
"lld %1,%5\n\t"
|
||||||
#else
|
#else
|
||||||
"ll %1,%5\n\t"
|
"ll %1,%5\n\t"
|
||||||
@ -94,7 +94,7 @@ compare_and_swap (volatile long int *p, long int oldval, long int newval)
|
|||||||
"move %0,$0\n\t"
|
"move %0,$0\n\t"
|
||||||
"bne %1,%3,2f\n\t"
|
"bne %1,%3,2f\n\t"
|
||||||
"move %0,%4\n\t"
|
"move %0,%4\n\t"
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI64
|
#if _MIPS_SIM == _ABI64
|
||||||
"scd %0,%2\n\t"
|
"scd %0,%2\n\t"
|
||||||
#else
|
#else
|
||||||
"sc %0,%2\n\t"
|
"sc %0,%2\n\t"
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
#if _MIPS_SIM == _ABIO32
|
||||||
/* Program counter. */
|
/* Program counter. */
|
||||||
__ptr_t __pc;
|
__ptr_t __pc;
|
||||||
|
|
||||||
@ -62,7 +62,7 @@ typedef struct
|
|||||||
int __fpc_csr;
|
int __fpc_csr;
|
||||||
|
|
||||||
/* Callee-saved floating point registers. */
|
/* Callee-saved floating point registers. */
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI64
|
#if _MIPS_SIM == _ABI64
|
||||||
double __fpregs[8];
|
double __fpregs[8];
|
||||||
#else
|
#else
|
||||||
double __fpregs[6];
|
double __fpregs[6];
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
#error ENTRY_POINT needs to be defined for MIPS.
|
#error ENTRY_POINT needs to be defined for MIPS.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <sgidefs.h>
|
||||||
#include <sys/asm.h>
|
#include <sys/asm.h>
|
||||||
|
|
||||||
/* The offset of gp from GOT might be system-dependent. It's set by
|
/* 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__
|
static inline int __attribute_used__
|
||||||
elf_machine_matches_host (const ElfW(Ehdr) *ehdr)
|
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. */
|
/* Don't link o32 and n32 together. */
|
||||||
if (((ehdr->e_flags & EF_MIPS_ABI2) != 0)
|
if (((ehdr->e_flags & EF_MIPS_ABI2) != 0) != (_MIPS_SIM == _ABIN32))
|
||||||
!= (_MIPS_SIM != _MIPS_SIM_ABI32))
|
|
||||||
return 0;
|
return 0;
|
||||||
#endif
|
#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. */
|
/* 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
|
# define ELF_MIPS_GNU_GOT1_MASK 0x8000000000000000L
|
||||||
#else
|
#else
|
||||||
# define ELF_MIPS_GNU_GOT1_MASK 0x80000000L
|
# 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;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
#if _MIPS_SIM == _ABIO32
|
||||||
#define ELF_DL_FRAME_SIZE 40
|
#define ELF_DL_FRAME_SIZE 40
|
||||||
|
|
||||||
#define ELF_DL_SAVE_ARG_REGS "\
|
#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
|
#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
|
#define ELF_DL_FRAME_SIZE 80
|
||||||
|
|
||||||
@ -550,7 +550,7 @@ elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc,
|
|||||||
|
|
||||||
switch (r_type)
|
switch (r_type)
|
||||||
{
|
{
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI64
|
#if _MIPS_SIM == _ABI64
|
||||||
case (R_MIPS_64 << 8) | R_MIPS_REL32:
|
case (R_MIPS_64 << 8) | R_MIPS_REL32:
|
||||||
#else
|
#else
|
||||||
case R_MIPS_REL32:
|
case R_MIPS_REL32:
|
||||||
@ -615,7 +615,7 @@ elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc,
|
|||||||
break;
|
break;
|
||||||
case R_MIPS_NONE: /* Alright, Wilbur. */
|
case R_MIPS_NONE: /* Alright, Wilbur. */
|
||||||
break;
|
break;
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI64
|
#if _MIPS_SIM == _ABI64
|
||||||
case R_MIPS_64:
|
case R_MIPS_64:
|
||||||
/* For full compliance with the ELF64 ABI, one must precede the
|
/* For full compliance with the ELF64 ABI, one must precede the
|
||||||
_REL32/_64 pair of relocations with a _64 relocation, such
|
_REL32/_64 pair of relocations with a _64 relocation, such
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Startup code compliant to the ELF Mips ABI.
|
/* 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.
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
@ -37,6 +37,7 @@
|
|||||||
|
|
||||||
#define __ASSEMBLY__ 1
|
#define __ASSEMBLY__ 1
|
||||||
#include <entry.h>
|
#include <entry.h>
|
||||||
|
#include <sgidefs.h>
|
||||||
#include <sys/asm.h>
|
#include <sys/asm.h>
|
||||||
|
|
||||||
#ifndef ENTRY_POINT
|
#ifndef ENTRY_POINT
|
||||||
@ -93,12 +94,12 @@ ENTRY_POINT:
|
|||||||
on o32 and quad words (16 bytes) on n32 and n64. */
|
on o32 and quad words (16 bytes) on n32 and n64. */
|
||||||
|
|
||||||
and $29, -2 * SZREG
|
and $29, -2 * SZREG
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
#if _MIPS_SIM == _ABIO32
|
||||||
PTR_SUBIU $29, 32
|
PTR_SUBIU $29, 32
|
||||||
#endif
|
#endif
|
||||||
PTR_LA $7, __libc_csu_init /* init */
|
PTR_LA $7, __libc_csu_init /* init */
|
||||||
PTR_LA $8, __libc_csu_fini
|
PTR_LA $8, __libc_csu_fini
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
#if _MIPS_SIM == _ABIO32
|
||||||
PTR_S $8, 16($29) /* fini */
|
PTR_S $8, 16($29) /* fini */
|
||||||
PTR_S $2, 20($29) /* rtld_fini */
|
PTR_S $2, 20($29) /* rtld_fini */
|
||||||
PTR_S $29, 24($29) /* stack_end */
|
PTR_S $29, 24($29) /* stack_end */
|
||||||
|
@ -39,7 +39,7 @@ typedef double double_t; /* `double' expressions are evaluated as
|
|||||||
|
|
||||||
#endif /* ISO C99 */
|
#endif /* ISO C99 */
|
||||||
|
|
||||||
#if ! defined __NO_LONG_DOUBLE_MATH && _MIPS_SIM == _MIPS_SIM_ABI32
|
#if ! defined __NO_LONG_DOUBLE_MATH && _MIPS_SIM == _ABIO32
|
||||||
/* Signal that we do not really have a `long double'. This disables the
|
/* Signal that we do not really have a `long double'. This disables the
|
||||||
declaration of all the `long double' function variants. */
|
declaration of all the `long double' function variants. */
|
||||||
# define __NO_LONG_DOUBLE_MATH 1
|
# define __NO_LONG_DOUBLE_MATH 1
|
||||||
|
@ -26,7 +26,7 @@ static void __attribute_used__ __mcount (u_long frompc, u_long selfpc)
|
|||||||
/* Call __mcount with the return PC for our caller,
|
/* Call __mcount with the return PC for our caller,
|
||||||
and the return PC our caller will return to. */
|
and the return PC our caller will return to. */
|
||||||
|
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
#if _MIPS_SIM == _ABIO32
|
||||||
|
|
||||||
#ifdef __PIC__
|
#ifdef __PIC__
|
||||||
# define CPLOAD ".cpload $25;"
|
# define CPLOAD ".cpload $25;"
|
||||||
@ -83,10 +83,10 @@ static void __attribute_used__ __mcount (u_long frompc, u_long selfpc)
|
|||||||
# define CPRETURN
|
# define CPRETURN
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if _MIPS_SIM == _MIPS_SIM_NABI32
|
#if _MIPS_SIM == _ABIN32
|
||||||
# define PTR_ADDU_STRING "add" /* no u */
|
# define PTR_ADDU_STRING "add" /* no u */
|
||||||
# define PTR_SUBU_STRING "sub" /* no u */
|
# define PTR_SUBU_STRING "sub" /* no u */
|
||||||
#elif _MIPS_SIM == _MIPS_SIM_ABI64
|
#elif _MIPS_SIM == _ABI64
|
||||||
# define PTR_ADDU_STRING "daddu"
|
# define PTR_ADDU_STRING "daddu"
|
||||||
# define PTR_SUBU_STRING "dsubu"
|
# define PTR_SUBU_STRING "dsubu"
|
||||||
#else
|
#else
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
02111-1307 USA. */
|
02111-1307 USA. */
|
||||||
|
|
||||||
#include <setjmp.h>
|
#include <setjmp.h>
|
||||||
|
#include <sgidefs.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#undef __longjmp
|
#undef __longjmp
|
||||||
@ -39,7 +40,7 @@ __longjmp (env, val_arg)
|
|||||||
register int val asm ("a1");
|
register int val asm ("a1");
|
||||||
|
|
||||||
/* Pull back the floating point callee-saved registers. */
|
/* 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 $f24, %0" : : "m" (env[0].__fpregs[0]));
|
||||||
asm volatile ("l.d $f25, %0" : : "m" (env[0].__fpregs[1]));
|
asm volatile ("l.d $f25, %0" : : "m" (env[0].__fpregs[1]));
|
||||||
asm volatile ("l.d $f26, %0" : : "m" (env[0].__fpregs[2]));
|
asm volatile ("l.d $f26, %0" : : "m" (env[0].__fpregs[2]));
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. MIPS64 version.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
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
|
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. */
|
in setjmp doesn't clobber the state restored by longjmp. */
|
||||||
|
|
||||||
|
#include <sgidefs.h>
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
#include <sys/asm.h>
|
#include <sys/asm.h>
|
||||||
|
|
||||||
@ -33,7 +35,7 @@ ENTRY (_setjmp)
|
|||||||
#endif
|
#endif
|
||||||
SETUP_GP64 (v0, C_SYMBOL_NAME (_setjmp))
|
SETUP_GP64 (v0, C_SYMBOL_NAME (_setjmp))
|
||||||
PTR_LA t9, C_SYMBOL_NAME (__sigsetjmp)
|
PTR_LA t9, C_SYMBOL_NAME (__sigsetjmp)
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
#if _MIPS_SIM == _ABIO32
|
||||||
nop
|
nop
|
||||||
#endif
|
#endif
|
||||||
RESTORE_GP64
|
RESTORE_GP64
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. MIPS64 version.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
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
|
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. */
|
in setjmp doesn't clobber the state restored by longjmp. */
|
||||||
|
|
||||||
|
#include <sgidefs.h>
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
#include <sys/asm.h>
|
#include <sys/asm.h>
|
||||||
|
|
||||||
@ -33,7 +34,7 @@ ENTRY (setjmp)
|
|||||||
#endif
|
#endif
|
||||||
SETUP_GP64 (v0, C_SYMBOL_NAME (setjmp))
|
SETUP_GP64 (v0, C_SYMBOL_NAME (setjmp))
|
||||||
PTR_LA t9, C_SYMBOL_NAME (__sigsetjmp)
|
PTR_LA t9, C_SYMBOL_NAME (__sigsetjmp)
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
#if _MIPS_SIM == _ABIO32
|
||||||
nop
|
nop
|
||||||
#endif
|
#endif
|
||||||
RESTORE_GP64
|
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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
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
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
02111-1307 USA. */
|
02111-1307 USA. */
|
||||||
|
|
||||||
|
#include <sgidefs.h>
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
#include <sys/asm.h>
|
#include <sys/asm.h>
|
||||||
|
|
||||||
@ -33,11 +35,11 @@ ENTRY (__sigsetjmp)
|
|||||||
move a2, sp
|
move a2, sp
|
||||||
move a3, fp
|
move a3, fp
|
||||||
PTR_LA t9, __sigsetjmp_aux
|
PTR_LA t9, __sigsetjmp_aux
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
#if _MIPS_SIM == _ABIO32
|
||||||
nop
|
nop
|
||||||
#endif
|
#endif
|
||||||
RESTORE_GP64
|
RESTORE_GP64
|
||||||
#if _MIPS_SIM != _MIPS_SIM_ABI32
|
#if _MIPS_SIM != _ABIO32
|
||||||
move a4, gp
|
move a4, gp
|
||||||
#endif
|
#endif
|
||||||
jr t9
|
jr t9
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
02111-1307 USA. */
|
02111-1307 USA. */
|
||||||
|
|
||||||
#include <setjmp.h>
|
#include <setjmp.h>
|
||||||
|
#include <sgidefs.h>
|
||||||
|
|
||||||
/* This function is only called via the assembly language routine
|
/* This function is only called via the assembly language routine
|
||||||
__sigsetjmp, which arranges to pass in the stack pointer and the frame
|
__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)
|
long long gp)
|
||||||
{
|
{
|
||||||
/* Store the floating point callee-saved registers... */
|
/* 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 $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 $f25, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[1]));
|
||||||
asm volatile ("s.d $f26, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[2]));
|
asm volatile ("s.d $f26, %0" : : "m" (env[0].__jmpbuf[0].__fpregs[2]));
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1996, 1997, 1998, 2003 Free Software Foundation, Inc.
|
/* Copyright (C) 1996, 1997, 1998, 2003, 2004 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ralf Baechle <ralf@gnu.org>.
|
Contributed by Ralf Baechle <ralf@gnu.org>.
|
||||||
|
|
||||||
@ -20,6 +20,27 @@
|
|||||||
#ifndef _SGIDEFS_H
|
#ifndef _SGIDEFS_H
|
||||||
#define _SGIDEFS_H 1
|
#define _SGIDEFS_H 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
* A crude hack to stop <asm/sgidefs.h>
|
||||||
|
*/
|
||||||
|
#undef __ASM_SGIDEFS_H
|
||||||
|
#define __ASM_SGIDEFS_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* And remove any damage it might have already done
|
||||||
|
*/
|
||||||
|
#undef _MIPS_ISA_MIPS1
|
||||||
|
#undef _MIPS_ISA_MIPS2
|
||||||
|
#undef _MIPS_ISA_MIPS3
|
||||||
|
#undef _MIPS_ISA_MIPS4
|
||||||
|
#undef _MIPS_ISA_MIPS5
|
||||||
|
#undef _MIPS_ISA_MIPS32
|
||||||
|
#undef _MIPS_ISA_MIPS64
|
||||||
|
|
||||||
|
#undef _MIPS_SIM_ABI32
|
||||||
|
#undef _MIPS_SIM_NABI32
|
||||||
|
#undef _MIPS_SIM_ABI64
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Definitions for the ISA level
|
* Definitions for the ISA level
|
||||||
*/
|
*/
|
||||||
@ -33,14 +54,20 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Subprogram calling convention
|
* Subprogram calling convention
|
||||||
*
|
|
||||||
* At the moment only _MIPS_SIM_ABI32 is in use. This will change rsn.
|
|
||||||
* Until GCC 2.8.0 is released don't rely on this definitions because the
|
|
||||||
* 64bit code is essentially using the 32bit interface model just with
|
|
||||||
* 64bit registers.
|
|
||||||
*/
|
*/
|
||||||
#define _MIPS_SIM_ABI32 1
|
#ifndef _ABIO32
|
||||||
#define _MIPS_SIM_NABI32 2
|
# define _ABIO32 1
|
||||||
#define _MIPS_SIM_ABI64 3
|
#endif
|
||||||
|
#define _MIPS_SIM_ABI32 _ABIO32
|
||||||
|
|
||||||
|
#ifndef _ABIN32
|
||||||
|
# define _ABIN32 2
|
||||||
|
#endif
|
||||||
|
#define _MIPS_SIM_NABI32 _ABIN32
|
||||||
|
|
||||||
|
#ifndef _ABI64
|
||||||
|
# define _ABI64 3
|
||||||
|
#endif
|
||||||
|
#define _MIPS_SIM_ABI64 _ABI64
|
||||||
|
|
||||||
#endif /* sgidefs.h */
|
#endif /* sgidefs.h */
|
||||||
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ralf Baechle <ralf@gnu.org>.
|
Contributed by Ralf Baechle <ralf@gnu.org>.
|
||||||
|
|
||||||
@ -37,11 +37,11 @@
|
|||||||
* 64 bit address space isn't used yet, so we may use the R3000 32 bit
|
* 64 bit address space isn't used yet, so we may use the R3000 32 bit
|
||||||
* defines for now.
|
* defines for now.
|
||||||
*/
|
*/
|
||||||
#if (_MIPS_SIM == _MIPS_SIM_ABI32) || (_MIPS_SIM == _MIPS_SIM_NABI32)
|
#if _MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIN32
|
||||||
# define PTR .word
|
# define PTR .word
|
||||||
# define PTRSIZE 4
|
# define PTRSIZE 4
|
||||||
# define PTRLOG 2
|
# define PTRLOG 2
|
||||||
#elif (_MIPS_SIM == _MIPS_SIM_ABI64)
|
#elif _MIPS_SIM == _ABI64
|
||||||
# define PTR .dword
|
# define PTR .dword
|
||||||
# define PTRSIZE 8
|
# define PTRSIZE 8
|
||||||
# define PTRLOG 3
|
# define PTRLOG 3
|
||||||
@ -50,7 +50,7 @@
|
|||||||
/*
|
/*
|
||||||
* PIC specific declarations
|
* PIC specific declarations
|
||||||
*/
|
*/
|
||||||
#if (_MIPS_SIM == _MIPS_SIM_ABI32)
|
#if _MIPS_SIM == _ABIO32
|
||||||
# ifdef __PIC__
|
# ifdef __PIC__
|
||||||
# define CPRESTORE(register) \
|
# define CPRESTORE(register) \
|
||||||
.cprestore register
|
.cprestore register
|
||||||
@ -97,7 +97,7 @@ l: \
|
|||||||
# define SETUP_GPX64_L(cp_reg, ra_save, l)
|
# define SETUP_GPX64_L(cp_reg, ra_save, l)
|
||||||
# define RESTORE_GP64
|
# define RESTORE_GP64
|
||||||
# define USE_ALT_CP(a)
|
# define USE_ALT_CP(a)
|
||||||
#else /* (_MIPS_SIM == _MIPS_SIM_ABI64) || (_MIPS_SIM == _MIPS_SIM_NABI32) */
|
#else /* _MIPS_SIM == _ABI64 || _MIPS_SIM == _ABIN32 */
|
||||||
/*
|
/*
|
||||||
* For callee-saved gp calling convention:
|
* For callee-saved gp calling convention:
|
||||||
*/
|
*/
|
||||||
@ -131,15 +131,15 @@ l: \
|
|||||||
/* Use alternate register for context pointer. */
|
/* Use alternate register for context pointer. */
|
||||||
# define USE_ALT_CP(reg) \
|
# define USE_ALT_CP(reg) \
|
||||||
.cplocal reg
|
.cplocal reg
|
||||||
#endif /* _MIPS_SIM != _MIPS_SIM_ABI32 */
|
#endif /* _MIPS_SIM != _ABIO32 */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Stack Frame Definitions
|
* Stack Frame Definitions
|
||||||
*/
|
*/
|
||||||
#if (_MIPS_SIM == _MIPS_SIM_ABI32)
|
#if _MIPS_SIM == _ABIO32
|
||||||
# define NARGSAVE 4 /* Space for 4 argument registers must be allocated. */
|
# define NARGSAVE 4 /* Space for 4 argument registers must be allocated. */
|
||||||
#endif
|
#endif
|
||||||
#if (_MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32)
|
#if _MIPS_SIM == _ABI64 || _MIPS_SIM == _ABIN32
|
||||||
# define NARGSAVE 0 /* No caller responsibilities. */
|
# define NARGSAVE 0 /* No caller responsibilities. */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -287,7 +287,7 @@ symbol = value
|
|||||||
/*
|
/*
|
||||||
* Stack alignment
|
* Stack alignment
|
||||||
*/
|
*/
|
||||||
#if (_MIPS_SIM == _MIPS_SIM_ABI64) || (_MIPS_SIM == _MIPS_SIM_NABI32)
|
#if _MIPS_SIM == _ABI64 || _MIPS_SIM == _ABIN32
|
||||||
# define ALSZ 15
|
# define ALSZ 15
|
||||||
# define ALMASK ~15
|
# define ALMASK ~15
|
||||||
#else
|
#else
|
||||||
@ -298,7 +298,7 @@ symbol = value
|
|||||||
/*
|
/*
|
||||||
* Size of a register
|
* Size of a register
|
||||||
*/
|
*/
|
||||||
#if (_MIPS_SIM == _MIPS_SIM_ABI64) || (_MIPS_SIM == _MIPS_SIM_NABI32)
|
#if _MIPS_SIM == _ABI64 || _MIPS_SIM == _ABIN32
|
||||||
# define SZREG 8
|
# define SZREG 8
|
||||||
#else
|
#else
|
||||||
# define SZREG 4
|
# define SZREG 4
|
||||||
@ -389,7 +389,7 @@ symbol = value
|
|||||||
/*
|
/*
|
||||||
* How to add/sub/load/store/shift pointers.
|
* How to add/sub/load/store/shift pointers.
|
||||||
*/
|
*/
|
||||||
#if (_MIPS_SIM == _MIPS_SIM_ABI32 && _MIPS_SZPTR == 32)
|
#if (_MIPS_SIM == _ABIO32 && _MIPS_SZPTR == 32)
|
||||||
# define PTR_ADD add
|
# define PTR_ADD add
|
||||||
# define PTR_ADDI addi
|
# define PTR_ADDI addi
|
||||||
# define PTR_ADDU addu
|
# define PTR_ADDU addu
|
||||||
@ -411,7 +411,7 @@ symbol = value
|
|||||||
# define PTR_SCALESHIFT 2
|
# define PTR_SCALESHIFT 2
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if _MIPS_SIM == _MIPS_SIM_NABI32
|
#if _MIPS_SIM == _ABIN32
|
||||||
# define PTR_ADD add
|
# define PTR_ADD add
|
||||||
# define PTR_ADDI addi
|
# define PTR_ADDI addi
|
||||||
# define PTR_ADDU add /* no u */
|
# define PTR_ADDU add /* no u */
|
||||||
@ -433,8 +433,8 @@ symbol = value
|
|||||||
# define PTR_SCALESHIFT 2
|
# define PTR_SCALESHIFT 2
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (_MIPS_SIM == _MIPS_SIM_ABI32 && _MIPS_SZPTR == 64 /* o64??? */) \
|
#if (_MIPS_SIM == _ABIO32 && _MIPS_SZPTR == 64 /* o64??? */) \
|
||||||
|| _MIPS_SIM == _MIPS_SIM_ABI64
|
|| _MIPS_SIM == _ABI64
|
||||||
# define PTR_ADD dadd
|
# define PTR_ADD dadd
|
||||||
# define PTR_ADDI daddi
|
# define PTR_ADDI daddi
|
||||||
# define PTR_ADDU daddu
|
# define PTR_ADDU daddu
|
||||||
|
@ -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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ralf Baechle <ralf@gnu.org>.
|
Contributed by Ralf Baechle <ralf@gnu.org>.
|
||||||
|
|
||||||
@ -20,6 +20,8 @@
|
|||||||
#ifndef _SYS_REGDEF_H
|
#ifndef _SYS_REGDEF_H
|
||||||
#define _SYS_REGDEF_H
|
#define _SYS_REGDEF_H
|
||||||
|
|
||||||
|
#include <sgidefs.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Symbolic register names for 32 bit ABI
|
* Symbolic register names for 32 bit ABI
|
||||||
*/
|
*/
|
||||||
@ -31,7 +33,7 @@
|
|||||||
#define a1 $5
|
#define a1 $5
|
||||||
#define a2 $6
|
#define a2 $6
|
||||||
#define a3 $7
|
#define a3 $7
|
||||||
#if _MIPS_SIM != _MIPS_SIM_ABI32
|
#if _MIPS_SIM != _ABIO32
|
||||||
#define a4 $8
|
#define a4 $8
|
||||||
#define a5 $9
|
#define a5 $9
|
||||||
#define a6 $10
|
#define a6 $10
|
||||||
@ -44,7 +46,7 @@
|
|||||||
#define ta1 a5
|
#define ta1 a5
|
||||||
#define ta2 a6
|
#define ta2 a6
|
||||||
#define ta3 a7
|
#define ta3 a7
|
||||||
#else /* if _MIPS_SIM == _MIPS_SIM_ABI32 */
|
#else /* if _MIPS_SIM == _ABIO32 */
|
||||||
#define t0 $8 /* caller saved */
|
#define t0 $8 /* caller saved */
|
||||||
#define t1 $9
|
#define t1 $9
|
||||||
#define t2 $10
|
#define t2 $10
|
||||||
@ -57,7 +59,7 @@
|
|||||||
#define ta1 t5
|
#define ta1 t5
|
||||||
#define ta2 t6
|
#define ta2 t6
|
||||||
#define ta3 t7
|
#define ta3 t7
|
||||||
#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
|
#endif /* _MIPS_SIM == _ABIO32 */
|
||||||
#define s0 $16 /* callee saved */
|
#define s0 $16 /* callee saved */
|
||||||
#define s1 $17
|
#define s1 $17
|
||||||
#define s2 $18
|
#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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -22,10 +22,11 @@
|
|||||||
#define _SYS_UCONTEXT_H 1
|
#define _SYS_UCONTEXT_H 1
|
||||||
|
|
||||||
#include <features.h>
|
#include <features.h>
|
||||||
|
#include <sgidefs.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
|
||||||
/* Type for general register. */
|
/* Type for general register. */
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
#if _MIPS_SIM == _ABIO32
|
||||||
typedef __uint32_t greg_t;
|
typedef __uint32_t greg_t;
|
||||||
#else
|
#else
|
||||||
typedef __uint64_t greg_t;
|
typedef __uint64_t greg_t;
|
||||||
@ -119,7 +120,7 @@ typedef struct fpregset
|
|||||||
{
|
{
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
#if _MIPS_SIM == _ABIO32
|
||||||
double fp_dregs[16];
|
double fp_dregs[16];
|
||||||
float fp_fregs[32];
|
float fp_fregs[32];
|
||||||
unsigned int fp_regs[32];
|
unsigned int fp_regs[32];
|
||||||
@ -143,7 +144,7 @@ typedef struct
|
|||||||
/* Userlevel context. */
|
/* Userlevel context. */
|
||||||
typedef struct ucontext
|
typedef struct ucontext
|
||||||
{
|
{
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
#if _MIPS_SIM == _ABIO32
|
||||||
unsigned long int uc_flags;
|
unsigned long int uc_flags;
|
||||||
#else
|
#else
|
||||||
__uint64_t uc_flags;
|
__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.
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Brendan Kehoe (brendan@zen.org).
|
Contributed by Brendan Kehoe (brendan@zen.org).
|
||||||
@ -18,6 +18,7 @@
|
|||||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
02111-1307 USA. */
|
02111-1307 USA. */
|
||||||
|
|
||||||
|
#include <sgidefs.h>
|
||||||
#include <sysdeps/unix/sysdep.h>
|
#include <sysdeps/unix/sysdep.h>
|
||||||
|
|
||||||
#ifdef __ASSEMBLER__
|
#ifdef __ASSEMBLER__
|
||||||
@ -69,7 +70,7 @@
|
|||||||
/* The mips move insn is d,s. */
|
/* The mips move insn is d,s. */
|
||||||
#define MOVE(x,y) move y , x
|
#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
|
# define L(label) $L ## label
|
||||||
#else
|
#else
|
||||||
# define L(label) .L ## label
|
# define L(label) .L ## label
|
||||||
|
@ -21,6 +21,10 @@
|
|||||||
/* This file must not contain any C code. At least it must be protected
|
/* This file must not contain any C code. At least it must be protected
|
||||||
to allow using the file also in assembler files. */
|
to allow using the file also in assembler files. */
|
||||||
|
|
||||||
|
#if defined __mips__
|
||||||
|
# include <sgidefs.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef __LINUX_KERNEL_VERSION
|
#ifndef __LINUX_KERNEL_VERSION
|
||||||
/* We assume the worst; all kernels should be supported. */
|
/* We assume the worst; all kernels should be supported. */
|
||||||
# define __LINUX_KERNEL_VERSION 0
|
# define __LINUX_KERNEL_VERSION 0
|
||||||
@ -277,7 +281,7 @@
|
|||||||
# define __ASSUME_TIMEVAL64 1
|
# define __ASSUME_TIMEVAL64 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined __mips__ && defined _ABIN32 && _MIPS_SIM == _ABIN32
|
#if defined __mips__ && _MIPS_SIM == _ABIN32
|
||||||
# define __ASSUME_FCNTL64 1
|
# define __ASSUME_FCNTL64 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -28,10 +28,10 @@ $(objpfx)syscall-%.h $(objpfx)syscall-%.d: ../sysdeps/unix/sysv/linux/mips/sys/s
|
|||||||
sed -n 's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p' \
|
sed -n 's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p' \
|
||||||
> $(@:.d=.h).newt; \
|
> $(@:.d=.h).newt; \
|
||||||
if grep SYS_O32_ $(@:.d=.h).newt > /dev/null; then \
|
if grep SYS_O32_ $(@:.d=.h).newt > /dev/null; then \
|
||||||
echo '#if _MIPS_SIM == _MIPS_SIM_NABI32'; \
|
echo '#if _MIPS_SIM == _ABIN32'; \
|
||||||
sed -n 's/^\(#define SYS_\)N32_/\1/p' < $(@:.d=.h).newt | \
|
sed -n 's/^\(#define SYS_\)N32_/\1/p' < $(@:.d=.h).newt | \
|
||||||
LC_ALL=C sort; \
|
LC_ALL=C sort; \
|
||||||
echo '#elif _MIPS_SIM == _MIPS_SIM_ABI64'; \
|
echo '#elif _MIPS_SIM == _ABI64'; \
|
||||||
sed -n 's/^\(#define SYS_\)N64_/\1/p' < $(@:.d=.h).newt | \
|
sed -n 's/^\(#define SYS_\)N64_/\1/p' < $(@:.d=.h).newt | \
|
||||||
LC_ALL=C sort; \
|
LC_ALL=C sort; \
|
||||||
echo '#else'; \
|
echo '#else'; \
|
||||||
|
@ -22,8 +22,8 @@
|
|||||||
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
|
# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sgidefs.h>
|
#include <sgidefs.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
|
/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
|
||||||
located on an ext2 file system */
|
located on an ext2 file system */
|
||||||
@ -144,7 +144,7 @@ typedef struct flock
|
|||||||
#ifndef __USE_FILE_OFFSET64
|
#ifndef __USE_FILE_OFFSET64
|
||||||
__off_t l_start; /* Offset where the lock begins. */
|
__off_t l_start; /* Offset where the lock begins. */
|
||||||
__off_t l_len; /* Size of the locked area; zero means until EOF. */
|
__off_t l_len; /* Size of the locked area; zero means until EOF. */
|
||||||
#if _MIPS_SIM != _MIPS_SIM_ABI64
|
#if _MIPS_SIM != _ABI64
|
||||||
/* The 64-bit flock structure, used by the n64 ABI, and for 64-bit
|
/* The 64-bit flock structure, used by the n64 ABI, and for 64-bit
|
||||||
fcntls in o32 and n32, never has this field. */
|
fcntls in o32 and n32, never has this field. */
|
||||||
long int l_sysid;
|
long int l_sysid;
|
||||||
@ -154,7 +154,7 @@ typedef struct flock
|
|||||||
__off64_t l_len; /* Size of the locked area; zero means until EOF. */
|
__off64_t l_len; /* Size of the locked area; zero means until EOF. */
|
||||||
#endif
|
#endif
|
||||||
__pid_t l_pid; /* Process holding the lock. */
|
__pid_t l_pid; /* Process holding the lock. */
|
||||||
#if ! defined __USE_FILE_OFFSET64 && _MIPS_SIM != _MIPS_SIM_ABI64
|
#if ! defined __USE_FILE_OFFSET64 && _MIPS_SIM != _ABI64
|
||||||
/* The 64-bit flock structure, used by the n64 ABI, and for 64-bit
|
/* The 64-bit flock structure, used by the n64 ABI, and for 64-bit
|
||||||
flock in o32 and n32, never has this field. */
|
flock in o32 and n32, never has this field. */
|
||||||
long int pad[4];
|
long int pad[4];
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
licenses, the fact that the file is pasted, instead of included,
|
licenses, the fact that the file is pasted, instead of included,
|
||||||
doesn't really make any difference for the program that includes
|
doesn't really make any difference for the program that includes
|
||||||
this header. */
|
this header. */
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
#if _MIPS_SIM == _ABIO32
|
||||||
/*
|
/*
|
||||||
* This file is subject to the terms and conditions of the GNU General Public
|
* This file is subject to the terms and conditions of the GNU General Public
|
||||||
* License. See the file "COPYING" in the main directory of this archive
|
* License. See the file "COPYING" in the main directory of this archive
|
||||||
@ -70,7 +70,7 @@ struct sigcontext {
|
|||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _ASM_SIGCONTEXT_H */
|
#endif /* _ASM_SIGCONTEXT_H */
|
||||||
#else /* _MIPS_SIM != _MIPS_SIM_ABI32 */
|
#else /* _MIPS_SIM != _ABIO32 */
|
||||||
/*
|
/*
|
||||||
* This file is subject to the terms and conditions of the GNU General Public
|
* This file is subject to the terms and conditions of the GNU General Public
|
||||||
* License. See the file "COPYING" in the main directory of this archive
|
* License. See the file "COPYING" in the main directory of this archive
|
||||||
@ -101,5 +101,5 @@ struct sigcontext {
|
|||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _ASM_SIGCONTEXT_H */
|
#endif /* _ASM_SIGCONTEXT_H */
|
||||||
#endif /* _MIPS_SIM != _MIPS_SIM_ABI32 */
|
#endif /* _MIPS_SIM != _ABIO32 */
|
||||||
#endif
|
#endif
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
|
#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
|
||||||
|
|
||||||
|
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
#if _MIPS_SIM == _ABIO32
|
||||||
/* Structure describing file characteristics. */
|
/* Structure describing file characteristics. */
|
||||||
struct stat
|
struct stat
|
||||||
{
|
{
|
||||||
|
@ -42,7 +42,7 @@ BEGIN { print "#include <sgidefs.h>"; }
|
|||||||
name = $2;
|
name = $2;
|
||||||
sub (/_O32_/, "_", name);
|
sub (/_O32_/, "_", name);
|
||||||
print;
|
print;
|
||||||
print "#if _MIPS_SIM == _MIPS_SIM_ABI32";
|
print "#if _MIPS_SIM == _ABIO32";
|
||||||
print "# define " name " " $2;
|
print "# define " name " " $2;
|
||||||
print "#endif";
|
print "#endif";
|
||||||
next;
|
next;
|
||||||
@ -51,7 +51,7 @@ BEGIN { print "#include <sgidefs.h>"; }
|
|||||||
name = $2;
|
name = $2;
|
||||||
sub (/_N32_/, "_", name);
|
sub (/_N32_/, "_", name);
|
||||||
print;
|
print;
|
||||||
print "#if _MIPS_SIM == _MIPS_SIM_NABI32";
|
print "#if _MIPS_SIM == _ABIN32";
|
||||||
print "# define " name " " $2;
|
print "# define " name " " $2;
|
||||||
print "#endif";
|
print "#endif";
|
||||||
next;
|
next;
|
||||||
@ -60,7 +60,7 @@ BEGIN { print "#include <sgidefs.h>"; }
|
|||||||
name = $2;
|
name = $2;
|
||||||
sub (/_N64_/, "_", name);
|
sub (/_N64_/, "_", name);
|
||||||
print;
|
print;
|
||||||
print "#if _MIPS_SIM == _MIPS_SIM_ABI64";
|
print "#if _MIPS_SIM == _ABI64";
|
||||||
print "# define " name " " $2;
|
print "# define " name " " $2;
|
||||||
print "#endif";
|
print "#endif";
|
||||||
next;
|
next;
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
userland data structures are not identical, because of different
|
userland data structures are not identical, because of different
|
||||||
padding. */
|
padding. */
|
||||||
/* Definition of `struct stat' used in the kernel. */
|
/* Definition of `struct stat' used in the kernel. */
|
||||||
#if _MIPS_SIM != _MIPS_SIM_ABI32
|
#if _MIPS_SIM != _ABIO32
|
||||||
struct kernel_stat
|
struct kernel_stat
|
||||||
{
|
{
|
||||||
unsigned int st_dev;
|
unsigned int st_dev;
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
#include <sgidefs.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <endian.h>
|
#include <endian.h>
|
||||||
|
|
||||||
@ -55,14 +56,14 @@ __libc_pread (fd, buf, count, offset)
|
|||||||
{
|
{
|
||||||
ssize_t result;
|
ssize_t result;
|
||||||
|
|
||||||
#if _MIPS_SIM != _MIPS_SIM_ABI64
|
#if _MIPS_SIM != _ABI64
|
||||||
assert (sizeof (offset) == 4);
|
assert (sizeof (offset) == 4);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (SINGLE_THREAD_P)
|
if (SINGLE_THREAD_P)
|
||||||
{
|
{
|
||||||
/* First try the syscall. */
|
/* 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,
|
result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count,
|
||||||
offset);
|
offset);
|
||||||
#else
|
#else
|
||||||
@ -80,7 +81,7 @@ __libc_pread (fd, buf, count, offset)
|
|||||||
int oldtype = LIBC_CANCEL_ASYNC ();
|
int oldtype = LIBC_CANCEL_ASYNC ();
|
||||||
|
|
||||||
/* First try the syscall. */
|
/* 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);
|
result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count, offset);
|
||||||
#else
|
#else
|
||||||
result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
|
result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
02111-1307 USA. */
|
02111-1307 USA. */
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
#include <sgidefs.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <endian.h>
|
#include <endian.h>
|
||||||
|
|
||||||
@ -58,7 +59,7 @@ __libc_pread64 (fd, buf, count, offset)
|
|||||||
if (SINGLE_THREAD_P)
|
if (SINGLE_THREAD_P)
|
||||||
{
|
{
|
||||||
/* First try the syscall. */
|
/* 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,
|
result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count,
|
||||||
offset);
|
offset);
|
||||||
#else
|
#else
|
||||||
@ -77,7 +78,7 @@ __libc_pread64 (fd, buf, count, offset)
|
|||||||
int oldtype = LIBC_CANCEL_ASYNC ();
|
int oldtype = LIBC_CANCEL_ASYNC ();
|
||||||
|
|
||||||
/* First try the syscall. */
|
/* 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);
|
result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count, offset);
|
||||||
#else
|
#else
|
||||||
result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
|
result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
02111-1307 USA. */
|
02111-1307 USA. */
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
#include <sgidefs.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/ptrace.h>
|
#include <sys/ptrace.h>
|
||||||
#include <sys/user.h>
|
#include <sys/user.h>
|
||||||
@ -28,7 +29,7 @@
|
|||||||
#include <bp-checks.h>
|
#include <bp-checks.h>
|
||||||
#include <sgidefs.h>
|
#include <sgidefs.h>
|
||||||
|
|
||||||
#if _MIPS_SIM == _MIPS_SIM_NABI32
|
#if _MIPS_SIM == _ABIN32
|
||||||
__extension__ typedef long long int reg_type;
|
__extension__ typedef long long int reg_type;
|
||||||
#else
|
#else
|
||||||
typedef long int reg_type;
|
typedef long int reg_type;
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
#include <sgidefs.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <endian.h>
|
#include <endian.h>
|
||||||
|
|
||||||
@ -55,14 +56,14 @@ __libc_pwrite (fd, buf, count, offset)
|
|||||||
{
|
{
|
||||||
ssize_t result;
|
ssize_t result;
|
||||||
|
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI64
|
#if _MIPS_SIM != _ABI64
|
||||||
assert (sizeof (offset) == 4);
|
assert (sizeof (offset) == 4);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (SINGLE_THREAD_P)
|
if (SINGLE_THREAD_P)
|
||||||
{
|
{
|
||||||
/* First try the syscall. */
|
/* 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,
|
result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count,
|
||||||
offset);
|
offset);
|
||||||
#else
|
#else
|
||||||
@ -80,7 +81,7 @@ __libc_pwrite (fd, buf, count, offset)
|
|||||||
int oldtype = LIBC_CANCEL_ASYNC ();
|
int oldtype = LIBC_CANCEL_ASYNC ();
|
||||||
|
|
||||||
/* First try the syscall. */
|
/* 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);
|
result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count, offset);
|
||||||
#else
|
#else
|
||||||
result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
|
result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
02111-1307 USA. */
|
02111-1307 USA. */
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
#include <sgidefs.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <endian.h>
|
#include <endian.h>
|
||||||
|
|
||||||
@ -54,7 +55,7 @@ __libc_pwrite64 (fd, buf, count, offset)
|
|||||||
if (SINGLE_THREAD_P)
|
if (SINGLE_THREAD_P)
|
||||||
{
|
{
|
||||||
/* First try the syscall. */
|
/* 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,
|
result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count,
|
||||||
offset);
|
offset);
|
||||||
#else
|
#else
|
||||||
@ -74,7 +75,7 @@ __libc_pwrite64 (fd, buf, count, offset)
|
|||||||
int oldtype = LIBC_CANCEL_ASYNC ();
|
int oldtype = LIBC_CANCEL_ASYNC ();
|
||||||
|
|
||||||
/* First try the syscall. */
|
/* 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);
|
result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count, offset);
|
||||||
#else
|
#else
|
||||||
result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
|
result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
02111-1307 USA. */
|
02111-1307 USA. */
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
#include <sgidefs.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -40,7 +41,7 @@ int __libc_missing_rt_sigs;
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if _MIPS_SIM != _MIPS_SIM_ABI32
|
#if _MIPS_SIM != _ABIO32
|
||||||
|
|
||||||
# ifdef __NR_rt_sigreturn
|
# ifdef __NR_rt_sigreturn
|
||||||
static void restore_rt (void) asm ("__restore_rt");
|
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));
|
memcpy (&kact.sa_mask, &act->sa_mask, sizeof (kernel_sigset_t));
|
||||||
kact.sa_flags = act->sa_flags;
|
kact.sa_flags = act->sa_flags;
|
||||||
# ifdef HAVE_SA_RESTORER
|
# ifdef HAVE_SA_RESTORER
|
||||||
# if _MIPS_SIM == _MIPS_SIM_ABI32
|
# if _MIPS_SIM == _ABIO32
|
||||||
kact.sa_restorer = act->sa_restorer;
|
kact.sa_restorer = act->sa_restorer;
|
||||||
# else
|
# else
|
||||||
kact.sa_restorer = &restore_rt;
|
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_mask.__val[0] = k_osigact.sa_mask;
|
||||||
oact->sa_flags = k_osigact.sa_flags;
|
oact->sa_flags = k_osigact.sa_flags;
|
||||||
# ifdef HAVE_SA_RESTORER
|
# ifdef HAVE_SA_RESTORER
|
||||||
# if _MIPS_SIM == _MIPS_SIM_ABI32
|
# if _MIPS_SIM == _ABIO32
|
||||||
oact->sa_restorer = k_osigact.sa_restorer;
|
oact->sa_restorer = k_osigact.sa_restorer;
|
||||||
# else
|
# else
|
||||||
oact->sa_restorer = &restore;
|
oact->sa_restorer = &restore;
|
||||||
@ -177,7 +178,7 @@ asm \
|
|||||||
);
|
);
|
||||||
|
|
||||||
/* The return code for realtime-signals. */
|
/* The return code for realtime-signals. */
|
||||||
#if _MIPS_SIM != _MIPS_SIM_ABI32
|
#if _MIPS_SIM != _ABIO32
|
||||||
# ifdef __NR_rt_sigreturn
|
# ifdef __NR_rt_sigreturn
|
||||||
RESTORE (restore_rt, __NR_rt_sigreturn)
|
RESTORE (restore_rt, __NR_rt_sigreturn)
|
||||||
# endif
|
# endif
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
#include <sgidefs.h>
|
#include <sgidefs.h>
|
||||||
|
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
#if _MIPS_SIM == _ABIO32
|
||||||
|
|
||||||
#define SIGCONTEXT unsigned long _code, struct sigcontext *
|
#define SIGCONTEXT unsigned long _code, struct sigcontext *
|
||||||
#define SIGCONTEXT_EXTRA_ARGS _code,
|
#define SIGCONTEXT_EXTRA_ARGS _code,
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
used on Linux. */
|
used on Linux. */
|
||||||
|
|
||||||
#include <features.h>
|
#include <features.h>
|
||||||
|
#include <sgidefs.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/user.h>
|
#include <sys/user.h>
|
||||||
@ -34,7 +35,7 @@
|
|||||||
#define ELF_NGREG 45
|
#define ELF_NGREG 45
|
||||||
#define ELF_NFPREG 33
|
#define ELF_NFPREG 33
|
||||||
|
|
||||||
#if _MIPS_SIM == _MIPS_SIM_NABI32
|
#if _MIPS_SIM == _ABIN32
|
||||||
__extension__ typedef unsigned long long elf_greg_t;
|
__extension__ typedef unsigned long long elf_greg_t;
|
||||||
#else
|
#else
|
||||||
typedef unsigned long elf_greg_t;
|
typedef unsigned long elf_greg_t;
|
||||||
@ -65,7 +66,7 @@ struct elf_prstatus
|
|||||||
{
|
{
|
||||||
struct elf_siginfo pr_info; /* Info associated with signal. */
|
struct elf_siginfo pr_info; /* Info associated with signal. */
|
||||||
short int pr_cursig; /* Current 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_sigpend;
|
||||||
__extension__ unsigned long long int pr_sighold;
|
__extension__ unsigned long long int pr_sighold;
|
||||||
#else
|
#else
|
||||||
@ -93,7 +94,7 @@ struct elf_prpsinfo
|
|||||||
char pr_sname; /* Char for pr_state. */
|
char pr_sname; /* Char for pr_state. */
|
||||||
char pr_zomb; /* Zombie. */
|
char pr_zomb; /* Zombie. */
|
||||||
char pr_nice; /* Nice val. */
|
char pr_nice; /* Nice val. */
|
||||||
#if _MIPS_SIM == _MIPS_SIM_NABI32
|
#if _MIPS_SIM == _ABIN32
|
||||||
__extension__ unsigned long long int pr_flag;
|
__extension__ unsigned long long int pr_flag;
|
||||||
#else
|
#else
|
||||||
unsigned long int pr_flag; /* Flags. */
|
unsigned long int pr_flag; /* Flags. */
|
||||||
|
@ -124,7 +124,7 @@ enum __ptrace_request
|
|||||||
appear (those that are used for the particular request) as:
|
appear (those that are used for the particular request) as:
|
||||||
pid_t PID, void *ADDR, int DATA, void *ADDR2
|
pid_t PID, void *ADDR, int DATA, void *ADDR2
|
||||||
after REQUEST. */
|
after REQUEST. */
|
||||||
#if _MIPS_SIM == _MIPS_SIM_NABI32
|
#if _MIPS_SIM == _ABIN32
|
||||||
__extension__ extern long long int ptrace
|
__extension__ extern long long int ptrace
|
||||||
(enum __ptrace_request __request, ...) __THROW;
|
(enum __ptrace_request __request, ...) __THROW;
|
||||||
#else
|
#else
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
#define _SYS_TAS_H 1
|
#define _SYS_TAS_H 1
|
||||||
|
|
||||||
#include <features.h>
|
#include <features.h>
|
||||||
|
|
||||||
#include <sgidefs.h>
|
#include <sgidefs.h>
|
||||||
|
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
@ -43,7 +42,7 @@ _test_and_set (int *p, int v) __THROW
|
|||||||
("/* Inline test and set */\n"
|
("/* Inline test and set */\n"
|
||||||
"1:\n\t"
|
"1:\n\t"
|
||||||
".set push\n\t"
|
".set push\n\t"
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
#if _MIPS_SIM == _ABIO32
|
||||||
".set mips2\n\t"
|
".set mips2\n\t"
|
||||||
#endif
|
#endif
|
||||||
"ll %0,%3\n\t"
|
"ll %0,%3\n\t"
|
||||||
|
@ -22,14 +22,13 @@
|
|||||||
#define _SYS_UCONTEXT_H 1
|
#define _SYS_UCONTEXT_H 1
|
||||||
|
|
||||||
#include <features.h>
|
#include <features.h>
|
||||||
|
#include <sgidefs.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
|
||||||
/* We need the signal context definitions even if they are not used
|
/* We need the signal context definitions even if they are not used
|
||||||
included in <signal.h>. */
|
included in <signal.h>. */
|
||||||
#include <bits/sigcontext.h>
|
#include <bits/sigcontext.h>
|
||||||
|
|
||||||
#include <sgidefs.h>
|
|
||||||
|
|
||||||
/* Type for general register. Even in o32 we assume 64-bit registers,
|
/* Type for general register. Even in o32 we assume 64-bit registers,
|
||||||
like the kernel. */
|
like the kernel. */
|
||||||
__extension__ typedef unsigned long long int greg_t;
|
__extension__ typedef unsigned long long int greg_t;
|
||||||
@ -54,7 +53,7 @@ typedef struct fpregset {
|
|||||||
|
|
||||||
|
|
||||||
/* Context to describe whole processor state. */
|
/* 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
|
/* Earlier versions of glibc for mips had an entirely different
|
||||||
definition of mcontext_t, that didn't even resemble the
|
definition of mcontext_t, that didn't even resemble the
|
||||||
corresponding kernel data structure. Since all legitimate uses of
|
corresponding kernel data structure. Since all legitimate uses of
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
instead of included separately, doesn't change in any way the
|
instead of included separately, doesn't change in any way the
|
||||||
licensing status of a program that includes user.h. Since this is
|
licensing status of a program that includes user.h. Since this is
|
||||||
for gdb alone, and gdb is GPLed, no surprises here. */
|
for gdb alone, and gdb is GPLed, no surprises here. */
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
#if _MIPS_SIM == _ABIO32
|
||||||
/*
|
/*
|
||||||
* Various register offset definitions for debuggers, core file
|
* Various register offset definitions for debuggers, core file
|
||||||
* examiners and whatnot.
|
* examiners and whatnot.
|
||||||
@ -100,7 +100,7 @@
|
|||||||
|
|
||||||
#endif /* __ASM_MIPS_REG_H */
|
#endif /* __ASM_MIPS_REG_H */
|
||||||
|
|
||||||
#else /* _MIPS_SIM != _MIPS_SIM_ABI32 */
|
#else /* _MIPS_SIM != _ABIO32 */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Various register offset definitions for debuggers, core file
|
* Various register offset definitions for debuggers, core file
|
||||||
@ -170,9 +170,9 @@
|
|||||||
|
|
||||||
#endif /* _ASM_REG_H */
|
#endif /* _ASM_REG_H */
|
||||||
|
|
||||||
#endif /* _MIPS_SIM != _MIPS_SIM_ABI32 */
|
#endif /* _MIPS_SIM != _ABIO32 */
|
||||||
|
|
||||||
#if _MIPS_SIM == _MIPS_SIM_ABI32
|
#if _MIPS_SIM == _ABIO32
|
||||||
|
|
||||||
struct user
|
struct user
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user