Update.
1998-11-27 Philip Blundell <pb@nexus.co.uk> Fixes to allow compilation with static NSS: * nss/Makefile: Make explicit the dependency of getent on libnss_files.a. [build_static_nss]: Define $(otherlibs) appropriately. * nss/Depend: Add a dependency on `resolv'. 1998-11-27 Andreas Jaeger <aj@arthur.rhein-neckar.de> Partial support for MIPS ISO C 9x exception handling: * sysdeps/mips/fclrexcpt.c: New file. * sysdeps/mips/ftestexcept.c: New file. * sysdeps/mips/fgetexcptflg.c: New file. * sysdeps/mips/fesetround.c: New file. * sysdeps/mips/fegetround.c: New file. * sysdeps/mips/fegetenv.c: New file. * sysdeps/mips/fesetenv.c: New file. * sysdeps/mips/feupdateenv.c: Likewise. * sysdeps/mips/bits/fenv.h: New file. 1998-11-28 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sysdeps/unix/sysv/linux/mips/bits/signum.h: Remove inclusion of <asm/signal.h> and add needed symbols from <asm/signal.h>; bring in sync with linux specific version. Patches by Ralf Baechle <ralf@uni-koblenz.de> for mips-linux: * sysdeps/unix/mips/sysdep.S: Define _errno as weak_alias, rewrite errno declaration. * sysdeps/unix/sysv/linux/mips/ustat.c: Use INLINE_SYSCALL instead of calling __syscall_*. * sysdeps/unix/sysv/linux/mips/xmknod.c: Likewise. * sysdeps/unix/sysv/linux/mips/syscalls.list: Update entries. * sysdeps/unix/sysv/linux/mips/sys/syscall.h: Add missing SYS_* constants, correct values according to Linux 2.1.130. * sysdeps/unix/sysv/linux/mips/pwrite.c: New file. * sysdeps/unix/sysv/linux/mips/pwrite64.c: New file. * sysdeps/unix/sysv/linux/mips/pread.c: New file. * sysdeps/unix/sysv/linux/mips/pread64.c: New file. * sysdeps/mips/Makefile (sysdep_routines): Use += instead of a :=. * sysdeps/unix/sysv/linux/mips/bits/ipc.h: Remove ipc_kludge. * sysdeps/unix/sysv/linux/mips/xstatconv.c: New file. * sysdeps/unix/sysv/linux/mips/xstat.c: Removed. * sysdeps/unix/sysv/linux/mips/sys/ucontext.h: New file. * sysdeps/unix/sysv/linux/mips/kernel_termios.h: Add copyright message, change name of include protection, remove inclusion of <bits/termios.h>. * sysdeps/unix/sysv/linux/mips/kernel_sigaction.h (old_kernel_sigaction): Define. (struct kernel_sigaction): Rename sa_handler to k_sa_handler. * sysdeps/unix/sysv/linux/mips/bits/time.h: Removed, we can use the general linux version. * sysdeps/unix/sysv/linux/mips/bits/stat.h (_STAT_VER_KERNEL): Added. * sysdeps/unix/sysv/linux/mips/bits/socket.h: Update file. 1998-09-03 Philip Blundell <pb@nexus.co.uk> * sysdeps/arm/bits/endian.h (__FLOAT_WORD_ORDER): Define to big endian. * math/math_private.h: Use __FLOAT_WORD_ORDER rather than BYTE_ORDER. * string/endian.h: If __FLOAT_WORD_ORDER wasn't defined by <bits/endian.h>, make it the same as __BYTE_ORDER. 1998-11-26 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> * Makeconfig ($(common-objpfx)sysd-dirs): Use automatic variables if possible. ($(common-objpfx)sysd-sorted): Likewise. 1998-11-27 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sysdeps/libm-ieee754/e_log.c (__ieee754_log): Add declaration of local variables t1,t2 only if needed. * sysdeps/libm-ieee754/s_truncf.c (__truncf): Likewise. * sysdeps/libm-ieee754/s_trunc.c (__trunc): Likewise. * sysdeps/mips/mul_1.S (Loop): Add closing comment to avoid warning. 1998-11-27 Andreas Jaeger <aj@arthur.rhein-neckar.de> * math/math.h: Add brace to correct #if expression. 1998-11-26 Philip Blundell <philb@gnu.org> Undo change of 1998-11-12: * sysdeps/unix/sysv/linux/netlink/netlink.h: Deleted. * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Remove netlink/netlink.h. * sysdeps/unix/sysv/linux/Dist: Likewise. 1998-11-22 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> * nis/nis_print.c (nis_print_entry): Changes to match Solaris output. 1998-11-26 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sysdeps/generic/pselect.c (__pselect): Change interface, set/restore sigmask. * misc/sys/select.h: Change declaration according to Stevens' Unix Network Programming. * include/sys/select.h (__pselect): Likewise. Reported by <bwelling@anomaly.munge.com> [PR libc/872]. * include/fpu_control.h: New file, contains __setfpucw declaration. * sysdeps/generic/fpu_control.h: Remove __setfpucw declaration, it's an internal symbol. * sysdeps/alpha/fpu/fpu_control.h: Likewise. * sysdeps/arm/fpu/fpu_control.h: Likewise. * sysdeps/i386/fpu_control.h: Likewise. * sysdeps/m68k/fpu_control.h: Likewise. * sysdeps/powerpc/fpu_control.h: Likewise. * sysdeps/sparc/sparc32/fpu/fpu_control.h: Likewise. * sysdeps/sparc/sparc64/fpu/fpu_control.h: Likewise.
This commit is contained in:
parent
48252123bc
commit
6d4752d8b9
201
ChangeLog
201
ChangeLog
@ -1,12 +1,83 @@
|
||||
1998-09-03 Philip Blundell <pb@nexus.co.uk>
|
||||
|
||||
* sysdeps/arm/bits/endian.h (__FLOAT_WORD_ORDER): Define to big
|
||||
endian.
|
||||
* math/math_private.h: Use __FLOAT_WORD_ORDER rather than
|
||||
BYTE_ORDER.
|
||||
* string/endian.h: If __FLOAT_WORD_ORDER wasn't defined by
|
||||
<bits/endian.h>, make it the same as __BYTE_ORDER.
|
||||
|
||||
1998-11-27 Philip Blundell <pb@nexus.co.uk>
|
||||
|
||||
Fixes to allow compilation with static NSS:
|
||||
* nss/Makefile: Make explicit the dependency of getent on
|
||||
libnss_files.a.
|
||||
[build_static_nss]: Define $(otherlibs) appropriately.
|
||||
* nss/Depend: Add a dependency on `resolv'.
|
||||
|
||||
1998-11-27 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||
|
||||
Partial support for MIPS ISO C 9x exception handling:
|
||||
* sysdeps/mips/fclrexcpt.c: New file.
|
||||
* sysdeps/mips/ftestexcept.c: New file.
|
||||
* sysdeps/mips/fgetexcptflg.c: New file.
|
||||
* sysdeps/mips/fesetround.c: New file.
|
||||
* sysdeps/mips/fegetround.c: New file.
|
||||
* sysdeps/mips/fegetenv.c: New file.
|
||||
* sysdeps/mips/fesetenv.c: New file.
|
||||
* sysdeps/mips/feupdateenv.c: Likewise.
|
||||
* sysdeps/mips/bits/fenv.h: New file.
|
||||
|
||||
1998-11-28 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||
|
||||
* sysdeps/unix/sysv/linux/mips/bits/signum.h: Remove inclusion of
|
||||
<asm/signal.h> and add needed symbols from <asm/signal.h>; bring
|
||||
in sync with linux specific version.
|
||||
|
||||
Patches by Ralf Baechle <ralf@uni-koblenz.de> for mips-linux:
|
||||
|
||||
* sysdeps/unix/mips/sysdep.S: Define _errno as weak_alias, rewrite
|
||||
errno declaration.
|
||||
|
||||
* sysdeps/unix/sysv/linux/mips/ustat.c: Use INLINE_SYSCALL instead
|
||||
of calling __syscall_*.
|
||||
* sysdeps/unix/sysv/linux/mips/xmknod.c: Likewise.
|
||||
|
||||
* sysdeps/unix/sysv/linux/mips/syscalls.list: Update entries.
|
||||
|
||||
* sysdeps/unix/sysv/linux/mips/sys/syscall.h: Add missing SYS_*
|
||||
constants, correct values according to Linux 2.1.130.
|
||||
|
||||
* sysdeps/unix/sysv/linux/mips/pwrite.c: New file.
|
||||
* sysdeps/unix/sysv/linux/mips/pwrite64.c: New file.
|
||||
* sysdeps/unix/sysv/linux/mips/pread.c: New file.
|
||||
* sysdeps/unix/sysv/linux/mips/pread64.c: New file.
|
||||
|
||||
* sysdeps/mips/Makefile (sysdep_routines): Use += instead of a
|
||||
:=.
|
||||
|
||||
* sysdeps/unix/sysv/linux/mips/bits/ipc.h: Remove ipc_kludge.
|
||||
|
||||
* sysdeps/unix/sysv/linux/mips/xstatconv.c: New file.
|
||||
|
||||
* sysdeps/unix/sysv/linux/mips/xstat.c: Removed.
|
||||
|
||||
* sysdeps/unix/sysv/linux/mips/sys/ucontext.h: New file.
|
||||
|
||||
* sysdeps/unix/sysv/linux/mips/kernel_termios.h: Add copyright
|
||||
message, change name of include protection, remove inclusion of
|
||||
<bits/termios.h>.
|
||||
|
||||
* sysdeps/unix/sysv/linux/mips/kernel_sigaction.h
|
||||
(old_kernel_sigaction): Define.
|
||||
(struct kernel_sigaction): Rename sa_handler to k_sa_handler.
|
||||
|
||||
* sysdeps/unix/sysv/linux/mips/bits/time.h: Removed, we can use
|
||||
the general linux version.
|
||||
* sysdeps/unix/sysv/linux/mips/bits/stat.h (_STAT_VER_KERNEL): Added.
|
||||
|
||||
* sysdeps/unix/sysv/linux/mips/bits/socket.h: Update file.
|
||||
|
||||
1998-09-03 Philip Blundell <pb@nexus.co.uk>
|
||||
|
||||
* sysdeps/arm/bits/endian.h (__FLOAT_WORD_ORDER): Define to big
|
||||
endian.
|
||||
* math/math_private.h: Use __FLOAT_WORD_ORDER rather than
|
||||
BYTE_ORDER.
|
||||
* string/endian.h: If __FLOAT_WORD_ORDER wasn't defined by
|
||||
<bits/endian.h>, make it the same as __BYTE_ORDER.
|
||||
|
||||
1998-11-27 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* math/math.h: Avoid using long double functions in generic macros
|
||||
@ -17,41 +88,41 @@
|
||||
* scripts/config.sub: Add Netwinder specific matches.
|
||||
Patch by Scott Bambrough <scottb@corelcomputer.com>.
|
||||
|
||||
1998-11-26 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
|
||||
|
||||
* Makeconfig ($(common-objpfx)sysd-dirs): Use automatic variables
|
||||
if possible.
|
||||
($(common-objpfx)sysd-sorted): Likewise.
|
||||
|
||||
1998-11-27 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||
|
||||
* sysdeps/libm-ieee754/e_log.c (__ieee754_log): Add declaration of
|
||||
local variables t1,t2 only if needed.
|
||||
|
||||
1998-11-26 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
|
||||
|
||||
* Makeconfig ($(common-objpfx)sysd-dirs): Use automatic variables
|
||||
if possible.
|
||||
($(common-objpfx)sysd-sorted): Likewise.
|
||||
|
||||
1998-11-27 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||
|
||||
* sysdeps/libm-ieee754/e_log.c (__ieee754_log): Add declaration of
|
||||
local variables t1,t2 only if needed.
|
||||
|
||||
* sysdeps/libm-ieee754/e_atan2.c: Added braces to avoid compiler
|
||||
warnings.
|
||||
* sysdeps/libm-ieee754/s_truncf.c (__truncf): Likewise.
|
||||
* sysdeps/libm-ieee754/s_trunc.c (__trunc): Likewise.
|
||||
|
||||
* sysdeps/mips/mul_1.S (Loop): Add closing comment to avoid
|
||||
warning.
|
||||
|
||||
1998-11-27 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||
|
||||
* math/math.h: Add brace to correct #if expression.
|
||||
|
||||
1998-11-26 Philip Blundell <philb@gnu.org>
|
||||
|
||||
Undo change of 1998-11-12:
|
||||
* sysdeps/unix/sysv/linux/netlink/netlink.h: Deleted.
|
||||
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Remove
|
||||
netlink/netlink.h.
|
||||
* sysdeps/unix/sysv/linux/Dist: Likewise.
|
||||
|
||||
1998-11-22 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
|
||||
|
||||
* nis/nis_print.c (nis_print_entry): Changes to match Solaris output.
|
||||
|
||||
* sysdeps/libm-ieee754/s_truncf.c (__truncf): Likewise.
|
||||
* sysdeps/libm-ieee754/s_trunc.c (__trunc): Likewise.
|
||||
|
||||
* sysdeps/mips/mul_1.S (Loop): Add closing comment to avoid
|
||||
warning.
|
||||
|
||||
1998-11-27 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||
|
||||
* math/math.h: Add brace to correct #if expression.
|
||||
|
||||
1998-11-26 Philip Blundell <philb@gnu.org>
|
||||
|
||||
Undo change of 1998-11-12:
|
||||
* sysdeps/unix/sysv/linux/netlink/netlink.h: Deleted.
|
||||
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Remove
|
||||
netlink/netlink.h.
|
||||
* sysdeps/unix/sysv/linux/Dist: Likewise.
|
||||
|
||||
1998-11-22 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
|
||||
|
||||
* nis/nis_print.c (nis_print_entry): Changes to match Solaris output.
|
||||
|
||||
1998-11-26 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* sysdeps/mips/dl-machine.h (ELF_MACHINE_NO_PLT): New defined macro.
|
||||
@ -64,29 +135,29 @@
|
||||
* sysdeps/mips/sys/ucontext.h: New file.
|
||||
Patches by kaz Kojima <kkojima@rr.iij4u.or.jp>.
|
||||
|
||||
1998-11-26 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||
|
||||
* sysdeps/generic/pselect.c (__pselect): Change interface,
|
||||
set/restore sigmask.
|
||||
|
||||
* misc/sys/select.h: Change declaration according to Stevens' Unix
|
||||
Network Programming.
|
||||
* include/sys/select.h (__pselect): Likewise.
|
||||
Reported by <bwelling@anomaly.munge.com> [PR libc/872].
|
||||
|
||||
* include/fpu_control.h: New file, contains __setfpucw
|
||||
declaration.
|
||||
|
||||
* sysdeps/generic/fpu_control.h: Remove __setfpucw declaration,
|
||||
it's an internal symbol.
|
||||
* sysdeps/alpha/fpu/fpu_control.h: Likewise.
|
||||
* sysdeps/arm/fpu/fpu_control.h: Likewise.
|
||||
* sysdeps/i386/fpu_control.h: Likewise.
|
||||
* sysdeps/m68k/fpu_control.h: Likewise.
|
||||
* sysdeps/powerpc/fpu_control.h: Likewise.
|
||||
* sysdeps/sparc/sparc32/fpu/fpu_control.h: Likewise.
|
||||
* sysdeps/sparc/sparc64/fpu/fpu_control.h: Likewise.
|
||||
|
||||
1998-11-26 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||
|
||||
* sysdeps/generic/pselect.c (__pselect): Change interface,
|
||||
set/restore sigmask.
|
||||
|
||||
* misc/sys/select.h: Change declaration according to Stevens' Unix
|
||||
Network Programming.
|
||||
* include/sys/select.h (__pselect): Likewise.
|
||||
Reported by <bwelling@anomaly.munge.com> [PR libc/872].
|
||||
|
||||
* include/fpu_control.h: New file, contains __setfpucw
|
||||
declaration.
|
||||
|
||||
* sysdeps/generic/fpu_control.h: Remove __setfpucw declaration,
|
||||
it's an internal symbol.
|
||||
* sysdeps/alpha/fpu/fpu_control.h: Likewise.
|
||||
* sysdeps/arm/fpu/fpu_control.h: Likewise.
|
||||
* sysdeps/i386/fpu_control.h: Likewise.
|
||||
* sysdeps/m68k/fpu_control.h: Likewise.
|
||||
* sysdeps/powerpc/fpu_control.h: Likewise.
|
||||
* sysdeps/sparc/sparc32/fpu/fpu_control.h: Likewise.
|
||||
* sysdeps/sparc/sparc64/fpu/fpu_control.h: Likewise.
|
||||
|
||||
1998-11-25 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* version.h (VERSION): Bump to 2.0.104.
|
||||
|
@ -1 +1,2 @@
|
||||
db2
|
||||
resolv
|
||||
|
@ -43,6 +43,11 @@ tests = test-netdb
|
||||
|
||||
include ../Makeconfig
|
||||
|
||||
ifeq (yes,$(build-static-nss))
|
||||
otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \
|
||||
$(resolvobjdir)/libresolv.a
|
||||
endif
|
||||
|
||||
# Specify rules for the nss_* modules. We have some services.
|
||||
services := files db
|
||||
|
||||
@ -84,6 +89,10 @@ $(libnss_db-routines:%=$(objpfx)%.c): $(objpfx)db-%.c: nss_files/files-%.c
|
||||
echo '#include <$<>') > $@.new
|
||||
mv -f $@.new $@
|
||||
|
||||
ifeq (yes,$(build-static-nss))
|
||||
$(objpfx)getent: $(objpfx)libnss_files.a
|
||||
endif
|
||||
|
||||
# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
|
||||
# This ensures they will load libc.so for needed symbols if loaded by
|
||||
# a statically-linked program that hasn't already loaded it.
|
||||
|
1396
po/libc.pot
1396
po/libc.pot
File diff suppressed because it is too large
Load Diff
@ -1,3 +1,3 @@
|
||||
ifeq ($(subdir),setjmp)
|
||||
sysdep_routines := $(sysdep_routines) setjmp_aux
|
||||
sysdep_routines += setjmp_aux
|
||||
endif
|
||||
|
72
sysdeps/mips/bits/fenv.h
Normal file
72
sysdeps/mips/bits/fenv.h
Normal file
@ -0,0 +1,72 @@
|
||||
/* Copyright (C) 1998 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 Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _FENV_H
|
||||
# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
|
||||
#endif
|
||||
|
||||
|
||||
/* Define bits representing the exception. We use the bit positions
|
||||
of the appropriate bits in the FPU control word. */
|
||||
enum
|
||||
{
|
||||
FE_INEXACT = 0x04,
|
||||
#define FE_INEXACT FE_INEXACT
|
||||
FE_UNDERFLOW = 0x08,
|
||||
#define FE_UNDERFLOW FE_UNDERFLOW
|
||||
FE_OVERFLOW = 0x10,
|
||||
#define FE_OVERFLOW FE_OVERFLOW
|
||||
FE_DIVBYZERO = 0x20,
|
||||
#define FE_DIVBYZERO FE_DIVBYZERO
|
||||
FE_INVALID = 0x40,
|
||||
#define FE_INVALID FE_INVALID
|
||||
};
|
||||
|
||||
#define FE_ALL_EXCEPT \
|
||||
(FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID)
|
||||
|
||||
/* The MIPS FPU supports all of the four defined rounding modes. We
|
||||
use again the bit positions in the FPU control word as the values
|
||||
for the appropriate macros. */
|
||||
enum
|
||||
{
|
||||
FE_TONEAREST = 0x0,
|
||||
#define FE_TONEAREST FE_TONEAREST
|
||||
FE_TOWARDZERO = 0x1,
|
||||
#define FE_TOWARDZERO FE_TOWARDZERO
|
||||
FE_UPWARD = 0x2,
|
||||
#define FE_UPWARD FE_UPWARD
|
||||
FE_DOWNWARD = 0x3
|
||||
#define FE_DOWNWARD FE_DOWNWARD
|
||||
};
|
||||
|
||||
|
||||
/* Type representing exception flags. */
|
||||
typedef unsigned short int fexcept_t;
|
||||
|
||||
|
||||
/* Type representing floating-point environment. This function corresponds
|
||||
to the layout of the block written by the `fstenv'. */
|
||||
typedef struct
|
||||
{
|
||||
unsigned int fp_control_register;
|
||||
}
|
||||
fenv_t;
|
||||
|
||||
/* If the default argument is used we use this value. */
|
||||
#define FE_DFL_ENV ((fenv_t *) -1)
|
40
sysdeps/mips/fclrexcpt.c
Normal file
40
sysdeps/mips/fclrexcpt.c
Normal file
@ -0,0 +1,40 @@
|
||||
/* Clear given exceptions in current floating-point environment.
|
||||
Copyright (C) 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 1998.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <fenv.h>
|
||||
#include <fpu_control.h>
|
||||
|
||||
void
|
||||
feclearexcept (int excepts)
|
||||
{
|
||||
int cw;
|
||||
|
||||
/* Mask out unsupported bits/exceptions. */
|
||||
excepts &= FE_ALL_EXCEPT;
|
||||
|
||||
/* Read the complete control word. */
|
||||
_FPU_GETCW (cw);
|
||||
|
||||
/* Clear exception bits. */
|
||||
cw &= ~excepts;
|
||||
|
||||
/* Put the new data in effect. */
|
||||
_FPU_SETCW (cw);
|
||||
}
|
28
sysdeps/mips/fegetenv.c
Normal file
28
sysdeps/mips/fegetenv.c
Normal file
@ -0,0 +1,28 @@
|
||||
/* Store current floating-point environment.
|
||||
Copyright (C) 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 1998.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <fenv.h>
|
||||
#include <fpu_control.h>
|
||||
|
||||
void
|
||||
fegetenv (fenv_t *envp)
|
||||
{
|
||||
_FPU_GETCW (*envp);
|
||||
}
|
33
sysdeps/mips/fegetround.c
Normal file
33
sysdeps/mips/fegetround.c
Normal file
@ -0,0 +1,33 @@
|
||||
/* Return current rounding direction.
|
||||
Copyright (C) 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 1998.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <fenv.h>
|
||||
#include <fpu_control.h>
|
||||
|
||||
int
|
||||
fegetround (void)
|
||||
{
|
||||
int cw;
|
||||
|
||||
/* Get control word. */
|
||||
_FPU_GETCW (cw);
|
||||
|
||||
return cw & 0x3;
|
||||
}
|
31
sysdeps/mips/fesetenv.c
Normal file
31
sysdeps/mips/fesetenv.c
Normal file
@ -0,0 +1,31 @@
|
||||
/* Install given floating-point environment.
|
||||
Copyright (C) 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 1998.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <fenv.h>
|
||||
#include <fpu_control.h>
|
||||
|
||||
void
|
||||
fesetenv (const fenv_t *envp)
|
||||
{
|
||||
if (envp == FE_DFL_ENV)
|
||||
_FPU_SETCW (_FPU_DEFAULT);
|
||||
else
|
||||
_FPU_SETCW (envp->fp_control_register);
|
||||
}
|
43
sysdeps/mips/fesetround.c
Normal file
43
sysdeps/mips/fesetround.c
Normal file
@ -0,0 +1,43 @@
|
||||
/* Set current rounding direction.
|
||||
Copyright (C) 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 1998.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <fenv.h>
|
||||
#include <fpu_control.h>
|
||||
|
||||
int
|
||||
fesetround (int round)
|
||||
{
|
||||
unsigned short int cw;
|
||||
|
||||
if ((round & ~0x3) != 0)
|
||||
/* ROUND is no valid rounding mode. */
|
||||
return 0;
|
||||
|
||||
/* Get current state. */
|
||||
_FPU_GETCW (cw);
|
||||
|
||||
/* Set rounding bits. */
|
||||
cw &= ~0x3;
|
||||
cw |= round;
|
||||
/* Set new state. */
|
||||
_FPU_SETCW (cw);
|
||||
|
||||
return 1;
|
||||
}
|
40
sysdeps/mips/feupdateenv.c
Normal file
40
sysdeps/mips/feupdateenv.c
Normal file
@ -0,0 +1,40 @@
|
||||
/* Install given floating-point environment and raise exceptions.
|
||||
Copyright (C) 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 1998.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <fenv.h>
|
||||
#include <fpu_control.h>
|
||||
|
||||
void
|
||||
feupdateenv (const fenv_t *envp)
|
||||
{
|
||||
int temp;
|
||||
|
||||
/* Save current exceptions. */
|
||||
_FPU_GETCW (temp);
|
||||
temp &= FE_ALL_EXCEPT;
|
||||
|
||||
/* Install new environment. */
|
||||
fesetenv (envp);
|
||||
|
||||
/* Raise the safed exception. Incidently for us the implementation
|
||||
defined format of the values in objects of type fexcept_t is the
|
||||
same as the ones specified using the FE_* constants. */
|
||||
feraiseexcept (temp);
|
||||
}
|
33
sysdeps/mips/fgetexcptflg.c
Normal file
33
sysdeps/mips/fgetexcptflg.c
Normal file
@ -0,0 +1,33 @@
|
||||
/* Store current representation for exceptions.
|
||||
Copyright (C) 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 1998.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <fenv.h>
|
||||
#include <fpu_control.h>
|
||||
|
||||
void
|
||||
fegetexceptflag (fexcept_t *flagp, int excepts)
|
||||
{
|
||||
fexcept_t temp;
|
||||
|
||||
/* Get the current exceptions. */
|
||||
_FPU_GETCW (temp);
|
||||
|
||||
*flagp = temp & excepts & FE_ALL_EXCEPT;
|
||||
}
|
33
sysdeps/mips/ftestexcept.c
Normal file
33
sysdeps/mips/ftestexcept.c
Normal file
@ -0,0 +1,33 @@
|
||||
/* Test exception in current environment.
|
||||
Copyright (C) 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 1998.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <fenv.h>
|
||||
#include <fpu_control.h>
|
||||
|
||||
int
|
||||
fetestexcept (int excepts)
|
||||
{
|
||||
int cw;
|
||||
|
||||
/* Get current control word. */
|
||||
_FPU_GETCW (cw);
|
||||
|
||||
return cw & excepts & FE_ALL_EXCEPT;
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1992, 1993, 1994, 1997 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1992, 1993, 1994, 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Brendan Kehoe (brendan@zen.org).
|
||||
|
||||
@ -21,10 +21,16 @@
|
||||
#define _ERRNO_H
|
||||
#include <bits/errno.h>
|
||||
|
||||
.comm errno, 4
|
||||
.bss
|
||||
.globl errno
|
||||
#ifdef __ELF__
|
||||
.type errno, @object
|
||||
.type errno, @object
|
||||
#endif
|
||||
.size errno, 4
|
||||
errno:
|
||||
.space 4
|
||||
|
||||
weak_alias (errno, _errno)
|
||||
|
||||
.set noreorder
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1995, 1996, 1997, 1998 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
|
||||
@ -33,7 +33,6 @@
|
||||
#define IPC_STAT 2 /* Get `ipc_perm' options. */
|
||||
#define IPC_INFO 3 /* See ipcs. */
|
||||
|
||||
|
||||
/* Special key values. */
|
||||
#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
|
||||
|
||||
@ -51,14 +50,6 @@ struct ipc_perm
|
||||
};
|
||||
|
||||
|
||||
/* Kludge to work around Linux' restriction of only up to five
|
||||
arguments to a system call. */
|
||||
struct ipc_kludge
|
||||
{
|
||||
void *msgp;
|
||||
long int msgtyp;
|
||||
};
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
/* The actual system call: all functions are multiplexed by this. */
|
||||
|
@ -19,16 +19,61 @@
|
||||
|
||||
#ifdef _SIGNAL_H
|
||||
|
||||
/* Take these architecture specific stuff from the kernel header files. */
|
||||
#define __need_fake_sigfuns
|
||||
#define __need_signums
|
||||
#include <asm/signal.h>
|
||||
/* Fake signal functions. */
|
||||
#define SIG_ERR ((__sighandler_t) -1) /* Error return. */
|
||||
#define SIG_DFL ((__sighandler_t) 0) /* Default action. */
|
||||
#define SIG_IGN ((__sighandler_t) 1) /* Ignore signal. */
|
||||
|
||||
#ifdef __USE_UNIX98
|
||||
# define SIG_HOLD ((__sighandler_t) 2) /* Add signal to hold mask. */
|
||||
#endif
|
||||
|
||||
#endif /* <signal.h> included. */
|
||||
|
||||
#define __need__nsig
|
||||
#include <asm/signal.h>
|
||||
#define SIGHUP 1 /* Hangup (POSIX). */
|
||||
#define SIGINT 2 /* Interrupt (ANSI). */
|
||||
#define SIGQUIT 3 /* Quit (POSIX). */
|
||||
#define SIGILL 4 /* Illegal instruction (ANSI). */
|
||||
#define SIGTRAP 5 /* Trace trap (POSIX). */
|
||||
#define SIGIOT 6 /* IOT trap (4.2 BSD). */
|
||||
#define SIGABRT SIGIOT /* Abort (ANSI). */
|
||||
#define SIGEMT 7
|
||||
#define SIGFPE 8 /* Floating-point exception (ANSI). */
|
||||
#define SIGKILL 9 /* Kill, unblockable (POSIX). */
|
||||
#define SIGBUS 10 /* BUS error (4.2 BSD). */
|
||||
#define SIGSEGV 11 /* Segmentation violation (ANSI). */
|
||||
#define SIGSYS 12
|
||||
#define SIGPIPE 13 /* Broken pipe (POSIX). */
|
||||
#define SIGALRM 14 /* Alarm clock (POSIX). */
|
||||
#define SIGTERM 15 /* Termination (ANSI). */
|
||||
#define SIGUSR1 16 /* User-defined signal 1 (POSIX). */
|
||||
#define SIGUSR2 17 /* User-defined signal 2 (POSIX). */
|
||||
#define SIGCHLD 18 /* Child status has changed (POSIX). */
|
||||
#define SIGCLD SIGCHLD /* Same as SIGCHLD (System V). */
|
||||
#define SIGPWR 19 /* Power failure restart (System V). */
|
||||
#define SIGWINCH 20 /* Window size change (4.3 BSD, Sun). */
|
||||
#define SIGURG 21 /* Urgent condition on socket (4.2 BSD). */
|
||||
#define SIGIO 22 /* I/O now possible (4.2 BSD). */
|
||||
#define SIGPOLL SIGIO /* Pollable event occurred (System V). */
|
||||
#define SIGSTOP 23 /* Stop, unblockable (POSIX). */
|
||||
#define SIGTSTP 24 /* Keyboard stop (POSIX). */
|
||||
#define SIGCONT 25 /* Continue (POSIX). */
|
||||
#define SIGTTIN 26 /* Background read from tty (POSIX). */
|
||||
#define SIGTTOU 27 /* Background write to tty (POSIX). */
|
||||
#define SIGVTALRM 28 /* Virtual alarm clock (4.2 BSD). */
|
||||
#define SIGPROF 29 /* Profiling alarm clock (4.2 BSD). */
|
||||
#define SIGXCPU 30 /* CPU limit exceeded (4.2 BSD). */
|
||||
#define SIGXFSZ 31 /* File size limit exceeded (4.2 BSD). */
|
||||
|
||||
|
||||
#define _NSIG 128 /* Biggest signal number + 1
|
||||
(including real-time signals). */
|
||||
|
||||
#define SIGRTMIN (__libc_current_sigrtmin ())
|
||||
#define SIGRTMAX (__libc_current_sigrtmax ())
|
||||
|
||||
/* These are the hard limits of the kernel. These values should not be
|
||||
used directly at user level. */
|
||||
#define __SIGRTMIN 32
|
||||
#define __SIGRTMAX (_NSIG - 1)
|
||||
|
||||
#endif /* <signal.h> included. */
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* System-specific socket constants and types. Linux version.
|
||||
/* System-specific socket constants and types. Linux/MIPS version.
|
||||
Copyright (C) 1991, 92, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
@ -17,7 +17,10 @@
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#if !defined _SYS_STAT_H && !defined _NETINET_IN_H
|
||||
#ifndef __BITS_SOCKET_H
|
||||
#define __BITS_SOCKET_H
|
||||
|
||||
#if !defined _SYS_SOCKET_H && !defined _NETINET_IN_H
|
||||
# error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
|
||||
#endif
|
||||
|
||||
@ -25,65 +28,93 @@
|
||||
#define __need_NULL
|
||||
#include <stddef.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
/* Type for length arguments in socket calls. */
|
||||
typedef unsigned int socklen_t;
|
||||
|
||||
/* Supported address families. */
|
||||
#define PF_UNSPEC 0
|
||||
/* Types of sockets. */
|
||||
enum __socket_type
|
||||
{
|
||||
SOCK_DGRAM = 1, /* Connectionless, unreliable datagrams
|
||||
of fixed maximum length. */
|
||||
#define SOCK_DGRAM SOCK_DGRAM
|
||||
SOCK_STREAM = 2, /* Sequenced, reliable, connection-based
|
||||
byte streams. */
|
||||
#define SOCK_STREAM SOCK_STREAM
|
||||
SOCK_RAW = 3, /* Raw protocol interface. */
|
||||
#define SOCK_RAW SOCK_RAW
|
||||
SOCK_RDM = 4, /* Reliably-delivered messages. */
|
||||
#define SOCK_RDM SOCK_RDM
|
||||
SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
|
||||
datagrams of fixed maximum length. */
|
||||
#define SOCK_SEQPACKET SOCK_SEQPACKET
|
||||
SOCK_PACKET = 10 /* Linux specific way of getting packets
|
||||
at the dev level. For writing rarp and
|
||||
other similar things on the user level. */
|
||||
#define SOCK_PACKET SOCK_PACKET
|
||||
};
|
||||
|
||||
/* Protocol families. */
|
||||
#define PF_UNSPEC 0 /* Unspecified. */
|
||||
#define PF_LOCAL 1 /* Local to host (pipes and file-domain). */
|
||||
#define PF_UNIX PF_LOCAL /* Old BSD name for PF_LOCAL. */
|
||||
#define PF_FILE PF_LOCAL /* POSIX name for PF_LOCAL. */
|
||||
#define PF_FILE PF_LOCAL /* Another non-standard name for PF_LOCAL. */
|
||||
#define PF_INET 2 /* IP protocol family. */
|
||||
#define PF_AX25 3 /* Amateur Radio AX.25. */
|
||||
#define PF_IPX 4 /* Novell Internet Protocol. */
|
||||
#define PF_APPLETALK 5 /* Don't use this. */
|
||||
#define PF_APPLETALK 5 /* Appletalk DDP. */
|
||||
#define PF_NETROM 6 /* Amateur radio NetROM. */
|
||||
#define PF_BRIDGE 7 /* Multiprotocol bridge. */
|
||||
#define PF_AAL5 8 /* Reserved for Werner's ATM. */
|
||||
#define PF_ATMPVC 8 /* ATM PVCs. */
|
||||
#define PF_X25 9 /* Reserved for X.25 project. */
|
||||
#define PF_INET6 10 /* IP version 6. */
|
||||
#define PF_ROSE 11 /* Amateur Radio X.25 PLP */
|
||||
#define PF_DECnet 12 /* Reserved for DECnet project */
|
||||
#define PF_NETBEUI 13 /* Reserved for 802.2LLC project*/
|
||||
#define PF_SECURITY 14 /* Security callback pseudo AF */
|
||||
#define PF_KEY 15 /* PF_KEY key management API */
|
||||
#define PF_ROSE 11 /* Amateur Radio X.25 PLP. */
|
||||
#define PF_DECnet 12 /* Reserved for DECnet project. */
|
||||
#define PF_NETBEUI 13 /* Reserved for 802.2LLC project. */
|
||||
#define PF_SECURITY 14 /* Security callback pseudo AF. */
|
||||
#define PF_KEY 15 /* PF_KEY key management API. */
|
||||
#define PF_NETLINK 16
|
||||
#define PF_ROUTE PF_NETLINK /* Alias to emulate 4.4BSD */
|
||||
#define PF_PACKET 17 /* Packet family */
|
||||
#define PF_ASH 18 /* Ash */
|
||||
#define PF_MAX 32 /* For now.. */
|
||||
#define PF_ROUTE PF_NETLINK /* Alias to emulate 4.4BSD. */
|
||||
#define PF_PACKET 17 /* Packet family. */
|
||||
#define PF_ASH 18 /* Ash. */
|
||||
#define PF_ECONET 19 /* Acorn Econet. */
|
||||
#define PF_ATMSVC 20 /* ATM SVCs. */
|
||||
#define PF_SNA 22 /* Linux SNA Project */
|
||||
#define PF_MAX 32 /* For now.. */
|
||||
|
||||
/* Protocol families, same as address families. */
|
||||
#define AF_UNSPEC PF_UNSPEC
|
||||
#define AF_UNIX PF_UNIX
|
||||
#define AF_LOCAL PF_LOCAL
|
||||
#define AF_FILE PF_FILE
|
||||
|
||||
#define AF_AX25 PF_AX25
|
||||
#define AF_IPX PF_IPX
|
||||
#define AF_APPLETALK PF_APPLETALK
|
||||
/* Address families. */
|
||||
#define AF_UNSPEC PF_UNSPEC
|
||||
#define AF_LOCAL PF_LOCAL
|
||||
#define AF_UNIX PF_UNIX
|
||||
#define AF_FILE PF_FILE
|
||||
#define AF_INET PF_INET
|
||||
#define AF_AX25 PF_AX25
|
||||
#define AF_IPX PF_IPX
|
||||
#define AF_APPLETALK PF_APPLETALK
|
||||
#define AF_NETROM PF_NETROM
|
||||
#define AF_BRIDGE PF_BRIDGE
|
||||
#define AF_AAL5 PF_AAL5
|
||||
#define AF_X25 PF_X25
|
||||
#define AF_INET6 PF_INET6
|
||||
#define AF_ROSE PF_ROSE
|
||||
#define AF_DECNET PF_DECNET
|
||||
#define AF_NETBEUI PF_NETBEUI
|
||||
#define AF_BRIDGE PF_BRIDGE
|
||||
#define AF_ATMPVC PF_ATMPVC
|
||||
#define AF_X25 PF_X25
|
||||
#define AF_INET6 PF_INET6
|
||||
#define AF_ROSE PF_ROSE
|
||||
#define AF_DECnet PF_DECnet
|
||||
#define AF_NETBEUI PF_NETBEUI
|
||||
#define AF_SECURITY PF_SECURITY
|
||||
#define pseudo_AF_KEY PF_KEY
|
||||
#define AF_NETLINK PF_NETLINK
|
||||
#define AF_ROUTE PF_ROUTE
|
||||
#define AF_PACKET PF_PACKET
|
||||
#define AF_ASH PF_ASH
|
||||
#define AF_MAX PF_MAX
|
||||
#define AF_ECONET PF_ECONET
|
||||
#define AF_ATMSVC PF_ATMSVC
|
||||
#define AF_SNA PF_SNA
|
||||
#define AF_MAX PF_MAX
|
||||
|
||||
/* Socket level values. Others are defined in the appropriate headers.
|
||||
|
||||
XXX These definitions also should go into the appropriate headers as
|
||||
far as they are available. */
|
||||
#define SOL_IPV6 41
|
||||
#define SOL_ICMPV6 58
|
||||
#define SOL_RAW 255
|
||||
#define SOL_DECNET 261
|
||||
#define SOL_X25 262
|
||||
@ -106,10 +137,15 @@ struct sockaddr
|
||||
enum
|
||||
{
|
||||
MSG_OOB = 0x01, /* Process out-of-band data. */
|
||||
#define MSG_OOB MSG_OOB
|
||||
MSG_PEEK = 0x02, /* Peek at incoming messages. */
|
||||
#define MSG_PEEK MSG_PEEK
|
||||
MSG_DONTROUTE = 0x04, /* Don't use local routing. */
|
||||
#define MSG_DONTROUTE MSG_DONTROUTE
|
||||
MSG_CTRUNC = 0x08, /* Control data lost before delivery. */
|
||||
#define MSG_CTRUNC MSG_CTRUNC
|
||||
MSG_PROXY = 0x10 /* Supply or ask second address. */
|
||||
#define MSG_PROXY MSG_PROXY
|
||||
};
|
||||
|
||||
|
||||
@ -121,10 +157,10 @@ struct msghdr
|
||||
socklen_t msg_namelen; /* Length of address data. */
|
||||
|
||||
struct iovec *msg_iov; /* Vector of data to send/receive into. */
|
||||
int msg_iovlen; /* Number of elements in the vector. */
|
||||
size_t msg_iovlen; /* Number of elements in the vector. */
|
||||
|
||||
__ptr_t msg_control; /* Ancillary data (eg BSD filedesc passing). */
|
||||
socklen_t msg_controllen; /* Ancillary data buffer length. */
|
||||
size_t msg_controllen; /* Ancillary data buffer length. */
|
||||
|
||||
int msg_flags; /* Flags on received message. */
|
||||
};
|
||||
@ -132,12 +168,13 @@ struct msghdr
|
||||
/* Structure used for storage of ancillary data object information. */
|
||||
struct cmsghdr
|
||||
{
|
||||
socklen_t cmsg_len; /* Length of data in cmsg_data plus length
|
||||
size_t cmsg_len; /* Length of data in cmsg_data plus length
|
||||
of cmsghdr structure. */
|
||||
int cmsg_level; /* Originating protocol. */
|
||||
int cmsg_type; /* Protocol specific type. */
|
||||
#if !defined __STRICT_ANSI__ && defined __GNUC__ && __GNUC__ >= 2
|
||||
unsigned char __cmsg_data[0]; /* Ancillary data. */
|
||||
/* XXX Perhaps this should be removed. */
|
||||
#endif
|
||||
};
|
||||
|
||||
@ -157,14 +194,14 @@ struct cmsghdr
|
||||
+ CMSG_ALIGN (sizeof (struct cmsghdr)))
|
||||
#define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
|
||||
|
||||
|
||||
#ifndef _EXTERN_INLINE
|
||||
# define _EXTERN_INLINE extern __inline
|
||||
#endif
|
||||
extern struct cmsghdr *__cmsg_nxthdr __P ((struct msghdr *__mhdr,
|
||||
struct cmsghdr *__cmsg));
|
||||
#ifdef __USE_EXTERN_INLINES
|
||||
# ifndef _EXTERN_INLINE
|
||||
# define _EXTERN_INLINE extern __inline
|
||||
# endif
|
||||
_EXTERN_INLINE struct cmsghdr *
|
||||
__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)
|
||||
__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg) __THROW
|
||||
{
|
||||
if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
|
||||
/* The kernel header does this so there may be a reason. */
|
||||
@ -180,7 +217,29 @@ __cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)
|
||||
return NULL;
|
||||
return __cmsg;
|
||||
}
|
||||
#endif /* Use `extern inline'. */
|
||||
|
||||
/* Socket level message types. This must match the definitions in
|
||||
<linux/socket.h>. */
|
||||
enum
|
||||
{
|
||||
SCM_RIGHTS = 0x01, /* Transfer file descriptors. */
|
||||
#define SCM_RIGHTS SCM_RIGHTS
|
||||
#ifdef __USE_BSD
|
||||
SCM_CREDENTIALS = 0x02, /* Credentials passing. */
|
||||
# define SCM_CREDENTIALS SCM_CREDENTIALS
|
||||
#endif
|
||||
__SCM_CONNECT = 0x03 /* Data array is `struct scm_connect'. */
|
||||
};
|
||||
|
||||
/* User visible structure for SCM_CREDENTIALS message */
|
||||
|
||||
struct ucred
|
||||
{
|
||||
pid_t pid; /* PID of sending process. */
|
||||
uid_t uid; /* UID of sending process. */
|
||||
gid_t gid; /* GID of sending process. */
|
||||
};
|
||||
|
||||
/* Get socket manipulation related informations from kernel headers. */
|
||||
#include <asm/socket.h>
|
||||
@ -192,3 +251,5 @@ struct linger
|
||||
int l_onoff; /* Nonzero to linger on close. */
|
||||
int l_linger; /* Time to linger. */
|
||||
};
|
||||
|
||||
#endif /* bits/socket.h */
|
||||
|
@ -22,15 +22,17 @@
|
||||
|
||||
/* Versions of the `struct stat' data structure. */
|
||||
#define _STAT_VER_LINUX_OLD 1
|
||||
#define _STAT_VER_KERNEL 1
|
||||
#define _STAT_VER_SVR4 2
|
||||
#define _STAT_VER_LINUX 3
|
||||
#define _STAT_VER _STAT_VER_LINUX /* The one defined below. */
|
||||
#define _STAT_VER _STAT_VER_LINUX /* The one defined below. */
|
||||
|
||||
/* Versions of the `xmknod' interface. */
|
||||
#define _MKNOD_VER_LINUX 1
|
||||
#define _MKNOD_VER_SVR4 2
|
||||
#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
|
||||
|
||||
|
||||
/* Structure describing file characteristics. */
|
||||
struct stat
|
||||
{
|
||||
|
@ -1,57 +0,0 @@
|
||||
/* System-dependent timing definitions. Linux/MIPS version.
|
||||
Copyright (C) 1996, 1997, 1998 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 Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/*
|
||||
* Never include this file directly; use <time.h> instead.
|
||||
*/
|
||||
|
||||
#ifndef __need_timeval
|
||||
# ifndef _BITS_TIME_H
|
||||
# define _BITS_TIME_H 1
|
||||
|
||||
/* ISO/IEC 9899:1990 7.12.1: <time.h>
|
||||
The macro `CLOCKS_PER_SEC' is the number per second of the value
|
||||
returned by the `clock' function. */
|
||||
/* CAE XSH, Issue 4, Version 2: <time.h>
|
||||
The value of CLOCKS_PER_SEC is required to be 1 million on all
|
||||
XSI-conformant systems. */
|
||||
# define CLOCKS_PER_SEC 1000000
|
||||
|
||||
# ifndef __STRICT_ANSI__
|
||||
/* Even though CLOCKS_PER_SEC has such a strange value CLK_TCK
|
||||
presents the real value for clock ticks per second for the system. */
|
||||
# define CLK_TCK 100 /* XXX not correct for all systems. */
|
||||
# endif
|
||||
|
||||
# endif /* bits/time.h */
|
||||
#endif
|
||||
|
||||
#ifdef __need_timeval
|
||||
# undef __need_timeval
|
||||
# ifndef _STRUCT_TIMEVAL
|
||||
# define _STRUCT_TIMEVAL 1
|
||||
/* A time value that is accurate to the nearest
|
||||
microsecond but also has a range of years. */
|
||||
struct timeval
|
||||
{
|
||||
long int tv_sec; /* Seconds. */
|
||||
long int tv_usec; /* Microseconds. */
|
||||
};
|
||||
# endif /* struct timeval */
|
||||
#endif /* need timeval */
|
@ -4,9 +4,12 @@
|
||||
|
||||
#define HAVE_SA_RESTORER
|
||||
|
||||
/* Linux/MIPS still uses the old sigaction structure in the kernel. */
|
||||
#define old_kernel_sigaction kernel_sigaction
|
||||
|
||||
struct kernel_sigaction {
|
||||
unsigned int sa_flags;
|
||||
__sighandler_t sa_handler;
|
||||
__sighandler_t k_sa_handler;
|
||||
unsigned long sa_mask;
|
||||
unsigned int __pad0[3]; /* reserved, keep size constant */
|
||||
|
||||
|
@ -1,9 +1,24 @@
|
||||
#ifndef _SYS_KERNEL_TERMIOS_H
|
||||
#define _SYS_KERNEL_TERMIOS_H 1
|
||||
/* The following corresponds to the values from the Linux 2.1.24 kernel. */
|
||||
/* Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
/* We need the definition of tcflag_t, cc_t, and speed_t. */
|
||||
#include <bits/termios.h>
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef _KERNEL_TERMIOS_H
|
||||
#define _KERNEL_TERMIOS_H 1
|
||||
/* The following corresponds to the values from the Linux 2.1.24 kernel. */
|
||||
|
||||
#define __KERNEL_NCCS 23
|
||||
|
||||
|
62
sysdeps/unix/sysv/linux/mips/pread.c
Normal file
62
sysdeps/unix/sysv/linux/mips/pread.c
Normal file
@ -0,0 +1,62 @@
|
||||
/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
|
||||
#ifdef __NR_pread
|
||||
|
||||
extern ssize_t __syscall_pread (int fd, void *buf, size_t count, int dummy,
|
||||
off_t offset_hi, off_t offset_lo);
|
||||
|
||||
static ssize_t __emulate_pread (int fd, void *buf, size_t count,
|
||||
off_t offset) internal_function;
|
||||
|
||||
|
||||
ssize_t
|
||||
__pread (fd, buf, count, offset)
|
||||
int fd;
|
||||
void *buf;
|
||||
size_t count;
|
||||
off_t offset;
|
||||
{
|
||||
ssize_t result;
|
||||
|
||||
/* First try the syscall. */
|
||||
#if defined(__MIPSEB__)
|
||||
result = INLINE_SYSCALL (pread, 6, fd, buf, count, 0, 0, offset);
|
||||
#elif defined(__MIPSEL__)
|
||||
result = INLINE_SYSCALL (pread, 6, fd, buf, count, 0, offset, 0);
|
||||
#endif
|
||||
if (result == -1 && errno == ENOSYS)
|
||||
/* No system call available. Use the emulation. */
|
||||
result = __emulate_pread (fd, buf, count, offset);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
weak_alias (__pread, pread)
|
||||
|
||||
#define __pread(fd, buf, count, offset) \
|
||||
static internal_function __emulate_pread (fd, buf, count, offset)
|
||||
#endif
|
||||
#include <sysdeps/posix/pread.c>
|
65
sysdeps/unix/sysv/linux/mips/pread64.c
Normal file
65
sysdeps/unix/sysv/linux/mips/pread64.c
Normal file
@ -0,0 +1,65 @@
|
||||
/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
|
||||
#ifdef __NR_pread
|
||||
|
||||
extern ssize_t __syscall_pread (int fd, void *buf, size_t count, int dummy,
|
||||
off_t offset_hi, off_t offset_lo);
|
||||
|
||||
static ssize_t __emulate_pread64 (int fd, void *buf, size_t count,
|
||||
off64_t offset) internal_function;
|
||||
|
||||
|
||||
ssize_t
|
||||
__pread64 (fd, buf, count, offset)
|
||||
int fd;
|
||||
void *buf;
|
||||
size_t count;
|
||||
off64_t offset;
|
||||
{
|
||||
ssize_t result;
|
||||
|
||||
/* First try the syscall. */
|
||||
#if defined(__MIPSEB__)
|
||||
result = INLINE_SYSCALL (pread, 6, fd, buf, count, 0, (off_t) (offset >> 32),
|
||||
(off_t) (offset & 0xffffffff));
|
||||
#elif defined(__MIPSEL__)
|
||||
result = INLINE_SYSCALL (pread, 6, fd, buf, count, 0,
|
||||
(off_t) (offset & 0xffffffff),
|
||||
(off_t) (offset >> 32));
|
||||
#endif
|
||||
if (result == -1 && errno == ENOSYS)
|
||||
/* No system call available. Use the emulation. */
|
||||
result = __emulate_pread64 (fd, buf, count, offset);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
weak_alias (__pread64, pread64)
|
||||
|
||||
#define __pread64(fd, buf, count, offset) \
|
||||
static internal_function __emulate_pread64 (fd, buf, count, offset)
|
||||
#endif
|
||||
#include <sysdeps/posix/pread64.c>
|
62
sysdeps/unix/sysv/linux/mips/pwrite.c
Normal file
62
sysdeps/unix/sysv/linux/mips/pwrite.c
Normal file
@ -0,0 +1,62 @@
|
||||
/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
|
||||
#ifdef __NR_pwrite
|
||||
|
||||
extern ssize_t __syscall_pwrite (int fd, const void *buf, size_t count,
|
||||
int dummy, off_t offset_hi, off_t offset_lo);
|
||||
|
||||
static ssize_t __emulate_pwrite (int fd, const void *buf, size_t count,
|
||||
off_t offset) internal_function;
|
||||
|
||||
|
||||
ssize_t
|
||||
__pwrite (fd, buf, count, offset)
|
||||
int fd;
|
||||
const void *buf;
|
||||
size_t count;
|
||||
off_t offset;
|
||||
{
|
||||
ssize_t result;
|
||||
|
||||
/* First try the syscall. */
|
||||
#if defined(__MIPSEB__)
|
||||
result = INLINE_SYSCALL (pwrite, 6, fd, buf, count, 0, 0, offset);
|
||||
#elif defined(__MIPSEL__)
|
||||
result = INLINE_SYSCALL (pwrite, 6, fd, buf, count, 0, offset, 0);
|
||||
#endif
|
||||
if (result == -1 && errno == ENOSYS)
|
||||
/* No system call available. Use the emulation. */
|
||||
result = __emulate_pwrite (fd, buf, count, offset);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
weak_alias (__pwrite, pwrite)
|
||||
|
||||
#define __pwrite(fd, buf, count, offset) \
|
||||
static internal_function __emulate_pwrite (fd, buf, count, offset)
|
||||
#endif
|
||||
#include <sysdeps/posix/pwrite.c>
|
65
sysdeps/unix/sysv/linux/mips/pwrite64.c
Normal file
65
sysdeps/unix/sysv/linux/mips/pwrite64.c
Normal file
@ -0,0 +1,65 @@
|
||||
/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ralf Baechle <ralf@gnu.org>, 1998.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
|
||||
#ifdef __NR_pwrite
|
||||
|
||||
extern ssize_t __syscall_pwrite (int fd, const void *buf, size_t count,
|
||||
int dummy, off_t offset_hi, off_t offset_lo);
|
||||
|
||||
static ssize_t __emulate_pwrite64 (int fd, const void *buf, size_t count,
|
||||
off64_t offset) internal_function;
|
||||
|
||||
|
||||
ssize_t
|
||||
__pwrite64 (fd, buf, count, offset)
|
||||
int fd;
|
||||
const void *buf;
|
||||
size_t count;
|
||||
off64_t offset;
|
||||
{
|
||||
ssize_t result;
|
||||
|
||||
/* First try the syscall. */
|
||||
#if defined(__MIPSEB__)
|
||||
result = INLINE_SYSCALL (pwrite, 6, fd, buf, count, 0, (off_t) (offset >> 32),
|
||||
(off_t) (offset & 0xffffffff));
|
||||
#elif defined(__MIPSEL__)
|
||||
result = INLINE_SYSCALL (pwrite, 6, fd, buf, count, 0,
|
||||
(off_t) (offset & 0xffffffff),
|
||||
(off_t) (offset >> 32));
|
||||
#endif
|
||||
if (result == -1 && errno == ENOSYS)
|
||||
/* No system call available. Use the emulation. */
|
||||
result = __emulate_pwrite64 (fd, buf, count, offset);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
weak_alias (__pwrite64, pwrite64)
|
||||
|
||||
#define __pwrite64(fd, buf, count, offset) \
|
||||
static internal_function __emulate_pwrite64 (fd, buf, count, offset)
|
||||
#endif
|
||||
#include <sysdeps/posix/pwrite64.c>
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1995, 1996, 1997, 1998 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
|
||||
@ -1009,7 +1009,7 @@
|
||||
#define SYS_time (SYS_Linux + 13)
|
||||
#define SYS_mknod (SYS_Linux + 14)
|
||||
#define SYS_chmod (SYS_Linux + 15)
|
||||
#define SYS_chown (SYS_Linux + 16)
|
||||
#define SYS_lchown (SYS_Linux + 16)
|
||||
#define SYS_break (SYS_Linux + 17)
|
||||
#define SYS_oldstat (SYS_Linux + 18)
|
||||
#define SYS_lseek (SYS_Linux + 19)
|
||||
@ -1045,7 +1045,7 @@
|
||||
#define SYS_geteuid (SYS_Linux + 49)
|
||||
#define SYS_getegid (SYS_Linux + 50)
|
||||
#define SYS_acct (SYS_Linux + 51)
|
||||
#define SYS_phys (SYS_Linux + 52)
|
||||
#define SYS_umount2 (SYS_Linux + 52)
|
||||
#define SYS_lock (SYS_Linux + 53)
|
||||
#define SYS_ioctl (SYS_Linux + 54)
|
||||
#define SYS_fcntl (SYS_Linux + 55)
|
||||
@ -1183,5 +1183,25 @@
|
||||
#define SYS_query_module (SYS_Linux + 187)
|
||||
#define SYS_poll (SYS_Linux + 188)
|
||||
#define SYS_nfsservctl (SYS_Linux + 189)
|
||||
#define SYS_setresgid (SYS_Linux + 190)
|
||||
#define SYS_getresgid (SYS_Linux + 191)
|
||||
#define SYS_prctl (SYS_Linux + 192)
|
||||
#define SYS_rt_sigreturn (SYS_Linux + 193)
|
||||
#define SYS_rt_sigaction (SYS_Linux + 194)
|
||||
#define SYS_rt_sigprocmask (SYS_Linux + 195)
|
||||
#define SYS_rt_sigpending (SYS_Linux + 196)
|
||||
#define SYS_rt_sigtimedwait (SYS_Linux + 197)
|
||||
#define SYS_rt_sigqueueinfo (SYS_Linux + 198)
|
||||
#define SYS_rt_sigsuspend (SYS_Linux + 199)
|
||||
#define SYS_pread (SYS_Linux + 200)
|
||||
#define SYS_pwrite (SYS_Linux + 201)
|
||||
#define SYS_chown (SYS_Linux + 202)
|
||||
#define SYS_getcwd (SYS_Linux + 203)
|
||||
#define SYS_capget (SYS_Linux + 204)
|
||||
#define SYS_capset (SYS_Linux + 205)
|
||||
#define SYS_sigaltstack (SYS_Linux + 206)
|
||||
#define SYS_sendfile (SYS_Linux + 207)
|
||||
#define SYS_putpmsg (SYS_Linux + 208)
|
||||
#define SYS_getpmsg (SYS_Linux + 209)
|
||||
|
||||
#endif /* sys/syscall.h */
|
||||
|
77
sysdeps/unix/sysv/linux/mips/sys/ucontext.h
Normal file
77
sysdeps/unix/sysv/linux/mips/sys/ucontext.h
Normal file
@ -0,0 +1,77 @@
|
||||
/* Copyright (C) 1997, 1998 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 Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Don't rely on this, the interface is currently messed up and may need to
|
||||
be broken to be fixed. */
|
||||
#ifndef _SYS_UCONTEXT_H
|
||||
#define _SYS_UCONTEXT_H 1
|
||||
|
||||
#include <features.h>
|
||||
#include <signal.h>
|
||||
|
||||
/* We need the signal context definitions even if they are not used
|
||||
included in <signal.h>. */
|
||||
#include <bits/sigcontext.h>
|
||||
|
||||
|
||||
/* Type for general register. */
|
||||
typedef unsigned long greg_t;
|
||||
|
||||
/* Number of general registers. */
|
||||
#define NGREG 37
|
||||
#define NFPREG 33
|
||||
|
||||
/* Container for all general registers. */
|
||||
typedef struct gregset {
|
||||
greg_t g_regs[32];
|
||||
greg_t g_hi;
|
||||
greg_t g_lo;
|
||||
greg_t g_pad[3];
|
||||
} gregset_t;
|
||||
|
||||
/* Container for all FPU registers. */
|
||||
typedef struct fpregset {
|
||||
union {
|
||||
double fp_dregs[32];
|
||||
struct {
|
||||
float _fp_fregs;
|
||||
unsigned int _fp_pad;
|
||||
} fp_fregs[32];
|
||||
} fp_r;
|
||||
unsigned int fp_csr;
|
||||
unsigned int fp_pad;
|
||||
} fpregset_t;
|
||||
|
||||
/* Context to describe whole processor state. */
|
||||
typedef struct
|
||||
{
|
||||
gregset_t gregs;
|
||||
fpregset_t fpregs;
|
||||
} mcontext_t;
|
||||
|
||||
/* Userlevel context. */
|
||||
typedef struct ucontext
|
||||
{
|
||||
unsigned long uc_flags;
|
||||
struct ucontext *uc_link;
|
||||
stack_t uc_stack;
|
||||
mcontext_t uc_mcontext;
|
||||
__sigset_t uc_sigmask;
|
||||
} ucontext_t;
|
||||
|
||||
#endif /* sys/ucontext.h */
|
@ -34,13 +34,16 @@ shutdown - shutdown 2 __shutdown shutdown
|
||||
socket - socket 3 __socket socket
|
||||
socketpair - socketpair 4 __socketpair socketpair
|
||||
|
||||
getresuid - getresuid 3 getresuid
|
||||
getresgid - getresgid 3 getresgid
|
||||
|
||||
#
|
||||
# There are defined locally because the caller is also defined in this dir.
|
||||
#
|
||||
s_llseek llseek _llseek 5 __syscall__llseek
|
||||
s_llseek llseek _llseek 5 __sys_llseek
|
||||
s_sigaction sigaction sigaction 3 __syscall_sigaction
|
||||
s_ustat ustat ustat 2 __syscall_ustat
|
||||
sys_mknod xmknod mknod 3 __syscall_mknod
|
||||
sys_fstat fxstat fstat 2 __syscall_fstat
|
||||
sys_lstat lxstat lstat 2 __syscall_lstat
|
||||
sys_stat xstat stat 2 __syscall_stat
|
||||
|
||||
# System calls with wrappers.
|
||||
rt_sigaction - rt_sigaction 4 __syscall_rt_sigaction
|
||||
@ -55,16 +58,14 @@ s_getpriority getpriority getpriority 2 __syscall_getpriority
|
||||
s_getresgid getresgid getresgid 3 __syscall_getresgid
|
||||
s_getresuid getresuid getresuid 3 __syscall_getresuid
|
||||
s_poll poll poll 3 __syscall_poll
|
||||
s_pread64 pread64 pread 5 __syscall_pread
|
||||
s_pread pread pread 6 __syscall_pread
|
||||
s_ptrace ptrace ptrace 4 __syscall_ptrace
|
||||
s_pwrite64 pwrite64 pwrite 5 __syscall_pwrite
|
||||
s_pwrite pwrite pwrite 6 __syscall_pwrite
|
||||
s_reboot reboot reboot 3 __syscall_reboot
|
||||
s_sigaction sigaction sigaction 3 __syscall_sigaction
|
||||
s_sigpending sigpending sigpending 1 __syscall_sigpending
|
||||
s_sigprocmask sigprocmask sigprocmask 3 __syscall_sigprocmask
|
||||
s_sigsuspend sigsuspend sigsuspend 3 __syscall_sigsuspend
|
||||
s_sysctl sysctl _sysctl 1 __syscall__sysctl
|
||||
s_ustat ustat ustat 2 __syscall_ustat
|
||||
# Todo: we can pass 6 args in registers, no need for the wrapper
|
||||
sysctl sysctl _sysctl 1 __syscall_sysctl
|
||||
sys_fstat fxstat fstat 2 __syscall_fstat
|
||||
sys_lstat lxstat lstat 2 __syscall_lstat
|
||||
sys_mknod xmknod mknod 3 __syscall_mknod
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
@ -17,9 +17,12 @@
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <errno.h>
|
||||
#include <sys/ustat.h>
|
||||
#include <sys/sysmacros.h>
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
|
||||
extern int __syscall_ustat (unsigned long dev, struct ustat *ubuf);
|
||||
|
||||
@ -31,5 +34,5 @@ ustat (dev_t dev, struct ustat *ubuf)
|
||||
/* We must convert the value to dev_t type used by the kernel. */
|
||||
k_dev = ((major (dev) & 0xff) << 8) | (minor (dev) & 0xff);
|
||||
|
||||
return __syscall_ustat (k_dev, ubuf);
|
||||
return INLINE_SYSCALL (ustat, 2, k_dev, ubuf);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* xmknod call using old-style Unix mknod system call.
|
||||
Copyright (C) 1991, 1993, 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
Copyright (C) 1991, 93, 95, 96, 97, 98 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,6 +22,9 @@
|
||||
#include <sys/stat.h>
|
||||
#include <sys/sysmacros.h>
|
||||
|
||||
#include <sysdep.h>
|
||||
#include <sys/syscall.h>
|
||||
|
||||
extern int __syscall_mknod (const char *, unsigned long, unsigned int);
|
||||
|
||||
/* Create a device file named PATH, with permission and special bits MODE
|
||||
@ -41,7 +44,7 @@ __xmknod (int vers, const char *path, mode_t mode, dev_t *dev)
|
||||
/* We must convert the value to dev_t type used by the kernel. */
|
||||
k_dev = ((major (*dev) & 0xff) << 8) | (minor (*dev) & 0xff);
|
||||
|
||||
return __syscall_mknod (path, mode, k_dev);
|
||||
return INLINE_SYSCALL (mknod, 3, path, mode, k_dev);
|
||||
}
|
||||
|
||||
weak_alias (__xmknod, _xmknod)
|
||||
|
@ -1,80 +0,0 @@
|
||||
/* xstat using old-style Unix stat system call.
|
||||
Copyright (C) 1991, 1995, 1996, 1997 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 Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <errno.h>
|
||||
#include <stddef.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include <kernel_stat.h>
|
||||
|
||||
extern int __syscall_stat (const char *, struct kernel_stat *);
|
||||
|
||||
/* Get information about the file NAME in BUF. */
|
||||
int
|
||||
__xstat (int vers, const char *name, struct stat *buf)
|
||||
{
|
||||
struct kernel_stat kbuf;
|
||||
int result;
|
||||
|
||||
switch (vers)
|
||||
{
|
||||
case _STAT_VER_LINUX_OLD:
|
||||
/* Nothing to do. The struct is in the form the kernel expects
|
||||
it to be. */
|
||||
result = __syscall_stat (name, (struct kernel_stat *) buf);
|
||||
break;
|
||||
|
||||
case _STAT_VER_LINUX:
|
||||
/* Do the system call. */
|
||||
result = __syscall_stat (name, &kbuf);
|
||||
|
||||
/* Convert to current kernel version of `struct stat'. */
|
||||
buf->st_dev = kbuf.st_dev;
|
||||
buf->st_pad1[0] = 0; buf->st_pad1[1] = 0; buf->st_pad1[2] = 0;
|
||||
buf->st_ino = kbuf.st_ino;
|
||||
buf->st_mode = kbuf.st_mode;
|
||||
buf->st_nlink = kbuf.st_nlink;
|
||||
buf->st_uid = kbuf.st_uid;
|
||||
buf->st_gid = kbuf.st_gid;
|
||||
buf->st_rdev = kbuf.st_rdev;
|
||||
buf->st_pad2[0] = 0; buf->st_pad2[1] = 0;
|
||||
buf->st_pad3 = 0;
|
||||
buf->st_size = kbuf.st_size;
|
||||
buf->st_blksize = kbuf.st_blksize;
|
||||
buf->st_blocks = kbuf.st_blocks;
|
||||
|
||||
buf->st_atime = kbuf.st_atime; buf->__reserved0 = 0;
|
||||
buf->st_mtime = kbuf.st_mtime; buf->__reserved1 = 0;
|
||||
buf->st_ctime = kbuf.st_ctime; buf->__reserved2 = 0;
|
||||
|
||||
buf->st_pad4[0] = 0; buf->st_pad4[1] = 0;
|
||||
buf->st_pad4[2] = 0; buf->st_pad4[3] = 0;
|
||||
buf->st_pad4[4] = 0; buf->st_pad4[5] = 0;
|
||||
buf->st_pad4[6] = 0; buf->st_pad4[7] = 0;
|
||||
break;
|
||||
|
||||
default:
|
||||
__set_errno (EINVAL);
|
||||
result = -1;
|
||||
break;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
weak_alias (__xstat, _xstat)
|
120
sysdeps/unix/sysv/linux/mips/xstatconv.c
Normal file
120
sysdeps/unix/sysv/linux/mips/xstatconv.c
Normal file
@ -0,0 +1,120 @@
|
||||
/* Convert between the kernel's `struct stat' format, and libc's.
|
||||
Copyright (C) 1991, 1995, 1996, 1997, 1998 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 Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <string.h>
|
||||
|
||||
|
||||
static inline int
|
||||
xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
|
||||
{
|
||||
switch (vers)
|
||||
{
|
||||
case _STAT_VER_KERNEL:
|
||||
/* Nothing to do. The struct is in the form the kernel expects.
|
||||
We should have short-circuted before we got here, but for
|
||||
completeness... */
|
||||
*(struct kernel_stat *) ubuf = *kbuf;
|
||||
break;
|
||||
|
||||
case _STAT_VER_LINUX:
|
||||
{
|
||||
struct stat *buf = ubuf;
|
||||
|
||||
/* Convert to current kernel version of `struct stat'. */
|
||||
buf->st_dev = kbuf->st_dev;
|
||||
buf->st_pad1[0] = 0; buf->st_pad1[1] = 0; buf->st_pad1[2] = 0;
|
||||
buf->st_ino = kbuf->st_ino;
|
||||
buf->st_mode = kbuf->st_mode;
|
||||
buf->st_nlink = kbuf->st_nlink;
|
||||
buf->st_uid = kbuf->st_uid;
|
||||
buf->st_gid = kbuf->st_gid;
|
||||
buf->st_rdev = kbuf->st_rdev;
|
||||
buf->st_pad2[0] = 0; buf->st_pad2[1] = 0;
|
||||
buf->st_pad3 = 0;
|
||||
buf->st_size = kbuf->st_size;
|
||||
buf->st_blksize = kbuf->st_blksize;
|
||||
buf->st_blocks = kbuf->st_blocks;
|
||||
|
||||
buf->st_atime = kbuf->st_atime; buf->__reserved0 = 0;
|
||||
buf->st_mtime = kbuf->st_mtime; buf->__reserved1 = 0;
|
||||
buf->st_ctime = kbuf->st_ctime; buf->__reserved2 = 0;
|
||||
|
||||
buf->st_pad4[0] = 0; buf->st_pad4[1] = 0;
|
||||
buf->st_pad4[2] = 0; buf->st_pad4[3] = 0;
|
||||
buf->st_pad4[4] = 0; buf->st_pad4[5] = 0;
|
||||
buf->st_pad4[6] = 0; buf->st_pad4[7] = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
__set_errno (EINVAL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
xstat64_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
|
||||
{
|
||||
#ifdef XSTAT_IS_XSTAT64
|
||||
return xstat_conv (vers, kbuf, ubuf);
|
||||
#else
|
||||
switch (vers)
|
||||
{
|
||||
case _STAT_VER_LINUX:
|
||||
{
|
||||
struct stat64 *buf = ubuf;
|
||||
|
||||
buf->st_dev = kbuf->st_dev;
|
||||
buf->st_pad1[0] = 0; buf->st_pad1[1] = 0; buf->st_pad1[2] = 0;
|
||||
buf->st_ino = kbuf->st_ino;
|
||||
buf->st_mode = kbuf->st_mode;
|
||||
buf->st_nlink = kbuf->st_nlink;
|
||||
buf->st_uid = kbuf->st_uid;
|
||||
buf->st_gid = kbuf->st_gid;
|
||||
buf->st_rdev = kbuf->st_rdev;
|
||||
buf->st_pad2[0] = 0; buf->st_pad2[1] = 0;
|
||||
buf->st_pad3 = 0;
|
||||
buf->st_size = kbuf->st_size;
|
||||
buf->st_blksize = kbuf->st_blksize;
|
||||
buf->st_blocks = kbuf->st_blocks;
|
||||
|
||||
buf->st_atime = kbuf->st_atime; buf->__reserved0 = 0;
|
||||
buf->st_mtime = kbuf->st_mtime; buf->__reserved1 = 0;
|
||||
buf->st_ctime = kbuf->st_ctime; buf->__reserved2 = 0;
|
||||
|
||||
buf->st_pad4[0] = 0; buf->st_pad4[1] = 0;
|
||||
buf->st_pad4[2] = 0; buf->st_pad4[3] = 0;
|
||||
buf->st_pad4[4] = 0; buf->st_pad4[5] = 0;
|
||||
buf->st_pad4[6] = 0; buf->st_pad4[7] = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
/* If struct stat64 is different from struct stat then
|
||||
_STAT_VER_KERNEL does not make sense. */
|
||||
case _STAT_VER_KERNEL:
|
||||
default:
|
||||
__set_errno (EINVAL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
#endif
|
||||
}
|
@ -25,8 +25,8 @@
|
||||
|
||||
#ifdef __NR_pwrite
|
||||
|
||||
extern ssize_t __syscall_pwrite64 (int fd, const void *buf, size_t count,
|
||||
off_t offset_hi, off_t offset_lo);
|
||||
extern ssize_t __syscall_pwrite (int fd, const void *buf, size_t count,
|
||||
off_t offset_hi, off_t offset_lo);
|
||||
|
||||
static ssize_t __emulate_pwrite (int fd, const void *buf, size_t count,
|
||||
off_t offset) internal_function;
|
||||
|
Loading…
x
Reference in New Issue
Block a user