2002-12-16  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/i386/socket.S: Use CENABLE and CDISABLE
	macros instead of doing the calls directly.
	* sysdeps/unix/make-syscalls.sh: Add ptw-*.$o target name to rules.
	* Makerules ($(+sysdir_pfx)sysd-rules): Emit rules for ptw-%
	targets.

2002-12-16  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/i386/fpu/bits/mathinline.h: Backout last change.
	* sysdeps/ieee754/bits/nan.h: Likewise.

	* sysdeps/unix/sysv/linux/ia64/syscalls.list (__syscall_open,
	__syscall_wait4, __syscall_ioctl, __syscall_write): Add.
This commit is contained in:
Ulrich Drepper 2002-12-16 20:52:36 +00:00
parent e150fddc7c
commit 9634cf9d4f
40 changed files with 1364 additions and 2542 deletions

View File

@ -1,3 +1,19 @@
2002-12-16 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/i386/socket.S: Use CENABLE and CDISABLE
macros instead of doing the calls directly.
* sysdeps/unix/make-syscalls.sh: Add ptw-*.$o target name to rules.
* Makerules ($(+sysdir_pfx)sysd-rules): Emit rules for ptw-%
targets.
2002-12-16 Jakub Jelinek <jakub@redhat.com>
* sysdeps/i386/fpu/bits/mathinline.h: Backout last change.
* sysdeps/ieee754/bits/nan.h: Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list (__syscall_open,
__syscall_wait4, __syscall_ioctl, __syscall_write): Add.
2002-12-16 Roland McGrath <roland@redhat.com> 2002-12-16 Roland McGrath <roland@redhat.com>
* sunrpc/xdr_mem.c (xdrmem_inline): Fix argument type. * sunrpc/xdr_mem.c (xdrmem_inline): Fix argument type.

View File

@ -263,26 +263,38 @@ $(+sysdir_pfx)sysd-rules: $(+sysdir_pfx)config.make $(..)Makerules \
\$$(compile-command.S)"; \ \$$(compile-command.S)"; \
echo "\$$(objpfx)rtld-%$$o: $$dir/%.s \$$(before-compile); \ echo "\$$(objpfx)rtld-%$$o: $$dir/%.s \$$(before-compile); \
\$$(compile-command.s)"; \ \$$(compile-command.s)"; \
echo "\$$(objpfx)ptw-%$$o: $$dir/%.S \$$(before-compile); \
\$$(compile-command.S)"; \
echo "\$$(objpfx)ptw-%$$o: $$dir/%.s \$$(before-compile); \
\$$(compile-command.s)"; \
$(close-check-inhibit-asm) \ $(close-check-inhibit-asm) \
echo "\$$(objpfx)%$$o: $$dir/%.c \$$(before-compile); \ echo "\$$(objpfx)%$$o: $$dir/%.c \$$(before-compile); \
\$$(compile-command.c)"; \ \$$(compile-command.c)"; \
echo "\$$(objpfx)rtld-%$$o: $$dir/%.c \$$(before-compile); \ echo "\$$(objpfx)rtld-%$$o: $$dir/%.c \$$(before-compile); \
\$$(compile-command.c)"; \ \$$(compile-command.c)"; \
echo "\$$(objpfx)ptw-%$$o: $$dir/%.c \$$(before-compile); \
\$$(compile-command.c)"; \
done; \ done; \
$(open-check-inhibit-asm) \ $(open-check-inhibit-asm) \
echo "\$$(objpfx)%.d: $$dir/%.s \$$(common-objpfx)dummy.d; \ echo "\$$(objpfx)%.d: $$dir/%.s \$$(common-objpfx)dummy.d; \
\$$(make-dummy-dep)"; \ \$$(make-dummy-dep)"; \
echo "\$$(objpfx)rtld-%.d: $$dir/%.s \$$(common-objpfx)dummy.d; \ echo "\$$(objpfx)rtld-%.d: $$dir/%.s \$$(common-objpfx)dummy.d; \
\$$(make-dummy-dep)"; \ \$$(make-dummy-dep)"; \
echo "\$$(objpfx)ptw-%.d: $$dir/%.s \$$(common-objpfx)dummy.d; \
\$$(make-dummy-dep)"; \
echo "\$$(objpfx)%.d: $$dir/%.S \$$(before-compile); \ echo "\$$(objpfx)%.d: $$dir/%.S \$$(before-compile); \
\$$(+make-deps)"; \ \$$(+make-deps)"; \
echo "\$$(objpfx)rtld-%.d: $$dir/%.S \$$(before-compile); \ echo "\$$(objpfx)rtld-%.d: $$dir/%.S \$$(before-compile); \
\$$(+make-deps)"; \ \$$(+make-deps)"; \
echo "\$$(objpfx)ptw-%.d: $$dir/%.S \$$(before-compile); \
\$$(+make-deps)"; \
$(close-check-inhibit-asm) \ $(close-check-inhibit-asm) \
echo "\$$(objpfx)%.d: $$dir/%.c \$$(before-compile); \ echo "\$$(objpfx)%.d: $$dir/%.c \$$(before-compile); \
\$$(+make-deps)"; \ \$$(+make-deps)"; \
echo "\$$(objpfx)rtld-%.d: $$dir/%.c \$$(before-compile); \ echo "\$$(objpfx)rtld-%.d: $$dir/%.c \$$(before-compile); \
\$$(+make-deps)"; \ \$$(+make-deps)"; \
echo "\$$(objpfx)ptw-%.d: $$dir/%.c \$$(before-compile); \
\$$(+make-deps)"; \
echo "\$$(objpfx)m_%.S: $$dir/s_%.S; \$$(+make-include-of-dep)"; \ echo "\$$(objpfx)m_%.S: $$dir/s_%.S; \$$(+make-include-of-dep)"; \
echo "\$$(objpfx)m_%.c: $$dir/s_%.c; \$$(+make-include-of-dep)"; \ echo "\$$(objpfx)m_%.c: $$dir/s_%.c; \$$(+make-include-of-dep)"; \
done; \ done; \

View File

@ -1,3 +1,44 @@
2002-12-16 Jakub Jelinek <jakub@redhat.com>
* libc-cancellation.c: Guard both function with
#if !defined NOT_IN_libc.
* Makefile (libpthread-routines): Use ptw-, not pt- prefix for the
automatically provided pthread wrappers.
* pthreadP.h (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define to
CANCEL_* if IS_IN_libpthread and to dummy versions if not in libc
nor in libpthread.
* pt-open.c: Removed.
* pt-fcntl.c: Removed.
* pt-fsync.c: Removed.
* pt-lseek.c: Removed.
* pt-msgrcv.c: Removed.
* pt-msgsnd.c: Removed.
* pt-msync.c: Removed.
* pt-nanosleep.c: Removed.
* pt-open64.c: Removed.
* pt-pause.c: Removed.
* pt-pread.c: Removed.
* pt-pread64.c: Removed.
* pt-pwrite.c: Removed.
* pt-pwrite64.c: Removed.
* pt-read.c: Removed.
* pt-recv.c: Removed.
* pt-recvfrom.c: Removed.
* pt-recvmsg.c: Removed.
* pt-send.c: Removed.
* pt-sendto.c: Removed.
* pt-sigtimedwait.c: Removed.
* pt-sigwait.c: Removed.
* pt-wait.c: Removed.
* pt-waitpid.c: Removed.
* pt-write.c: Removed.
* pt-accept.c: Removed.
* pt-close.c: Removed.
* pt-connect.c: Removed.
* pt-lseek64.c: Removed.
* pt-sendmsg.c: Removed.
* pt-tcdrain.c: Removed.
2002-12-15 Ulrich Drepper <drepper@redhat.com> 2002-12-15 Ulrich Drepper <drepper@redhat.com>
* init.c (__pthread_initialize_minimal_internal): Renamed from * init.c (__pthread_initialize_minimal_internal): Renamed from

View File

@ -94,13 +94,14 @@ libpthread-routines = init events \
lowlevellock lowlevelmutex lowlevelcond lowlevelrwlock \ lowlevellock lowlevelmutex lowlevelcond lowlevelrwlock \
lowlevelsem \ lowlevelsem \
pt-vfork \ pt-vfork \
pt-write pt-read pt-close pt-fcntl pt-accept pt-connect \ ptw-write ptw-read ptw-close ptw-fcntl ptw-accept \
pt-recv pt-recvfrom pt-recvmsg pt-send pt-sendmsg \ ptw-connect ptw-recv ptw-recvfrom ptw-recvmsg ptw-send \
pt-sendto pt-fsync pt-lseek pt-lseek64 pt-msync \ ptw-sendmsg ptw-sendto ptw-fsync ptw-lseek ptw-llseek \
pt-nanosleep pt-open pt-open64 pt-pause pt-pread \ ptw-msync ptw-nanosleep ptw-open ptw-open64 ptw-pause \
pt-pread64 pt-pwrite pt-pwrite64 pt-tcdrain pt-system \ ptw-pread ptw-pread64 ptw-pwrite ptw-pwrite64 \
pt-wait pt-waitpid pt-msgrcv pt-msgsnd pt-sigwait \ ptw-tcdrain ptw-wait ptw-waitpid ptw-msgrcv ptw-msgsnd \
pt-raise \ ptw-sigwait \
pt-raise pt-system \
flockfile ftrylockfile funlockfile \ flockfile ftrylockfile funlockfile \
sigaction \ sigaction \
herrno res pt-allocrtsig \ herrno res pt-allocrtsig \

View File

@ -23,6 +23,8 @@
#include "atomic.h" #include "atomic.h"
#if !defined NOT_IN_libc
/* The next two functions are similar to pthread_setcanceltype() but /* The next two functions are similar to pthread_setcanceltype() but
more specialized for the use in the cancelable functions like write(). more specialized for the use in the cancelable functions like write().
They do not need to check parameters etc. */ They do not need to check parameters etc. */
@ -82,3 +84,5 @@ __libc_disable_asynccancel (int oldtype)
break; break;
} }
} }
#endif

View File

@ -1,37 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <sys/socket.h>
#include "pthreadP.h"
int
accept (int fd, __SOCKADDR_ARG addr, socklen_t *addr_len)
{
int oldtype = CANCEL_ASYNC ();
int result = __libc_accept (fd, addr, addr_len);
CANCEL_RESET (oldtype);
return result;
}

View File

@ -1,42 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <unistd.h>
#include "pthreadP.h"
int
__close (int fd)
{
int oldtype = CANCEL_ASYNC ();
#ifdef INLINE_SYSCALL
int result = INLINE_SYSCALL (close, 1, fd);
#else
int result = __libc_close (fd);
#endif
CANCEL_RESET (oldtype);
return result;
}
strong_alias (__close, close)

View File

@ -1,38 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <sys/socket.h>
#include "pthreadP.h"
int
__connect (int fd, __CONST_SOCKADDR_ARG addr, socklen_t addr_len)
{
int oldtype = CANCEL_ASYNC ();
int result = __libc_connect (fd, addr, addr_len);
CANCEL_RESET (oldtype);
return result;
}
strong_alias (__connect, connect)

View File

@ -1,53 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <fcntl.h>
#include <stdarg.h>
#include <stdlib.h>
#include <sysdep.h>
#include <unistd.h>
#include "pthreadP.h"
int
__fcntl (int fd, int cmd, ...)
{
int oldtype = 0;
va_list ap;
if (cmd == F_SETLKW)
oldtype = CANCEL_ASYNC ();
va_start (ap, cmd);
#ifdef INLINE_SYSCALL
int result = INLINE_SYSCALL (fcntl64, 3, fd, cmd, va_arg (ap, long int));
#else
int result = __libc_fcntl (fd, cmd, va_arg (ap, long int));
#endif
va_end (ap);
if (cmd == F_SETLKW)
CANCEL_RESET (oldtype);
return result;
}
strong_alias (__fcntl, fcntl)

View File

@ -1,41 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <unistd.h>
#include "pthreadP.h"
int
fsync (int fd)
{
int oldtype = CANCEL_ASYNC ();
#ifdef INLINE_SYSCALL
int result = INLINE_SYSCALL (fsync, 1, fd);
#else
int result = __libc_fsync (fd);
#endif
CANCEL_RESET (oldtype);
return result;
}

View File

@ -1,42 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <unistd.h>
#include "pthreadP.h"
off_t
__lseek (int fd, off_t offset, int whence)
{
int oldtype = CANCEL_ASYNC ();
#ifdef INLINE_SYSCALL
off_t result = INLINE_SYSCALL (lseek, 3, fd, offset, whence);
#else
off_t result = __libc_lseek (fd, offset, whence);
#endif
CANCEL_RESET (oldtype);
return result;
}
strong_alias (__lseek, lseek)

View File

@ -1,37 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <unistd.h>
#include "pthreadP.h"
off64_t
lseek64 (int fd, off64_t offset, int whence)
{
int oldtype = CANCEL_ASYNC ();
off64_t result = __libc_lseek64 (fd, offset, whence);
CANCEL_RESET (oldtype);
return result;
}

View File

@ -1,37 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <sys/msg.h>
#include "pthreadP.h"
int
msgrcv (int msqid, void *msgp, size_t msgsz, long int msgtyp, int msgflg)
{
int oldtype = CANCEL_ASYNC ();
int result = __libc_msgrcv (msqid, msgp, msgsz, msgtyp, msgflg);
CANCEL_RESET (oldtype);
return result;
}

View File

@ -1,43 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <sys/msg.h>
#include <ipc_priv.h>
#include "pthreadP.h"
int
msgsnd (int msqid, const void *msgp, size_t msgsz, int msgflg)
{
int oldtype = CANCEL_ASYNC ();
#if defined INLINE_SYSCALL && defined __NR_ipc
int result = INLINE_SYSCALL (ipc, 5, IPCOP_msgsnd, msqid, msgsz,
msgflg, (void *) msgp);
#else
int result = __libc_msgsnd (msqid, msgp, msgsz, msgflg);
#endif
CANCEL_RESET (oldtype);
return result;
}

View File

@ -1,41 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <sys/mman.h>
#include "pthreadP.h"
int
msync (void *addr, size_t length, int flags)
{
int oldtype = CANCEL_ASYNC ();
#ifdef INLINE_SYSCALL
int result = INLINE_SYSCALL (msync, 3, addr, length, flags);
#else
int result = __libc_msync (addr, length, flags);
#endif
CANCEL_RESET (oldtype);
return result;
}

View File

@ -1,42 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <time.h>
#include "pthreadP.h"
int
__nanosleep (const struct timespec *requested_time, struct timespec *remaining)
{
int oldtype = CANCEL_ASYNC ();
#ifdef INLINE_SYSCALL
int result = INLINE_SYSCALL (nanosleep, 2, requested_time, remaining);
#else
int result = __libc_nanosleep (requested_time, remaining);
#endif
CANCEL_RESET (oldtype);
return result;
}
strong_alias (__nanosleep, nanosleep)

View File

@ -1,51 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <stdarg.h>
#include <sysdep.h>
#include <unistd.h>
#include "pthreadP.h"
int
__open (const char *pathname, int flags, ...)
{
va_list ap;
va_start (ap, flags);
int oldtype = CANCEL_ASYNC ();
#ifdef INLINE_SYSCALL
int result = INLINE_SYSCALL (open, 3, pathname, flags,
va_arg (ap, __typeof ((mode_t) 0 + 0)));
#else
int result = __libc_open (pathname, flags,
va_arg (ap, __typeof ((mode_t) 0 + 0)));
#endif
CANCEL_RESET (oldtype);
va_end (ap);
return result;
}
strong_alias (__open, open)

View File

@ -1,52 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdarg.h>
#include <sysdep.h>
#include <unistd.h>
#include "pthreadP.h"
int
__open64 (const char *pathname, int flags, ...)
{
va_list ap;
va_start (ap, flags);
int oldtype = CANCEL_ASYNC ();
#if defined INLINE_SYSCALL && defined O_LARGEFILE
int result = INLINE_SYSCALL (open, 3, pathname, flags | O_LARGEFILE,
va_arg (ap, __typeof ((mode_t) 0 + 0)));
#else
int result = __libc_open64 (pathname, flags,
va_arg (ap, __typeof ((mode_t) 0 + 0)));
#endif
CANCEL_RESET (oldtype);
va_end (ap);
return result;
}
strong_alias (__open64, open64)

View File

@ -1,37 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <unistd.h>
#include "pthreadP.h"
int
pause (void)
{
int oldtype = CANCEL_ASYNC ();
int result = __libc_pause ();
CANCEL_RESET (oldtype);
return result;
}

View File

@ -1,37 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <unistd.h>
#include "pthreadP.h"
ssize_t
pread (int fd, void *buf, size_t count, off_t offset)
{
int oldtype = CANCEL_ASYNC ();
ssize_t result = __libc_pread (fd, buf, count, offset);
CANCEL_RESET (oldtype);
return result;
}

View File

@ -1,38 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <unistd.h>
#include "pthreadP.h"
ssize_t
__pread64 (int fd, void *buf, size_t count, off64_t offset)
{
int oldtype = CANCEL_ASYNC ();
ssize_t result = __libc_pread64 (fd, buf, count, offset);
CANCEL_RESET (oldtype);
return result;
}
strong_alias (__pread64, pread64)

View File

@ -1,37 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <unistd.h>
#include "pthreadP.h"
ssize_t
pwrite (int fd, const void *buf, size_t count, off_t offset)
{
int oldtype = CANCEL_ASYNC ();
ssize_t result = __libc_pwrite (fd, buf, count, offset);
CANCEL_RESET (oldtype);
return result;
}

View File

@ -1,38 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <unistd.h>
#include "pthreadP.h"
ssize_t
__pwrite64 (int fd, const void *buf, size_t count, off64_t offset)
{
int oldtype = CANCEL_ASYNC ();
ssize_t result = __libc_pwrite64 (fd, buf, count, offset);
CANCEL_RESET (oldtype);
return result;
}
strong_alias (__pwrite64, pwrite64)

View File

@ -1,42 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <unistd.h>
#include "pthreadP.h"
ssize_t
__read (int fd, void *buf, size_t count)
{
int oldtype = CANCEL_ASYNC ();
#ifdef INLINE_SYSCALL
ssize_t result = INLINE_SYSCALL (read, 3, fd, buf, count);
#else
ssize_t result = __libc_read (fd, buf, count);
#endif
CANCEL_RESET (oldtype);
return result;
}
strong_alias (__read, read)

View File

@ -1,37 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <sys/socket.h>
#include "pthreadP.h"
ssize_t
recv (int fd, __ptr_t buf, size_t n, int flags)
{
int oldtype = CANCEL_ASYNC ();
ssize_t result = __libc_recv (fd, buf, n, flags);
CANCEL_RESET (oldtype);
return result;
}

View File

@ -1,38 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <sys/socket.h>
#include "pthreadP.h"
ssize_t
recvfrom (int fd, __ptr_t buf, size_t n, int flags, __SOCKADDR_ARG addr,
socklen_t *addr_len)
{
int oldtype = CANCEL_ASYNC ();
ssize_t result = __libc_recvfrom (fd, buf, n, flags, addr, addr_len);
CANCEL_RESET (oldtype);
return result;
}

View File

@ -1,37 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <sys/socket.h>
#include "pthreadP.h"
ssize_t
recvmsg (int fd, struct msghdr *message, int flags)
{
int oldtype = CANCEL_ASYNC ();
ssize_t result = __libc_recvmsg (fd, message, flags);
CANCEL_RESET (oldtype);
return result;
}

View File

@ -1,38 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <sys/socket.h>
#include "pthreadP.h"
ssize_t
__send (int fd, const __ptr_t buf, size_t n, int flags)
{
int oldtype = CANCEL_ASYNC ();
ssize_t result = __libc_send (fd, buf, n, flags);
CANCEL_RESET (oldtype);
return result;
}
strong_alias (__send, send)

View File

@ -1,37 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <sys/socket.h>
#include "pthreadP.h"
ssize_t
sendmsg (int fd, const struct msghdr *message, int flags)
{
int oldtype = CANCEL_ASYNC ();
ssize_t result = __libc_sendmsg (fd, message, flags);
CANCEL_RESET (oldtype);
return result;
}

View File

@ -1,38 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <sys/socket.h>
#include "pthreadP.h"
ssize_t
sendto (int fd, const __ptr_t buf, size_t n, int flags,
__CONST_SOCKADDR_ARG addr, socklen_t addr_len)
{
int oldtype = CANCEL_ASYNC ();
ssize_t result = __libc_sendto (fd, buf, n, flags, addr, addr_len);
CANCEL_RESET (oldtype);
return result;
}

View File

@ -1,43 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <unistd.h>
#include <signal.h>
#include <sysdep.h>
#include "pthreadP.h"
int
sigtimedwait (const sigset_t *set, siginfo_t *info,
const struct timespec *timeout)
{
int oldtype = CANCEL_ASYNC ();
#ifdef INLINE_SYSCALL
int result = INLINE_SYSCALL (rt_sigtimedwait, 4, set, info, timeout,
_NSIG / 8);
#else
int result = __sigtimedwait (set, info, timeout);
#endif
CANCEL_RESET (oldtype);
return result;
}

View File

@ -1,58 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <unistd.h>
#include <signal.h>
#include <sysdep.h>
#include "pthreadP.h"
int
sigwait (const sigset_t *set, int *sig)
{
int oldtype = CANCEL_ASYNC ();
#ifdef INTERNAL_SYSCALL
int result = INTERNAL_SYSCALL (rt_sigtimedwait, 4, set, NULL, NULL,
_NSIG / 8);
if (! INTERNAL_SYSCALL_ERROR_P (result))
{
*sig = result;
result = 0;
}
else
result = INTERNAL_SYSCALL_ERRNO (result);
#elif defined INLINE_SYSCALL
int result = INLINE_SYSCALL (rt_sigtimedwait, 4, set, NULL, NULL, _NSIG / 8);
if (result != -1)
{
*sig = result;
result = 0;
}
else
result = errno;
#else
int result = __sigwait (set, sig);
#endif
CANCEL_RESET (oldtype);
return result;
}

View File

@ -1,37 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <termios.h>
#include "pthreadP.h"
int
tcdrain (int fd)
{
int oldtype = CANCEL_ASYNC ();
int result = __libc_tcdrain (fd);
CANCEL_RESET (oldtype);
return result;
}

View File

@ -1,38 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <sys/wait.h>
#include "pthreadP.h"
pid_t
__wait (__WAIT_STATUS_DEFN stat_loc)
{
int oldtype = CANCEL_ASYNC ();
pid_t result = __libc_wait (stat_loc);
CANCEL_RESET (oldtype);
return result;
}
strong_alias (__wait, wait)

View File

@ -1,37 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <sys/wait.h>
#include "pthreadP.h"
pid_t
waitpid (pid_t pid, int *stat_loc, int options)
{
int oldtype = CANCEL_ASYNC ();
pid_t result = __libc_waitpid (pid, stat_loc, options);
CANCEL_RESET (oldtype);
return result;
}

View File

@ -1,42 +0,0 @@
/* Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include <errno.h>
#include <stdlib.h>
#include <sysdep.h>
#include <unistd.h>
#include "pthreadP.h"
ssize_t
__write (int fd, const void *buf, size_t count)
{
int oldtype = CANCEL_ASYNC ();
#ifdef INLINE_SYSCALL
ssize_t result = INLINE_SYSCALL (write, 3, fd, buf, count);
#else
ssize_t result = __libc_write (fd, buf, count);
#endif
CANCEL_RESET (oldtype);
return result;
}
strong_alias (__write, write)

View File

@ -129,12 +129,20 @@ extern struct pthread_functions __libc_pthread_functions attribute_hidden;
#define CANCEL_RESET(oldtype) \ #define CANCEL_RESET(oldtype) \
__pthread_disable_asynccancel (oldtype) __pthread_disable_asynccancel (oldtype)
#if !defined NOT_IN_libc
/* Same as CANCEL_ASYNC, but for use in libc.so. */ /* Same as CANCEL_ASYNC, but for use in libc.so. */
# define LIBC_CANCEL_ASYNC() \ # define LIBC_CANCEL_ASYNC() \
__libc_enable_asynccancel () __libc_enable_asynccancel ()
/* Same as CANCEL_RESET, but for use in libc.so. */ /* Same as CANCEL_RESET, but for use in libc.so. */
# define LIBC_CANCEL_RESET(oldtype) \ # define LIBC_CANCEL_RESET(oldtype) \
__libc_disable_asynccancel (oldtype) __libc_disable_asynccancel (oldtype)
#elif defined NOT_IN_libc && defined IS_IN_libpthread
# define LIBC_CANCEL_ASYNC() CANCEL_ASYNC ()
# define LIBC_CANCEL_RESET(val) CANCEL_RESET (val)
#else
# define LIBC_CANCEL_ASYNC() 0 /* Just a dummy value. */
# define LIBC_CANCEL_RESET(val) ((void)(val)) /* Nothing, but evaluate it. */
#endif
/* This function is responsible for calling all registered cleanup /* This function is responsible for calling all registered cleanup

View File

@ -134,6 +134,7 @@ shared-only-routines += $file
*) *)
echo "\ echo "\
\$(foreach o,\$(object-suffixes),\$(objpfx)$file\$o) \ \$(foreach o,\$(object-suffixes),\$(objpfx)$file\$o) \
\$(foreach o,\$(object-suffixes),\$(objpfx)ptw-$file\$o) \
\$(objpfx)rtld-$file.os: \\" \$(objpfx)rtld-$file.os: \\"
;; ;;
esac esac

View File

@ -76,7 +76,7 @@ L(pseudo_end):
1: pushl %esi 1: pushl %esi
/* Enable asynchronous cancellation. */ /* Enable asynchronous cancellation. */
call __libc_enable_asynccancel /* No @plt */ CENABLE
movl %eax, %esi movl %eax, %esi
/* Save registers. */ /* Save registers. */
@ -93,7 +93,7 @@ L(pseudo_end):
/* Restore the cancellation. */ /* Restore the cancellation. */
xchgl %esi, %eax xchgl %esi, %eax
call __libc_disable_asynccancel /* No @plt */ CDISABLE
/* Restore registers. */ /* Restore registers. */
movl %esi, %eax movl %esi, %eax

View File

@ -81,6 +81,10 @@ s_stat xstat stat i:sp __syscall_stat
s_lstat lxstat lstat i:sp __syscall_lstat s_lstat lxstat lstat i:sp __syscall_lstat
s_fstat fxstat fstat i:ip __syscall_fstat s_fstat fxstat fstat i:ip __syscall_fstat
s_sysctl sysctl _sysctl i:p __syscall__sysctl s_sysctl sysctl _sysctl i:p __syscall__sysctl
s_open open open i:siv __syscall_open
s_wait4 wait4 wait4 i:iWiP __syscall_wait4
s_ioctl ioctl ioctl i:iiI __syscall_ioctl
s_write write write i:ibn __syscall_write
# IA-64 specific # IA-64 specific
getunwind EXTRA getunwind i:pi getunwind getunwind EXTRA getunwind i:pi getunwind