2020-01-01 08:14:33 +08:00
|
|
|
|
/* Copyright (C) 1993-2020 Free Software Foundation, Inc.
|
1997-02-15 12:31:36 +08:00
|
|
|
|
This file is part of the GNU C Library.
|
|
|
|
|
|
|
|
|
|
The GNU C Library is free software; you can redistribute it and/or
|
2001-07-06 12:58:11 +08:00
|
|
|
|
modify it under the terms of the GNU Lesser General Public
|
|
|
|
|
License as published by the Free Software Foundation; either
|
|
|
|
|
version 2.1 of the License, or (at your option) any later version.
|
1997-02-15 12:31:36 +08:00
|
|
|
|
|
|
|
|
|
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
|
2001-07-06 12:58:11 +08:00
|
|
|
|
Lesser General Public License for more details.
|
1997-02-15 12:31:36 +08:00
|
|
|
|
|
2001-07-06 12:58:11 +08:00
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
2012-02-10 07:18:22 +08:00
|
|
|
|
License along with the GNU C Library; if not, see
|
Prefer https to http for gnu.org and fsf.org URLs
Also, change sources.redhat.com to sourceware.org.
This patch was automatically generated by running the following shell
script, which uses GNU sed, and which avoids modifying files imported
from upstream:
sed -ri '
s,(http|ftp)(://(.*\.)?(gnu|fsf|sourceware)\.org($|[^.]|\.[^a-z])),https\2,g
s,(http|ftp)(://(.*\.)?)sources\.redhat\.com($|[^.]|\.[^a-z]),https\2sourceware.org\4,g
' \
$(find $(git ls-files) -prune -type f \
! -name '*.po' \
! -name 'ChangeLog*' \
! -path COPYING ! -path COPYING.LIB \
! -path manual/fdl-1.3.texi ! -path manual/lgpl-2.1.texi \
! -path manual/texinfo.tex ! -path scripts/config.guess \
! -path scripts/config.sub ! -path scripts/install-sh \
! -path scripts/mkinstalldirs ! -path scripts/move-if-change \
! -path INSTALL ! -path locale/programs/charmap-kw.h \
! -path po/libc.pot ! -path sysdeps/gnu/errlist.c \
! '(' -name configure \
-execdir test -f configure.ac -o -f configure.in ';' ')' \
! '(' -name preconfigure \
-execdir test -f preconfigure.ac ';' ')' \
-print)
and then by running 'make dist-prepare' to regenerate files built
from the altered files, and then executing the following to cleanup:
chmod a+x sysdeps/unix/sysv/linux/riscv/configure
# Omit irrelevant whitespace and comment-only changes,
# perhaps from a slightly-different Autoconf version.
git checkout -f \
sysdeps/csky/configure \
sysdeps/hppa/configure \
sysdeps/riscv/configure \
sysdeps/unix/sysv/linux/csky/configure
# Omit changes that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/powerpc/powerpc64/ppc-mcount.S: trailing lines
git checkout -f \
sysdeps/powerpc/powerpc64/ppc-mcount.S \
sysdeps/unix/sysv/linux/s390/s390-64/syscall.S
# Omit change that caused a pre-commit check to fail like this:
# remote: *** error: sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S: last line does not end in newline
git checkout -f sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
2019-09-07 13:40:42 +08:00
|
|
|
|
<https://www.gnu.org/licenses/>. */
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
|
|
|
|
#ifndef _HURD_H
|
|
|
|
|
|
|
|
|
|
#define _HURD_H 1
|
|
|
|
|
#include <features.h>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Get types, macros, constants and function declarations
|
|
|
|
|
for all Mach microkernel interaction. */
|
|
|
|
|
#include <mach.h>
|
|
|
|
|
#include <mach/mig_errors.h>
|
|
|
|
|
|
|
|
|
|
/* Get types and constants necessary for Hurd interfaces. */
|
|
|
|
|
#include <hurd/hurd_types.h>
|
|
|
|
|
|
|
|
|
|
/* Get MiG stub declarations for commonly used Hurd interfaces. */
|
|
|
|
|
#include <hurd/auth.h>
|
|
|
|
|
#include <hurd/process.h>
|
|
|
|
|
#include <hurd/fs.h>
|
|
|
|
|
#include <hurd/io.h>
|
|
|
|
|
|
|
|
|
|
/* Get `struct hurd_port' and related definitions implementing lightweight
|
|
|
|
|
user references for ports. These are used pervasively throughout the C
|
|
|
|
|
library; this is here to avoid putting it in nearly every source file. */
|
|
|
|
|
#include <hurd/port.h>
|
|
|
|
|
|
|
|
|
|
#include <errno.h>
|
2018-03-04 10:15:49 +08:00
|
|
|
|
#include <bits/types/error_t.h>
|
2018-03-04 10:44:14 +08:00
|
|
|
|
#include <bits/types/sigset_t.h>
|
1995-10-09 15:06:29 +08:00
|
|
|
|
|
2001-08-22 04:32:21 +08:00
|
|
|
|
#ifndef _HURD_H_EXTERN_INLINE
|
2007-03-18 01:04:28 +08:00
|
|
|
|
#define _HURD_H_EXTERN_INLINE __extern_inline
|
2001-08-22 04:32:21 +08:00
|
|
|
|
#endif
|
|
|
|
|
|
hurd: take __USE_EXTERN_INLINES into account and restrict inlines
* hurd/hurd.h (__hurd_fail): Always declare function, and provide inline
version only if __USE_EXTERN_INLINES is defined.
* hurd/hurd/fd.h (_hurd_fd_error_signal, _hurd_fd_error, __hurd_dfail,
__hurd_sockfail): Likewise.
(_hurd_fd_get): Always declare functions, and provide inline versions
only if __USE_EXTERN_INLINES and _LIBC are defined and IS_IN(libc).
* hurd/hurd/port.h (_hurd_port_init, _hurd_port_locked_get,
_hurd_port_get, _hurd_port_free, _hurd_port_locked_set,
_hurd_port_set): Always declare functions, and provide inline versions
only if __USE_EXTERN_INLINES and _LIBC are defined and
IS_IN(libc).
* hurd/hurd/signal.h (_hurd_self_sigstate, _hurd_critical_section_lock,
_hurd_critical_section_unlock): Likewise.
* hurd/hurd/threadvar.h (__hurd_threadvar_location_from_sp,
* __hurd_threadvar_location): Likewise.
* hurd/hurd/userlink.h (_hurd_userlink_link, _hurd_userlink_unlink,
_hurd_userlink_clear): Likewise.
* mach/lock-intern.h (__spin_lock_init, __spin_lock, __mutex_lock,
__mutex_unlock, __mutex_trylock): Always declare functions, and provide
inline versions only if __USE_EXTERN_INLINES and _LIBC are defined.
* mach/mach/mig_support.h (__mig_strncpy): Likewise.
* sysdeps/generic/machine-lock.h (__spin_unlock, __spin_try_lock,
__spin_lock_locked): Likewise.
* sysdeps/mach/i386/machine-lock.h (__spin_unlock, __spin_try_lock,
__spin_lock_locked): Likewise.
* mach/spin-lock.c (__USE_EXTERN_INLINES): Define to 1.
* hurd/Versions (libc: GLIBC_2.27): Add _hurd_fd_error_signal,
_hurd_fd_error, __hurd_dfail, __hurd_sockfail, _hurd_port_locked_set,
__hurd_threadvar_location_from_sp, __hurd_threadvar_location,
_hurd_userlink_link, _hurd_userlink_unlink, _hurd_userlink_clear.
2018-01-29 01:43:10 +08:00
|
|
|
|
extern int __hurd_fail (error_t err);
|
|
|
|
|
|
|
|
|
|
#ifdef __USE_EXTERN_INLINES
|
2001-08-22 04:32:21 +08:00
|
|
|
|
_HURD_H_EXTERN_INLINE int
|
1995-10-09 15:06:29 +08:00
|
|
|
|
__hurd_fail (error_t err)
|
|
|
|
|
{
|
|
|
|
|
switch (err)
|
|
|
|
|
{
|
|
|
|
|
case EMACH_SEND_INVALID_DEST:
|
|
|
|
|
case EMIG_SERVER_DIED:
|
|
|
|
|
/* The server has disappeared! */
|
2016-12-05 06:18:32 +08:00
|
|
|
|
err = (error_t) EIEIO;
|
1995-10-09 15:06:29 +08:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case KERN_NO_SPACE:
|
2016-12-05 06:18:32 +08:00
|
|
|
|
err = (error_t) ENOMEM;
|
1995-10-09 15:06:29 +08:00
|
|
|
|
break;
|
2001-12-03 03:45:22 +08:00
|
|
|
|
|
1995-10-09 15:06:29 +08:00
|
|
|
|
case KERN_INVALID_ARGUMENT:
|
2016-12-05 06:18:32 +08:00
|
|
|
|
err = (error_t) EINVAL;
|
1995-10-09 15:06:29 +08:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case 0:
|
|
|
|
|
return 0;
|
2001-12-03 03:45:22 +08:00
|
|
|
|
|
1995-10-09 15:06:29 +08:00
|
|
|
|
default:
|
2001-12-03 03:45:22 +08:00
|
|
|
|
break;
|
1995-10-09 15:06:29 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
errno = err;
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
hurd: take __USE_EXTERN_INLINES into account and restrict inlines
* hurd/hurd.h (__hurd_fail): Always declare function, and provide inline
version only if __USE_EXTERN_INLINES is defined.
* hurd/hurd/fd.h (_hurd_fd_error_signal, _hurd_fd_error, __hurd_dfail,
__hurd_sockfail): Likewise.
(_hurd_fd_get): Always declare functions, and provide inline versions
only if __USE_EXTERN_INLINES and _LIBC are defined and IS_IN(libc).
* hurd/hurd/port.h (_hurd_port_init, _hurd_port_locked_get,
_hurd_port_get, _hurd_port_free, _hurd_port_locked_set,
_hurd_port_set): Always declare functions, and provide inline versions
only if __USE_EXTERN_INLINES and _LIBC are defined and
IS_IN(libc).
* hurd/hurd/signal.h (_hurd_self_sigstate, _hurd_critical_section_lock,
_hurd_critical_section_unlock): Likewise.
* hurd/hurd/threadvar.h (__hurd_threadvar_location_from_sp,
* __hurd_threadvar_location): Likewise.
* hurd/hurd/userlink.h (_hurd_userlink_link, _hurd_userlink_unlink,
_hurd_userlink_clear): Likewise.
* mach/lock-intern.h (__spin_lock_init, __spin_lock, __mutex_lock,
__mutex_unlock, __mutex_trylock): Always declare functions, and provide
inline versions only if __USE_EXTERN_INLINES and _LIBC are defined.
* mach/mach/mig_support.h (__mig_strncpy): Likewise.
* sysdeps/generic/machine-lock.h (__spin_unlock, __spin_try_lock,
__spin_lock_locked): Likewise.
* sysdeps/mach/i386/machine-lock.h (__spin_unlock, __spin_try_lock,
__spin_lock_locked): Likewise.
* mach/spin-lock.c (__USE_EXTERN_INLINES): Define to 1.
* hurd/Versions (libc: GLIBC_2.27): Add _hurd_fd_error_signal,
_hurd_fd_error, __hurd_dfail, __hurd_sockfail, _hurd_port_locked_set,
__hurd_threadvar_location_from_sp, __hurd_threadvar_location,
_hurd_userlink_link, _hurd_userlink_unlink, _hurd_userlink_clear.
2018-01-29 01:43:10 +08:00
|
|
|
|
#endif
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
|
|
|
|
/* Basic ports and info, initialized by startup. */
|
|
|
|
|
|
|
|
|
|
extern int _hurd_exec_flags; /* Flags word passed in exec_startup. */
|
|
|
|
|
extern struct hurd_port *_hurd_ports;
|
|
|
|
|
extern unsigned int _hurd_nports;
|
2001-12-03 03:43:55 +08:00
|
|
|
|
extern mode_t _hurd_umask;
|
1996-05-04 17:46:57 +08:00
|
|
|
|
extern sigset_t _hurdsig_traced;
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
Sat Oct 14 02:52:36 1995 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
* malloc/malloc.c (_malloc_internal): Performance fix. Move
if statement out of loop.
* stdio/_itoa.c, stdio/_itoa.h: Complete rewrite. Much faster
implementation using GMP functions. Contributed by
Torbjorn Granlund and Ulrich Drepper.
* stdio/test_rdwr.c: Include <errno.h>.
* sysdeps/i386/i586/Implies: New file.
New highly optimized string functions for i[345]86.
* sysdeps/i386/memchr.S, sysdeps/i386/memcmp.S: New files.
* sysdeps/i386/stpcpy.S, sysdeps/i386/stpncpy.S: New files.
* sysdeps/i386/strchr.S, sysdeps/i386/strcspn.S: New files.
* sysdeps/i386/strpbrk.S, sysdeps/i386/strrchr.S: New files.
* sysdeps/i386/strspn.S, sysdeps/i386/i486/strcat.S: New files.
* sysdeps/i386/i486/strlen.S, sysdeps/i386/i586/strchr.S: New files.
* sysdeps/i386/i586/strlen.S: New file.
* sysdeps/i386/memchr.c: Removed. There is now an assembler version.
* sysdeps/i386/i586/memcopy.h (WORD_COPY_BWD): Parameters did
not correspond to used values.
* sysdeps/unix/sysv/linux/nfs/nfs.h: New file. Simply a wrapper
around a kernel header file.
* sysdeps/unix/sysv/linux/Dist: Add it.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=sunrpc] (headers):
Likewise.
* sysdeps/unix/sysv/linux/local_lim.h: Rewrite. Instead of
defining ourself we use a kernel header file.
* sysdeps/unix/sysv/linux/i386/sysdep.h (DO_CALL): Optimize system
call handler for i586.
* sysdeps/unix/sysv/linux/sys/param.h: Add copyright and clean up.
Sat Oct 14 02:52:36 1995 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
* malloc/malloc.c (_malloc_internal): Performance fix. Move
if statement out of loop.
* stdio/_itoa.c, stdio/_itoa.h: Complete rewrite. Much faster
implementation using GMP functions. Contributed by
Torbjorn Granlund and Ulrich Drepper.
* stdio/test_rdwr.c: Include <errno.h>.
* sysdeps/i386/i586/Implies: New file.
New highly optimized string functions for i[345]86.
* sysdeps/i386/memchr.S, sysdeps/i386/memcmp.S: New files.
* sysdeps/i386/stpcpy.S, sysdeps/i386/stpncpy.S: New files.
* sysdeps/i386/strchr.S, sysdeps/i386/strcspn.S: New files.
* sysdeps/i386/strpbrk.S, sysdeps/i386/strrchr.S: New files.
* sysdeps/i386/strspn.S, sysdeps/i386/i486/strcat.S: New files.
* sysdeps/i386/i486/strlen.S, sysdeps/i386/i586/strchr.S: New files.
* sysdeps/i386/i586/strlen.S: New file.
* sysdeps/i386/memchr.c: Removed. There is now an assembler version.
* sysdeps/i386/i586/memcopy.h (WORD_COPY_BWD): Parameters did
not correspond to used values.
* sysdeps/unix/sysv/linux/nfs/nfs.h: New file. Simply a wrapper
around a kernel header file.
* sysdeps/unix/sysv/linux/Dist: Add it.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=sunrpc] (headers):
Likewise.
* sysdeps/unix/sysv/linux/local_lim.h: Rewrite. Instead of
defining ourself we use a kernel header file.
* sysdeps/unix/sysv/linux/i386/sysdep.h (DO_CALL): Optimize system
call handler for i586.
* sysdeps/unix/sysv/linux/sys/param.h: Add copyright and clean up.
1995-10-16 09:37:51 +08:00
|
|
|
|
/* Shorthand macro for internal library code referencing _hurd_ports (see
|
|
|
|
|
<hurd/port.h>). */
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
|
|
|
|
#define __USEPORT(which, expr) \
|
|
|
|
|
HURD_PORT_USE (&_hurd_ports[INIT_PORT_##which], (expr))
|
|
|
|
|
|
Sat Oct 14 02:52:36 1995 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
* malloc/malloc.c (_malloc_internal): Performance fix. Move
if statement out of loop.
* stdio/_itoa.c, stdio/_itoa.h: Complete rewrite. Much faster
implementation using GMP functions. Contributed by
Torbjorn Granlund and Ulrich Drepper.
* stdio/test_rdwr.c: Include <errno.h>.
* sysdeps/i386/i586/Implies: New file.
New highly optimized string functions for i[345]86.
* sysdeps/i386/memchr.S, sysdeps/i386/memcmp.S: New files.
* sysdeps/i386/stpcpy.S, sysdeps/i386/stpncpy.S: New files.
* sysdeps/i386/strchr.S, sysdeps/i386/strcspn.S: New files.
* sysdeps/i386/strpbrk.S, sysdeps/i386/strrchr.S: New files.
* sysdeps/i386/strspn.S, sysdeps/i386/i486/strcat.S: New files.
* sysdeps/i386/i486/strlen.S, sysdeps/i386/i586/strchr.S: New files.
* sysdeps/i386/i586/strlen.S: New file.
* sysdeps/i386/memchr.c: Removed. There is now an assembler version.
* sysdeps/i386/i586/memcopy.h (WORD_COPY_BWD): Parameters did
not correspond to used values.
* sysdeps/unix/sysv/linux/nfs/nfs.h: New file. Simply a wrapper
around a kernel header file.
* sysdeps/unix/sysv/linux/Dist: Add it.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=sunrpc] (headers):
Likewise.
* sysdeps/unix/sysv/linux/local_lim.h: Rewrite. Instead of
defining ourself we use a kernel header file.
* sysdeps/unix/sysv/linux/i386/sysdep.h (DO_CALL): Optimize system
call handler for i586.
* sysdeps/unix/sysv/linux/sys/param.h: Add copyright and clean up.
Sat Oct 14 02:52:36 1995 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
* malloc/malloc.c (_malloc_internal): Performance fix. Move
if statement out of loop.
* stdio/_itoa.c, stdio/_itoa.h: Complete rewrite. Much faster
implementation using GMP functions. Contributed by
Torbjorn Granlund and Ulrich Drepper.
* stdio/test_rdwr.c: Include <errno.h>.
* sysdeps/i386/i586/Implies: New file.
New highly optimized string functions for i[345]86.
* sysdeps/i386/memchr.S, sysdeps/i386/memcmp.S: New files.
* sysdeps/i386/stpcpy.S, sysdeps/i386/stpncpy.S: New files.
* sysdeps/i386/strchr.S, sysdeps/i386/strcspn.S: New files.
* sysdeps/i386/strpbrk.S, sysdeps/i386/strrchr.S: New files.
* sysdeps/i386/strspn.S, sysdeps/i386/i486/strcat.S: New files.
* sysdeps/i386/i486/strlen.S, sysdeps/i386/i586/strchr.S: New files.
* sysdeps/i386/i586/strlen.S: New file.
* sysdeps/i386/memchr.c: Removed. There is now an assembler version.
* sysdeps/i386/i586/memcopy.h (WORD_COPY_BWD): Parameters did
not correspond to used values.
* sysdeps/unix/sysv/linux/nfs/nfs.h: New file. Simply a wrapper
around a kernel header file.
* sysdeps/unix/sysv/linux/Dist: Add it.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=sunrpc] (headers):
Likewise.
* sysdeps/unix/sysv/linux/local_lim.h: Rewrite. Instead of
defining ourself we use a kernel header file.
* sysdeps/unix/sysv/linux/i386/sysdep.h (DO_CALL): Optimize system
call handler for i586.
* sysdeps/unix/sysv/linux/sys/param.h: Add copyright and clean up.
1995-10-16 09:37:51 +08:00
|
|
|
|
/* Function version of __USEPORT: calls OPERATE with a send right. */
|
|
|
|
|
|
|
|
|
|
extern error_t _hurd_ports_use (int which, error_t (*operate) (mach_port_t));
|
|
|
|
|
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
|
|
|
|
/* Base address and size of the initial stack set up by the exec server.
|
|
|
|
|
If using cthreads, this stack is deallocated in startup.
|
|
|
|
|
Not locked. */
|
|
|
|
|
|
|
|
|
|
extern vm_address_t _hurd_stack_base;
|
|
|
|
|
extern vm_size_t _hurd_stack_size;
|
|
|
|
|
|
|
|
|
|
/* Initial file descriptor table we were passed at startup. If we are
|
|
|
|
|
using a real dtable, these are turned into that and then cleared at
|
|
|
|
|
startup. If not, these are never changed after startup. Not locked. */
|
|
|
|
|
|
|
|
|
|
extern mach_port_t *_hurd_init_dtable;
|
|
|
|
|
extern mach_msg_type_number_t _hurd_init_dtablesize;
|
|
|
|
|
|
|
|
|
|
/* Current process IDs. */
|
|
|
|
|
|
|
|
|
|
extern pid_t _hurd_pid, _hurd_ppid, _hurd_pgrp;
|
|
|
|
|
extern int _hurd_orphaned;
|
|
|
|
|
|
|
|
|
|
/* This variable is incremented every time the process IDs change. */
|
1997-02-24 06:09:31 +08:00
|
|
|
|
extern unsigned int _hurd_pids_changed_stamp;
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
|
|
|
|
/* This condition is broadcast every time the process IDs change. */
|
1997-02-24 06:09:31 +08:00
|
|
|
|
extern struct condition _hurd_pids_changed_sync;
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
|
|
|
|
/* Unix `data break', for brk and sbrk.
|
|
|
|
|
If brk and sbrk are not used, this info will not be initialized or used. */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Data break. This is what `sbrk (0)' returns. */
|
|
|
|
|
|
|
|
|
|
extern vm_address_t _hurd_brk;
|
|
|
|
|
|
|
|
|
|
/* End of allocated space. This is generally `round_page (_hurd_brk)'. */
|
|
|
|
|
|
|
|
|
|
extern vm_address_t _hurd_data_end;
|
|
|
|
|
|
|
|
|
|
/* This mutex locks _hurd_brk and _hurd_data_end. */
|
|
|
|
|
|
|
|
|
|
extern struct mutex _hurd_brk_lock;
|
|
|
|
|
|
|
|
|
|
/* Set the data break to NEWBRK; _hurd_brk_lock must
|
|
|
|
|
be held, and is released on return. */
|
|
|
|
|
|
|
|
|
|
extern int _hurd_set_brk (vm_address_t newbrk);
|
|
|
|
|
|
Remove __need macros from stdio.h and wchar.h.
wint_t is a little finicky because it might be defined by stddef.h, which
belongs to the compiler.
In addition to the _types_, a bunch of other declarations shared between
wctype.h and wchar.h are factored out to their own header.
* libio/bits/types/FILE.h, libio/bits/types/__FILE.h
* wcsmbs/bits/types/mbstate_t.h, wcsmbs/bits/types/__mbstate_t.h
* wcsmbs/bits/types/wint_t.h: New single-type definition files.
* wctype/bits/wctype-wchar.h: New file holding declarations shared
between wctype.h and wchar.h.
* libio/Makefile, wcsmbs/Makefile, wctype/Makefile:
Install them.
* include/bits/types/FILE.h, include/bits/types/__FILE.h
* include/bits/types/mbstate_t.h, include/bits/types/__mbstate_t.h
* include/bits/types/wint_t.h, include/bits/wcsmbs-wchar.h:
New wrappers.
* include/stdio.h, include/wchar.h, include/wctype.h:
No need to handle __need macros.
* grp/grp.h, gshadow/gshadow.h, hurd/hurd.h, iconv/gconv.h
* libio/stdio.h, mach/mach.h, misc/mntent.h, pwd/pwd.h
* shadow/shadow.h, stdio-common/printf.h, wcsmbs/uchar.h
* wcsmbs/wchar.h, wctype/wctype.h
* sysdeps/generic/_G_config.h, sysdeps/unix/sysv/linux/_G_config.h
Use the new files instead of __need macros.
2016-11-21 12:00:02 +08:00
|
|
|
|
#include <bits/types/FILE.h>
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
|
|
|
|
/* Calls to get and set basic ports. */
|
|
|
|
|
|
Mon Mar 20 03:19:23 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* stdio/vfscanf.c (%n): Use READ_IN - 1, so as not to count the
read-ahead character.
* hurd/dtable.c, hurd/getdport.c, hurd/hurd.h, hurd/hurdexec.c,
hurd/hurdinit.c, hurd/hurdprio.c, hurd/hurdsock.c,
hurd/ports-get.c, hurd/ports-set.c, hurd/setauth.c,
hurd/setuids.c, sysdeps/mach/hurd/i386/trampoline.c:
Get anal with unsigned to pacify compiler.
1995-03-20 16:21:38 +08:00
|
|
|
|
extern error_t _hurd_ports_get (unsigned int which, mach_port_t *result);
|
|
|
|
|
extern error_t _hurd_ports_set (unsigned int which, mach_port_t newport);
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
|
|
|
|
extern process_t getproc (void);
|
|
|
|
|
extern file_t getcwdir (void), getcrdir (void);
|
|
|
|
|
extern auth_t getauth (void);
|
1996-01-23 18:00:23 +08:00
|
|
|
|
extern mach_port_t getcttyid (void);
|
1995-02-18 09:27:10 +08:00
|
|
|
|
extern int setproc (process_t);
|
|
|
|
|
extern int setcwdir (file_t), setcrdir (file_t);
|
|
|
|
|
extern int setcttyid (mach_port_t);
|
|
|
|
|
|
|
|
|
|
/* Does reauth with the proc server and fd io servers. */
|
|
|
|
|
extern int __setauth (auth_t), setauth (auth_t);
|
|
|
|
|
|
|
|
|
|
|
1999-02-28 04:06:34 +08:00
|
|
|
|
/* Modify a port cell by looking up a directory name.
|
|
|
|
|
This verifies that it is a directory and that we have search permission. */
|
|
|
|
|
extern int _hurd_change_directory_port_from_name (struct hurd_port *portcell,
|
|
|
|
|
const char *name);
|
|
|
|
|
/* Same thing, but using an open file descriptor.
|
|
|
|
|
Also verifies that it is a directory and that we have search permission. */
|
|
|
|
|
extern int _hurd_change_directory_port_from_fd (struct hurd_port *portcell,
|
|
|
|
|
int fd);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1998-11-29 18:10:47 +08:00
|
|
|
|
/* Get and set the effective UID set. */
|
|
|
|
|
extern int geteuids (int __n, uid_t *__uidset);
|
|
|
|
|
extern int seteuids (int __n, const uid_t *__uidset);
|
|
|
|
|
|
|
|
|
|
|
1995-02-18 09:27:10 +08:00
|
|
|
|
/* Split FILE into a directory and a name within the directory. The
|
|
|
|
|
directory lookup uses the current root and working directory. If
|
|
|
|
|
successful, stores in *NAME a pointer into FILE where the name
|
|
|
|
|
within directory begins and returns a port to the directory;
|
|
|
|
|
otherwise sets `errno' and returns MACH_PORT_NULL. */
|
|
|
|
|
|
|
|
|
|
extern file_t __file_name_split (const char *file, char **name);
|
|
|
|
|
extern file_t file_name_split (const char *file, char **name);
|
|
|
|
|
|
1999-11-14 07:52:38 +08:00
|
|
|
|
/* Split DIRECTORY into a parent directory and a name within the directory.
|
|
|
|
|
This is the same as file_name_split, but ignores trailing slashes. */
|
|
|
|
|
|
|
|
|
|
extern file_t __directory_name_split (const char *file, char **name);
|
|
|
|
|
extern file_t directory_name_split (const char *file, char **name);
|
|
|
|
|
|
1995-02-18 09:27:10 +08:00
|
|
|
|
/* Open a port to FILE with the given FLAGS and MODE (see <fcntl.h>).
|
|
|
|
|
The file lookup uses the current root and working directory.
|
|
|
|
|
Returns a port to the file if successful; otherwise sets `errno'
|
|
|
|
|
and returns MACH_PORT_NULL. */
|
|
|
|
|
|
|
|
|
|
extern file_t __file_name_lookup (const char *file, int flags, mode_t mode);
|
|
|
|
|
extern file_t file_name_lookup (const char *file, int flags, mode_t mode);
|
|
|
|
|
|
Sat Oct 14 02:52:36 1995 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
* malloc/malloc.c (_malloc_internal): Performance fix. Move
if statement out of loop.
* stdio/_itoa.c, stdio/_itoa.h: Complete rewrite. Much faster
implementation using GMP functions. Contributed by
Torbjorn Granlund and Ulrich Drepper.
* stdio/test_rdwr.c: Include <errno.h>.
* sysdeps/i386/i586/Implies: New file.
New highly optimized string functions for i[345]86.
* sysdeps/i386/memchr.S, sysdeps/i386/memcmp.S: New files.
* sysdeps/i386/stpcpy.S, sysdeps/i386/stpncpy.S: New files.
* sysdeps/i386/strchr.S, sysdeps/i386/strcspn.S: New files.
* sysdeps/i386/strpbrk.S, sysdeps/i386/strrchr.S: New files.
* sysdeps/i386/strspn.S, sysdeps/i386/i486/strcat.S: New files.
* sysdeps/i386/i486/strlen.S, sysdeps/i386/i586/strchr.S: New files.
* sysdeps/i386/i586/strlen.S: New file.
* sysdeps/i386/memchr.c: Removed. There is now an assembler version.
* sysdeps/i386/i586/memcopy.h (WORD_COPY_BWD): Parameters did
not correspond to used values.
* sysdeps/unix/sysv/linux/nfs/nfs.h: New file. Simply a wrapper
around a kernel header file.
* sysdeps/unix/sysv/linux/Dist: Add it.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=sunrpc] (headers):
Likewise.
* sysdeps/unix/sysv/linux/local_lim.h: Rewrite. Instead of
defining ourself we use a kernel header file.
* sysdeps/unix/sysv/linux/i386/sysdep.h (DO_CALL): Optimize system
call handler for i586.
* sysdeps/unix/sysv/linux/sys/param.h: Add copyright and clean up.
Sat Oct 14 02:52:36 1995 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
* malloc/malloc.c (_malloc_internal): Performance fix. Move
if statement out of loop.
* stdio/_itoa.c, stdio/_itoa.h: Complete rewrite. Much faster
implementation using GMP functions. Contributed by
Torbjorn Granlund and Ulrich Drepper.
* stdio/test_rdwr.c: Include <errno.h>.
* sysdeps/i386/i586/Implies: New file.
New highly optimized string functions for i[345]86.
* sysdeps/i386/memchr.S, sysdeps/i386/memcmp.S: New files.
* sysdeps/i386/stpcpy.S, sysdeps/i386/stpncpy.S: New files.
* sysdeps/i386/strchr.S, sysdeps/i386/strcspn.S: New files.
* sysdeps/i386/strpbrk.S, sysdeps/i386/strrchr.S: New files.
* sysdeps/i386/strspn.S, sysdeps/i386/i486/strcat.S: New files.
* sysdeps/i386/i486/strlen.S, sysdeps/i386/i586/strchr.S: New files.
* sysdeps/i386/i586/strlen.S: New file.
* sysdeps/i386/memchr.c: Removed. There is now an assembler version.
* sysdeps/i386/i586/memcopy.h (WORD_COPY_BWD): Parameters did
not correspond to used values.
* sysdeps/unix/sysv/linux/nfs/nfs.h: New file. Simply a wrapper
around a kernel header file.
* sysdeps/unix/sysv/linux/Dist: Add it.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=sunrpc] (headers):
Likewise.
* sysdeps/unix/sysv/linux/local_lim.h: Rewrite. Instead of
defining ourself we use a kernel header file.
* sysdeps/unix/sysv/linux/i386/sysdep.h (DO_CALL): Optimize system
call handler for i586.
* sysdeps/unix/sysv/linux/sys/param.h: Add copyright and clean up.
1995-10-16 09:37:51 +08:00
|
|
|
|
/* Open a port to FILE with the given FLAGS and MODE (see <fcntl.h>). The
|
|
|
|
|
file lookup uses the current root directory, but uses STARTDIR as the
|
|
|
|
|
"working directory" for file relative names. Returns a port to the file
|
|
|
|
|
if successful; otherwise sets `errno' and returns MACH_PORT_NULL. */
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
Sat Oct 14 02:52:36 1995 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
* malloc/malloc.c (_malloc_internal): Performance fix. Move
if statement out of loop.
* stdio/_itoa.c, stdio/_itoa.h: Complete rewrite. Much faster
implementation using GMP functions. Contributed by
Torbjorn Granlund and Ulrich Drepper.
* stdio/test_rdwr.c: Include <errno.h>.
* sysdeps/i386/i586/Implies: New file.
New highly optimized string functions for i[345]86.
* sysdeps/i386/memchr.S, sysdeps/i386/memcmp.S: New files.
* sysdeps/i386/stpcpy.S, sysdeps/i386/stpncpy.S: New files.
* sysdeps/i386/strchr.S, sysdeps/i386/strcspn.S: New files.
* sysdeps/i386/strpbrk.S, sysdeps/i386/strrchr.S: New files.
* sysdeps/i386/strspn.S, sysdeps/i386/i486/strcat.S: New files.
* sysdeps/i386/i486/strlen.S, sysdeps/i386/i586/strchr.S: New files.
* sysdeps/i386/i586/strlen.S: New file.
* sysdeps/i386/memchr.c: Removed. There is now an assembler version.
* sysdeps/i386/i586/memcopy.h (WORD_COPY_BWD): Parameters did
not correspond to used values.
* sysdeps/unix/sysv/linux/nfs/nfs.h: New file. Simply a wrapper
around a kernel header file.
* sysdeps/unix/sysv/linux/Dist: Add it.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=sunrpc] (headers):
Likewise.
* sysdeps/unix/sysv/linux/local_lim.h: Rewrite. Instead of
defining ourself we use a kernel header file.
* sysdeps/unix/sysv/linux/i386/sysdep.h (DO_CALL): Optimize system
call handler for i586.
* sysdeps/unix/sysv/linux/sys/param.h: Add copyright and clean up.
Sat Oct 14 02:52:36 1995 Ulrich Drepper <drepper@ipd.info.uni-karlsruhe.de>
* malloc/malloc.c (_malloc_internal): Performance fix. Move
if statement out of loop.
* stdio/_itoa.c, stdio/_itoa.h: Complete rewrite. Much faster
implementation using GMP functions. Contributed by
Torbjorn Granlund and Ulrich Drepper.
* stdio/test_rdwr.c: Include <errno.h>.
* sysdeps/i386/i586/Implies: New file.
New highly optimized string functions for i[345]86.
* sysdeps/i386/memchr.S, sysdeps/i386/memcmp.S: New files.
* sysdeps/i386/stpcpy.S, sysdeps/i386/stpncpy.S: New files.
* sysdeps/i386/strchr.S, sysdeps/i386/strcspn.S: New files.
* sysdeps/i386/strpbrk.S, sysdeps/i386/strrchr.S: New files.
* sysdeps/i386/strspn.S, sysdeps/i386/i486/strcat.S: New files.
* sysdeps/i386/i486/strlen.S, sysdeps/i386/i586/strchr.S: New files.
* sysdeps/i386/i586/strlen.S: New file.
* sysdeps/i386/memchr.c: Removed. There is now an assembler version.
* sysdeps/i386/i586/memcopy.h (WORD_COPY_BWD): Parameters did
not correspond to used values.
* sysdeps/unix/sysv/linux/nfs/nfs.h: New file. Simply a wrapper
around a kernel header file.
* sysdeps/unix/sysv/linux/Dist: Add it.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)=sunrpc] (headers):
Likewise.
* sysdeps/unix/sysv/linux/local_lim.h: Rewrite. Instead of
defining ourself we use a kernel header file.
* sysdeps/unix/sysv/linux/i386/sysdep.h (DO_CALL): Optimize system
call handler for i586.
* sysdeps/unix/sysv/linux/sys/param.h: Add copyright and clean up.
1995-10-16 09:37:51 +08:00
|
|
|
|
extern file_t __file_name_lookup_under (file_t startdir, const char *file,
|
|
|
|
|
int flags, mode_t mode);
|
|
|
|
|
extern file_t file_name_lookup_under (file_t startdir, const char *file,
|
|
|
|
|
int flags, mode_t mode);
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
|
|
|
|
|
1996-05-04 17:46:57 +08:00
|
|
|
|
/* Lookup FILE_NAME and return the node opened with FLAGS & MODE
|
|
|
|
|
(see hurd_file_name_lookup for details), but a simple file name (without
|
|
|
|
|
any directory prefixes) will be consecutively prefixed with the pathnames
|
|
|
|
|
in the `:' separated list PATH until one succeeds in a successful lookup.
|
|
|
|
|
If none succeed, then the first error that wasn't ENOENT is returned, or
|
|
|
|
|
ENOENT if no other errors were returned. If PREFIXED_NAME is non-NULL,
|
|
|
|
|
then if the result is looked up directly, *PREFIXED_NAME is set to NULL, and
|
|
|
|
|
if it is looked up using a prefix from PATH, *PREFIXED_NAME is set to
|
|
|
|
|
malloc'd storage containing the prefixed name. */
|
|
|
|
|
extern file_t file_name_path_lookup (const char *file_name, const char *path,
|
|
|
|
|
int flags, mode_t mode,
|
|
|
|
|
char **prefixed_name);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1995-02-18 09:27:10 +08:00
|
|
|
|
/* Open a file descriptor on a port. FLAGS are as for `open'; flags
|
|
|
|
|
affected by io_set_openmodes are not changed by this. If successful,
|
|
|
|
|
this consumes a user reference for PORT (which will be deallocated on
|
|
|
|
|
close). */
|
|
|
|
|
|
|
|
|
|
extern int openport (io_t port, int flags);
|
|
|
|
|
|
|
|
|
|
/* Open a stream on a port. MODE is as for `fopen'.
|
|
|
|
|
If successful, this consumes a user reference for PORT
|
|
|
|
|
(which will be deallocated on fclose). */
|
|
|
|
|
|
|
|
|
|
extern FILE *fopenport (io_t port, const char *mode);
|
|
|
|
|
extern FILE *__fopenport (io_t port, const char *mode);
|
|
|
|
|
|
|
|
|
|
|
2018-01-09 08:36:58 +08:00
|
|
|
|
/* Deprecated: use _hurd_exec_paths instead. */
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
|
|
|
|
extern error_t _hurd_exec (task_t task,
|
|
|
|
|
file_t file,
|
|
|
|
|
char *const argv[],
|
2018-01-09 08:36:58 +08:00
|
|
|
|
char *const envp[]) __attribute_deprecated__;
|
|
|
|
|
|
|
|
|
|
/* Execute a file, replacing TASK's current program image. */
|
|
|
|
|
|
|
|
|
|
extern error_t _hurd_exec_paths (task_t task,
|
|
|
|
|
file_t file,
|
|
|
|
|
const char *path,
|
|
|
|
|
const char *abspath,
|
|
|
|
|
char *const argv[],
|
|
|
|
|
char *const envp[]);
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
|
|
|
|
|
1996-12-20 09:39:50 +08:00
|
|
|
|
/* Inform the proc server we have exited with STATUS, and kill the
|
1995-02-18 09:27:10 +08:00
|
|
|
|
task thoroughly. This function never returns, no matter what. */
|
|
|
|
|
|
|
|
|
|
extern void _hurd_exit (int status) __attribute__ ((noreturn));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Initialize the library data structures from the
|
|
|
|
|
ints and ports passed to us by the exec server.
|
|
|
|
|
Then vm_deallocate PORTARRAY and INTARRAY. */
|
|
|
|
|
|
|
|
|
|
extern void _hurd_init (int flags, char **argv,
|
|
|
|
|
mach_port_t *portarray, size_t portarraysize,
|
|
|
|
|
int *intarray, size_t intarraysize);
|
|
|
|
|
|
1998-11-11 17:56:51 +08:00
|
|
|
|
/* Do startup handshaking with the proc server, and initialize library data
|
|
|
|
|
structures that require proc server interaction. This includes
|
|
|
|
|
initializing signals; see _hurdsig_init in <hurd/signal.h>. */
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
1998-11-11 17:56:51 +08:00
|
|
|
|
extern void _hurd_proc_init (char **argv,
|
|
|
|
|
const int *intarray, size_t intarraysize);
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Return the socket server for sockaddr domain DOMAIN. If DEAD is
|
|
|
|
|
nonzero, remove the old cached port and always do a fresh lookup.
|
|
|
|
|
|
|
|
|
|
It is assumed that a socket server will stay alive during a complex socket
|
|
|
|
|
operation involving several RPCs. But a socket server may die during
|
|
|
|
|
long idle periods between socket operations. Callers should first pass
|
|
|
|
|
zero for DEAD; if the first socket RPC tried on the returned port fails
|
|
|
|
|
with MACH_SEND_INVALID_DEST or MIG_SERVER_DIED (indicating the server
|
|
|
|
|
went away), the caller should call _hurd_socket_server again with DEAD
|
|
|
|
|
nonzero and retry the RPC on the new socket server port. */
|
|
|
|
|
|
|
|
|
|
extern socket_t _hurd_socket_server (int domain, int dead);
|
|
|
|
|
|
|
|
|
|
/* Send a `sig_post' RPC to process number PID. If PID is zero,
|
|
|
|
|
send the message to all processes in the current process's process group.
|
|
|
|
|
If PID is < -1, send SIG to all processes in process group - PID.
|
|
|
|
|
SIG and REFPORT are passed along in the request message. */
|
|
|
|
|
|
|
|
|
|
extern error_t _hurd_sig_post (pid_t pid, int sig, mach_port_t refport);
|
|
|
|
|
extern error_t hurd_sig_post (pid_t pid, int sig, mach_port_t refport);
|
|
|
|
|
|
|
|
|
|
/* Fetch the host privileged port and device master port from the proc
|
|
|
|
|
server. They are fetched only once and then cached in the
|
|
|
|
|
variables below. A special program that gets them from somewhere
|
|
|
|
|
other than the proc server (such as a bootstrap filesystem) can set
|
|
|
|
|
these variables to install the ports. */
|
|
|
|
|
|
2002-01-02 17:52:33 +08:00
|
|
|
|
extern kern_return_t __get_privileged_ports (mach_port_t *host_priv_ptr,
|
2001-04-20 06:53:58 +08:00
|
|
|
|
device_t *device_master_ptr);
|
2002-01-02 17:52:33 +08:00
|
|
|
|
extern kern_return_t get_privileged_ports (mach_port_t *host_priv_ptr,
|
1995-02-18 09:27:10 +08:00
|
|
|
|
device_t *device_master_ptr);
|
|
|
|
|
extern mach_port_t _hurd_host_priv, _hurd_device_master;
|
|
|
|
|
|
|
|
|
|
/* Return the PID of the task whose control port is TASK.
|
|
|
|
|
On error, sets `errno' and returns -1. */
|
|
|
|
|
|
|
|
|
|
extern pid_t __task2pid (task_t task), task2pid (task_t task);
|
|
|
|
|
|
|
|
|
|
/* Return the task control port of process PID.
|
|
|
|
|
On error, sets `errno' and returns MACH_PORT_NULL. */
|
|
|
|
|
|
|
|
|
|
extern task_t __pid2task (pid_t pid), pid2task (pid_t pid);
|
|
|
|
|
|
1995-06-05 11:04:45 +08:00
|
|
|
|
/* Return the current thread's thread port. This is a cheap operation (no
|
|
|
|
|
system call), but it relies on Hurd signal state being set up. */
|
|
|
|
|
extern thread_t hurd_thread_self (void);
|
|
|
|
|
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
1995-08-15 06:49:23 +08:00
|
|
|
|
/* Cancel pending operations on THREAD. If it is doing an interruptible RPC,
|
|
|
|
|
that RPC will now return EINTR; otherwise, the "cancelled" flag will be
|
|
|
|
|
set, causing the next `hurd_check_cancel' call to return nonzero or the
|
|
|
|
|
next interruptible RPC to return EINTR (whichever is called first). */
|
|
|
|
|
extern error_t hurd_thread_cancel (thread_t thread);
|
|
|
|
|
|
|
|
|
|
/* Test and clear the calling thread's "cancelled" flag. */
|
|
|
|
|
extern int hurd_check_cancel (void);
|
|
|
|
|
|
|
|
|
|
|
1995-02-18 09:27:10 +08:00
|
|
|
|
/* Return the io server port for file descriptor FD.
|
|
|
|
|
This adds a Mach user reference to the returned port.
|
|
|
|
|
On error, sets `errno' and returns MACH_PORT_NULL. */
|
|
|
|
|
|
|
|
|
|
extern io_t __getdport (int fd), getdport (int fd);
|
|
|
|
|
|
|
|
|
|
|
Update.
1997-03-16 18:43 Ulrich Drepper <drepper@cygnus.com>
* manual/filesys.texi: Add documentation for scandir and alphasort.
* math/math.c (fpclassify): Correct stupid typos.
* math/libm-test.c: New file. libm test suite by Andreas Jaeger.
* nss/nss_files/files-hosts.c: Add gethostbyname2 imlementation.
* posix/Makefile (routines): Add bsd-getpgrp.
* posix/bsd-getpgrp.c: New file.
* posix/unistd.h [__FAVOR_BSD]: Define macro getpgrp which maps
calls to __bsd_getpgrp.
* sysdeps/generic/getpgrp.c: De-ANSI-declfy.
* sysdeps/i386/huge_val.h: New file. ix87 specific infinity values.
* sysdeps/m68k/huge_val.h: New file. m68k specific infinity values.
* sysdeps/generic/huge_val.h: Remove definition of long double
definition. Make it the same as the double definition.
* sysdeps/libm-i387/e_acos.S: Fix bug in FPU stack handling.
* sysdeps/libm-i387/e_acosf.S: Likewise.
* sysdeps/libm-i387/e_acosl.S: Likewise.
* sysdeps/libm-i387/e_asin.S: Likewise.
* sysdeps/libm-i387/e_asinf.S: Likewise.
* sysdeps/libm-i387/e_asinl.S: Likewise.
* sysdeps/libm-i387/e_exp.S: Likewise.
* sysdeps/libm-i387/e_expf.S: Likewise.
* sysdeps/libm-i387/e_expl.S: Likewise.
* sysdeps/libm-i387/e_scalbn.S: Likewise.
* sysdeps/libm-i387/e_scalbnf.S: Likewise.
* sysdeps/libm-i387/e_scalbnl.S: Likewise.
* sysdeps/libm-i387/e_log.S: Optimize branch code.
* sysdeps/libm-i387/e_logf.S: Likewise.
* sysdeps/libm-i387/e_logl.S: Likewise.
* sysdeps/libm-i387/e_log10.S: Likewise.
* sysdeps/libm-i387/e_log10f.S: Likewise.
* sysdeps/libm-i387/e_log10l.S: Likewise.
* sysdeps/libm-i387/e_pow.S: Major rewrite to handle special cases.
* sysdeps/libm-i387/e_powf.S: Likewise.
* sysdeps/libm-i387/e_powl.S: Likewise.
* sysdeps/libm-i387/e_expm1.S: Change return value for -inf
argument to -1.0.
* sysdeps/libm-i387/e_expm1f.S: Likewise.
* sysdeps/libm-i387/e_expm1l.S: Likewise.
* sysdeps/libm-i387/e_isinfl.c: Return -1 for -inf.
* sysdeps/libm-i387/e_logbl.S: Correct return value. Discard first
stack element after fxtract.
* sysdeps/libm-ieee754/e_atan2l.c: New file. `long double'
implementation for atan2 function.
* sysdeps/libm-ieee754/k_standard.c: Return NAN for libm not in
_SVID_ mode when acos, asin, atan2, log, log10 is called with
argument out of range.
Add new error case for pow(+0,neg).
* sysdeps/libm-ieee754/s_fpclassifyf.c: Correct recognition of
NaN and +-inf.
* sysdeps/libm-ieee754/s_fpclassifyl.c: Mask out explicit leading
digit in stupid 80 bit formats.
* sysdeps/libm-ieee754/s_isinf.c: Rewrite to return -1 for -inf.
* sysdeps/libm-ieee754/s_isinff.c: Likewise.
* sysdeps/libm-ieee754/s_isinfl.c: Likewise.
* sysdeps/libm-ieee754/s_scalbnl.c (huge, tiny): Adapt values for
long double type.
* sysdeps/libm-ieee754/w_atan2.c: Do not raise exception expect when
in SVID mode.
* sysdeps/libm-ieee754/w_atan2f.c: Likewise.
* sysdeps/libm-ieee754/w_atan2l.c: Likewise.
* sysdeps/libm-ieee754/w_pow.c: Distinguish error cases for x is +0
or -0.
* sysdeps/posix/isfdtype.c: Add cast to prevent warning.
* sysdeps/stub/fcntlbits.h: Update copyright.
* sysdeps/unix/bsd/fcntlbits.h: Likewise.
* sysdeps/unix/bsd/bsd4.4/fcntlbits.h: Likewise.
* sysdeps/unix/bsd/sun/sunos4/fcntlbits.h: Likewise.
* sysdeps/unix/bsd/ultrix4/fcntlbits.h: Likewise.
* sysdeps/unix/common/fcntlbits.h: Likewise.
* sysdeps/unix/sysv/fcntlbits.h: Likewise. Define O_FSYNC as alias
of O_SYNC. Add BSD compatibility macros FAPPEND, FFSYNC, FNONBLOCK,
and FNDELAY.
* sysdeps/unix/sysv/irix4/fcntlbits.h: Likewise.
* sysdeps/unix/readdir_r.c: Don't copy whole `struct dirent' record,
only reclen bytes.
* sysdeps/unix/sysv/linux/fcntlbits.h [__USE_GNU]: Add O_READ, O_WRITE
and O_NORW.
* sysdeps/unix/sysv/linux/alpha/fcntlbits.h: Likewise.
* sysdeps/unix/sysv/linux/init-first.h: Add copyright.
* sysdeps/unix/sysv/linux/fxstat.c: New file. Rewrite kernel-level
struct stat to user-level form.
* sysdeps/unix/sysv/linux/lxstat: New file.
* sysdeps/unix/sysv/linux/xstat: New file.
* sysdeps/unix/sysv/linux/kernel_stat.h: Define struct stat used in
kernel.
* sysdeps/unix/sysv/linux/statbuf.h (struct stat): Change definition
to use prescribed types for elements.
(_STAT_VER): Change to value 3.
* sysdeps/unix/sysv/linux/alph/statbuf.h: Likewise.
* sysdeps/unix/sysv/linux/Dist: Add kernel_stat.h.
* sysdeps/unix/sysv/linux/alpha/Dist: Likewise.
* time/Makefile: Correct dependencies for test-tz.
1997-03-16 14:59 Philip Blundell <phil@london.uk.eu.org>
* resolv/netdb.h: Add prototypes for gai_strerror and getnameinfo
(needed for IPv6 basic sockets API).
1997-03-16 15:02 a sun <asun@zoology.washington.edu>
* sysdeps/unix/sysv/linux/net/if_ppp.h: Don't use incompatible
kernel header.
* sysdeps/unix/sysv/linux/net/ppp_defs.h: Likewise.
1997-03-14 17:15 Ulrich Drepper <drepper@cygnus.com>
* db/hash/hash_bigkey.c (__big_delete): Don't call __free_ovflpage
without testing for last_bfp to be NULL.
Reported by fabsoft@fabserver1.zarm.uni-bremen.de.
1997-03-13 11:42 Jim Meyering <meyering@asic.sc.ti.com>
* time/mktime.c (TIME_T_MIN): Work around a bug in Cray C 5.0.3.0.
1997-03-14 04:00 Kurt Garloff <garloff@kg1.ping.de>
* sysdeps/unix/sysv/linux/fcntlbits.h (O_FSYNC): Make alias for O_SYNC.
(FASYNC): Move to __USE_BSD section. Create new macro O_ASYNC.
1997-03-14 02:50 Ulrich Drepper <drepper@cygnus.com>
* nis/nss_nis/nis-hosts.c (_nss_nis_gethostbyname2_r): New
functions. Compare result for correct address type.
(_nss_nis_gethostbyname_r): Use _nss_nis_gethostbyname2_r.
Reported by Mirko Streckenbach <mirko@marian.hil.de>.
1997-02-17 01:40 Zlatko Calusic <zcalusic@srce.hr>
* time/strptime.c (recursive): Return rp to caller.
(strptime_internal): First check for long names, then abbreviated
(month & weekday).
1997-03-10 19:44 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makeconfig: Remove useless definitions of ASFLAGS-%.
* config.make.in (ASFLAGS-.so): Remove.
* configure.in: Don't substitute ASFLAGS_SO.
* sysdeps/sparc/configure.in: Remove file.
* sysdeps/sparc/Makefile (ASFLAGS-.so): Define.
1997-03-11 17:00 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* time/strptime.c (strptime_internal) [case 'Y']: Always subtract
1900 from year, regardless of century.
1997-03-12 05:43 Ulrich Drepper <drepper@cygnus.com>
* stdlib/strtod.c (_tens_in_limb) [BITS_PER_MP_LIMB > 32]: Make
all numbers unsigned to make buggy gccs happy.
Patch by Bryan W. Headley <bheadley@interaccess.com>.
* sysdeps/unix/sysv/linux/netinet/ip.h: Add backward-compatibility
definitions. Patch by a sun <asun@zoology.washington.edu>.
Pretty print header.
* Makerules (build-shlib): Also create symlink if library is versioned.
based on a patch by H.J. Lu <hjl@gnu.ai.mit.edu>.
Remove special rule to libc.so symlink.
1997-03-11 20:16 Andreas Jaeger <aj@arthur.pfalz.de>
* manual/math.texi (Domain and Range Errors): Change descriptions
according to recent changes for ISO C 9X.
1997-03-11 22:39 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/libm-ieee754/k_standard.c (__kernel_standard): Correct
return values for acos, asin, and atan2.
Reported by Andreas Jaeger <aj@arthur.pfalz.de>.
1997-03-10 18:16 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* ypclnt.c (__yp_bind): Fix possible buffer overflow.
1997-03-10 18:06 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
* dirent/alphasort.c (alphasort): Interpret arguments as pointers
to pointers to directory entries so that alphasort really can be
used as argument for scandir.
1997-03-09 23:33 Andreas Jaeger <aj@arthur.pfalz.de>
* string/strdup.c: Declare memcpy if !(_LIBC || STDC_HEADERS)
instead of strcpy.
1997-03-10 03:34 Ulrich Drepper <drepper@cygnus.com>
* catgets/catgets.c (catopen): Always add NLSPATH to search path for
catalogs, not only if the envvar NLSPATH is not available.
Reported by Andries.Brouwer@cwi.nl.
1997-03-10 02:46 Ulrich Drepper <drepper@cygnus.com>
* Makeconfig (localtime-file): Don't define using installation
directory.
(inst_localtime-file): New variable.
* time/Makefile (installed-localtime-file): Use inst_localtime-file.
Reported by Edward Seidl <seidl@janed.com>.
1997-03-10 02:31 H.J. Lu <hjl@gnu.ai.mit.edu>
* time/Makefile: Add source files to dependencies for test data.
1997-03-09 22:53 Thorsten Kukuk <kukuk@weber.uni-paderborn.de>
* nis/nss_nis/nis-ethers.c: Don't ignore return value of yp_all.
* nis/nss_nis/nis-proto.c: Likewise.
* nis/nss_nis/nis-rpc.c: Likewise.
* nis/nss_nis/nis-service.c: Likewise.
1997-03-08 14:37 Miguel de Icaza <miguel@nuclecu.unam.mx>
* sysdeps/sparc/dl-machine.h (elf_machine_rela): Upgrade to
versioning; Added missing R_SPARC_WDISP30 handling.
(RTLD_START): Implement it.
* sysdeps/unix/sysv/linux/sparc/brk.c: Fix.
* sysdeps/unix/sysv/linux/sparc/start.c: Startup code for
Linux/SPARC.
1997-03-02 18:06 Miguel de Icaza <miguel@nuclecu.unam.mx>
* sysdeps/sparc/dl-machine.h (RTLD_START): Make arg as expected by
the dynamic linker instead of having a new conditional define.
Thanks to Richard Henderson for pointing this out.
* elf/rtld.c: Remove usage of ELF_ADJUST_ARG.
1997-03-20 20:44 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* sysdeps/mach/hurd/euidaccess.c: Define as __euidaccess and make
euidaccess weak alias.
1997-03-07 10:30 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* stdio-common/printf_fphex.c (MIN): New macro.
* sysdeps/generic/netinet/in.h: Include <sys/types.h>.
* sysdeps/generic/sys/mman.h (msync): Mention third arg.
* sysdeps/generic/netinet/in.h: Add definitions for IPv6 basic
API. (See change by Philip Blundell on Feb 16, 1997.)
1997-03-05 10:40 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* hurd/hurd.h (vpprintf): Include <stdarg.h>. New declaration.
* hurd/set-host.c (_hurd_set_host_config): Cast second arg to
__file_name_split.
* mach/mach_error.c (mach_error_string_int): Give full prototype.
* mach/errstring.c (mach_error_string_int): Likewise.
* mach/error_compat.c (__mach_error_map_compat): Likewise.
* hurd/vpprintf.c (pwrite, vpprintf): Likewise.
* stdio/vasprintf.c (vasprintf): Likewise.
* mach/mach/mach_traps.h: Include <mach/kern_return.h>.
* mach/spin-solid.c: Include <mach/mach_traps.h>.
* mach/spin-solid.c (__spin_lock_solid): Provide arg to
swtch_pri.
* mach/mach_init.c: Include <mach/mig_support.h>.
* mach/mach_error.h (mach_error_string, mach_error,
mach_error_type): Always provide prototypes.
* mach/mach/error.h (mach_error_fn_t): Comment out declaration; it
appears to be entirely unused dead code.
* stdio/stdio.h (freopen): Fix spelling error.
1997-03-02 13:38 Miles Bader <miles@gnu.ai.mit.edu>
* string/argz.h (__need_error_t): New macro, before including <errno.h>
[!__const] (__const): New macro.
[!__error_t_defined] (error_t): New typedef.
* sysdeps/generic/socketbits.h: Add PF_FILE as synonym for PF_LOCAL
* sysdeps/unix/sysv/linux/socketbits.h: Likewise.
1997-03-17 04:28:07 +08:00
|
|
|
|
#include <stdarg.h>
|
|
|
|
|
|
|
|
|
|
/* Write formatted output to PORT, a Mach port supporting the i/o protocol,
|
|
|
|
|
according to the format string FORMAT, using the argument list in ARG. */
|
|
|
|
|
int vpprintf (io_t port, const char *format, va_list arg);
|
|
|
|
|
|
|
|
|
|
|
1995-02-18 09:27:10 +08:00
|
|
|
|
#endif /* hurd.h */
|