summaryrefslogtreecommitdiff
path: root/libpthread/linuxthreads.old
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@uclibc-ng.org>2016-05-18 18:41:24 +0200
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2016-05-18 18:41:24 +0200
commit6a8ccc95528f5e86a8770ed15ce89609b5b3dee9 (patch)
treebbd4df35b4d4a6a8b00d7a5e61fb2668b850ad62 /libpthread/linuxthreads.old
parent398a27a5b323956344b4f831d892fed3bd9813c7 (diff)
remove linuxthreads.new, rename linuxthreads.old
Linuxthreads.new isn't really useful with the existence of NPTL/TLS for well supported architectures. There is no reason to use LT.new for ARM/MIPS or other architectures supporting NPTL/TLS. It is not available for noMMU architectures like Blackfin or FR-V. To simplify the live of the few uClibc-ng developers, LT.new is removed and LT.old is renamed to LT. LINUXTHREADS_OLD -> UCLIBC_HAS_LINUXTHREADS
Diffstat (limited to 'libpthread/linuxthreads.old')
-rw-r--r--libpthread/linuxthreads.old/Makefile13
-rw-r--r--libpthread/linuxthreads.old/Makefile.in119
-rw-r--r--libpthread/linuxthreads.old/attr.c240
-rw-r--r--libpthread/linuxthreads.old/cancel.c219
-rw-r--r--libpthread/linuxthreads.old/condvar.c304
-rw-r--r--libpthread/linuxthreads.old/debug.h40
-rw-r--r--libpthread/linuxthreads.old/errno.c35
-rw-r--r--libpthread/linuxthreads.old/events.c36
-rw-r--r--libpthread/linuxthreads.old/forward.c173
-rw-r--r--libpthread/linuxthreads.old/internals.h529
-rw-r--r--libpthread/linuxthreads.old/join.c369
-rw-r--r--libpthread/linuxthreads.old/libc_pthread_init.c43
-rw-r--r--libpthread/linuxthreads.old/linuxthreads.texi1627
-rw-r--r--libpthread/linuxthreads.old/locale.c57
-rw-r--r--libpthread/linuxthreads.old/lockfile.c42
-rw-r--r--libpthread/linuxthreads.old/manager.c933
-rw-r--r--libpthread/linuxthreads.old/mutex.c362
-rw-r--r--libpthread/linuxthreads.old/pt-machine.c21
-rw-r--r--libpthread/linuxthreads.old/ptfork.c167
-rw-r--r--libpthread/linuxthreads.old/pthread.c1165
-rw-r--r--libpthread/linuxthreads.old/ptlongjmp.c67
-rw-r--r--libpthread/linuxthreads.old/queue.h60
-rw-r--r--libpthread/linuxthreads.old/restart.h50
-rw-r--r--libpthread/linuxthreads.old/rwlock.c485
-rw-r--r--libpthread/linuxthreads.old/semaphore.c299
-rw-r--r--libpthread/linuxthreads.old/semaphore.h97
-rw-r--r--libpthread/linuxthreads.old/signals.c246
-rw-r--r--libpthread/linuxthreads.old/specific.c198
-rw-r--r--libpthread/linuxthreads.old/spinlock.c720
-rw-r--r--libpthread/linuxthreads.old/spinlock.h218
-rw-r--r--libpthread/linuxthreads.old/sysdeps/alpha/pt-machine.h126
-rw-r--r--libpthread/linuxthreads.old/sysdeps/arc/pt-machine.h42
-rw-r--r--libpthread/linuxthreads.old/sysdeps/arm/pt-machine.h109
-rw-r--r--libpthread/linuxthreads.old/sysdeps/avr32/pt-machine.h73
-rw-r--r--libpthread/linuxthreads.old/sysdeps/bfin/pt-machine.h75
-rw-r--r--libpthread/linuxthreads.old/sysdeps/c6x/pt-machine.h63
-rw-r--r--libpthread/linuxthreads.old/sysdeps/cris/pt-machine.h69
-rw-r--r--libpthread/linuxthreads.old/sysdeps/frv/pt-machine.h69
-rw-r--r--libpthread/linuxthreads.old/sysdeps/h8300/pt-machine.h57
-rw-r--r--libpthread/linuxthreads.old/sysdeps/hppa/pspinlock.c80
-rw-r--r--libpthread/linuxthreads.old/sysdeps/hppa/pt-machine.h59
-rw-r--r--libpthread/linuxthreads.old/sysdeps/i386/pt-machine.h146
-rw-r--r--libpthread/linuxthreads.old/sysdeps/i386/tls.h184
-rw-r--r--libpthread/linuxthreads.old/sysdeps/i386/useldt.h306
-rw-r--r--libpthread/linuxthreads.old/sysdeps/ia64/pt-machine.h134
-rw-r--r--libpthread/linuxthreads.old/sysdeps/ia64/tls.h138
-rw-r--r--libpthread/linuxthreads.old/sysdeps/m68k/pt-machine.h74
-rw-r--r--libpthread/linuxthreads.old/sysdeps/microblaze/pt-machine.h106
-rw-r--r--libpthread/linuxthreads.old/sysdeps/microblaze/sigcontextinfo.h17
-rw-r--r--libpthread/linuxthreads.old/sysdeps/mips/pt-machine.h105
-rw-r--r--libpthread/linuxthreads.old/sysdeps/nios2/pt-machine.h57
-rw-r--r--libpthread/linuxthreads.old/sysdeps/or1k/pt-machine.h54
-rw-r--r--libpthread/linuxthreads.old/sysdeps/powerpc/pt-machine.h101
-rw-r--r--libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-lock.h415
-rw-r--r--libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-tsd.h69
-rw-r--r--libpthread/linuxthreads.old/sysdeps/pthread/bits/pthreadtypes.h145
-rw-r--r--libpthread/linuxthreads.old/sysdeps/pthread/not-cancel.h113
-rw-r--r--libpthread/linuxthreads.old/sysdeps/pthread/pthread-functions.h113
-rw-r--r--libpthread/linuxthreads.old/sysdeps/pthread/pthread.h725
-rw-r--r--libpthread/linuxthreads.old/sysdeps/pthread/tls.h80
-rw-r--r--libpthread/linuxthreads.old/sysdeps/sh/pt-machine.h81
-rw-r--r--libpthread/linuxthreads.old/sysdeps/sh/tls.h116
-rw-r--r--libpthread/linuxthreads.old/sysdeps/sparc/pt-machine.h82
-rw-r--r--libpthread/linuxthreads.old/sysdeps/sparc/tcb-offsets.h1
-rw-r--r--libpthread/linuxthreads.old/sysdeps/x86_64/pt-machine.h87
-rw-r--r--libpthread/linuxthreads.old/sysdeps/x86_64/tls.h133
-rw-r--r--libpthread/linuxthreads.old/sysdeps/xtensa/pt-machine.h79
-rw-r--r--libpthread/linuxthreads.old/wrapsyscall.c246
68 files changed, 0 insertions, 13663 deletions
diff --git a/libpthread/linuxthreads.old/Makefile b/libpthread/linuxthreads.old/Makefile
deleted file mode 100644
index f9100219a..000000000
--- a/libpthread/linuxthreads.old/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-# Makefile for uClibc
-#
-# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
-#
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-#
-
-top_srcdir=../../
-top_builddir=../../
-include $(top_builddir)Rules.mak
-all: libs
-include Makefile.in
-include $(top_srcdir)Makerules
diff --git a/libpthread/linuxthreads.old/Makefile.in b/libpthread/linuxthreads.old/Makefile.in
deleted file mode 100644
index 6be2099d2..000000000
--- a/libpthread/linuxthreads.old/Makefile.in
+++ /dev/null
@@ -1,119 +0,0 @@
-# Makefile for uClibc
-#
-# Copyright (C) 2003 Paul Mundt <lethal@linux-sh.org>
-# Copyright (C) 2000-2008 Erik Andersen <andersen@uclibc.org>
-#
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-#
-
-subdirs += libpthread/linuxthreads.old
-
-CFLAGS-dir_linuxthreads.old := -DNOT_IN_libc -DIS_IN_libpthread
-CFLAGS-libpthread/linuxthreads.old := $(CFLAGS-dir_linuxthreads.old) $(SSP_ALL_CFLAGS)
-
-ifeq ($(PTHREADS_DEBUG_SUPPORT),y)
-LDFLAGS-libpthread.so := $(LDFLAGS_NOSTRIP) -Wl,-z,defs
-else
-LDFLAGS-libpthread.so := $(LDFLAGS)
-endif
-LDFLAGS-$(UCLIBC_FORMAT_DSBT_ELF)-libpthread.so := -Wl,--dsbt-index=10
-
-LIBS-libpthread.so := $(LIBS) $(ldso)
-
-START_FILE-libpthread.so := $(SHARED_START_FILES)
-END_FILE-libpthread.so := $(SHARED_END_FILES)
-
-libpthread_FULL_NAME := libpthread-$(VERSION).so
-
-libpthread_DIR := $(top_srcdir)libpthread/linuxthreads.old
-libpthread_OUT := $(top_builddir)libpthread/linuxthreads.old
-
--include $(libpthread_DIR)/sysdeps/$(TARGET_ARCH)/Makefile.arch
-
-libpthread_SRC := \
- attr.c cancel.c condvar.c errno.c events.c join.c lockfile.c manager.c \
- mutex.c pt-machine.c ptfork.c pthread.c ptlongjmp.c \
- rwlock.c semaphore.c signals.c specific.c spinlock.c wrapsyscall.c
-ifeq ($(UCLIBC_HAS_XLOCALE),y)
-libpthread_SRC += locale.c
-endif
-
-# remove generic sources, if arch specific version is present
-ifneq ($(strip $(libpthread_ARCH_SRC)),)
-libpthread_SRC := $(filter-out $(patsubst %.c,$(libpthread_DIR)/%.c,$(notdir $(libpthread_ARCH_SRC))),$(libpthread_SRC))
-endif
-
-libpthread_SRC := $(patsubst %,$(libpthread_DIR)/%,$(libpthread_SRC))
-
-libpthread_OBJ := $(patsubst $(libpthread_DIR)/%.c,$(libpthread_OUT)/%.o,$(libpthread_SRC))
-
-#
-# Stuff that goes into libc.so, not libpthread.so
-#
-CFLAGS-OMIT-forward.c := $(CFLAGS-dir_linuxthreads.old)
-CFLAGS-OMIT-libc_pthread_init.c := $(CFLAGS-dir_linuxthreads.old)
-libpthread_libc_CSRC := forward.c libc_pthread_init.c
-libpthread_libc_OBJ := $(patsubst %.c, $(libpthread_OUT)/%.o,$(libpthread_libc_CSRC))
-libc-static-y += $(libpthread_OUT)/libc_pthread_init.o
-libc-shared-y += $(libpthread_libc_OBJ:.o=.oS)
-
-ifeq ($(DOPIC),y)
-libpthread-a-y += $(libpthread_OBJ:.o=.os)
-else
-libpthread-a-y += $(libpthread_OBJ)
-endif
-libpthread-so-y += $(libpthread_OBJ:.o=.oS)
-
-lib-a-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.a
-lib-so-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.so
-
-#ifeq ($(DOMULTI),n)
-$(top_builddir)lib/libpthread.so: $(libpthread_OUT)/libpthread_so.a $(libc.depend)
- $(call link.so,$(libpthread_FULL_NAME),$(ABI_VERSION))
-#else
-#$(top_builddir)lib/libpthread.so: $(libpthread_OUT)/libpthread.oS | $(libc.depend)
-# $(call linkm.so,$(libpthread_FULL_NAME),$(ABI_VERSION))
-#endif
-
-ifeq ($(PTHREADS_DEBUG_SUPPORT),y)
-$(libpthread_OUT)/libpthread_so.a: STRIP_FLAGS:=$(STRIP_FLAGS:-x=-X --strip-debug)
-endif
-$(libpthread_OUT)/libpthread_so.a: $(libpthread-so-y)
- $(Q)$(RM) $@
- $(do_ar)
-
-ifeq ($(PTHREADS_DEBUG_SUPPORT),y)
-$(libpthread_OUT)/libpthread.oS: STRIP_FLAGS:=$(STRIP_FLAGS:-x=-X --strip-debug)
-endif
-$(libpthread_OUT)/libpthread.oS: $(libpthread_SRC)
- $(Q)$(RM) $@
- $(compile-m)
-
-ifeq ($(PTHREADS_DEBUG_SUPPORT),y)
-$(top_builddir)lib/libpthread.a: STRIP_FLAGS:=$(STRIP_FLAGS:-x=-X --strip-debug)
-endif
-$(top_builddir)lib/libpthread.a: $(libpthread-a-y)
- $(Q)$(INSTALL) -d $(dir $@)
- $(Q)$(RM) $@
- $(do_ar)
-
-$(top_builddir)include/pthread.h:
- $(do_ln) $(call rel_srcdir)$(PTDIR)/sysdeps/pthread/$(@F) $@
-$(top_builddir)include/semaphore.h:
- $(do_ln) $(call rel_srcdir)$(PTDIR)/$(@F) $@
-$(top_builddir)include/bits/pthreadtypes.h: | $(top_builddir)include/bits
- $(do_ln) $(call rel_srcdir)$(PTDIR)/sysdeps/pthread/bits/$(@F) $@
-
-linuxthreads_headers := $(top_builddir)include/pthread.h \
- $(top_builddir)include/semaphore.h \
- $(top_builddir)include/bits/pthreadtypes.h
-$(linuxthreads_headers): $(wildcard $(addprefix $(top_builddir)include/config/linuxthreads/,old.h new.h))
-headers-$(UCLIBC_HAS_THREADS) += $(linuxthreads_headers)
-
-objclean-y += CLEAN_libpthread/linuxthreads.old
-headers_clean-y += HEADERCLEAN_libpthread/linuxthreads.old
-HEADERCLEAN_libpthread/linuxthreads.old:
- $(do_rm) $(linuxthreads_headers)
-
-CLEAN_libpthread/linuxthreads.old:
- $(do_rm) $(addprefix $(libpthread_OUT)/*., o os oS a)
diff --git a/libpthread/linuxthreads.old/attr.c b/libpthread/linuxthreads.old/attr.c
deleted file mode 100644
index 8465c234c..000000000
--- a/libpthread/linuxthreads.old/attr.c
+++ /dev/null
@@ -1,240 +0,0 @@
-/* Linuxthreads - a simple clone()-based implementation of Posix */
-/* threads for Linux. */
-/* Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr) */
-/* */
-/* This program is free software; you can redistribute it and/or */
-/* modify it under the terms of the GNU Library General Public License */
-/* as published by the Free Software Foundation; either version 2 */
-/* of the License, or (at your option) any later version. */
-/* */
-/* This program is distributed in the hope that it will be useful, */
-/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
-/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
-/* GNU Library General Public License for more details. */
-
-/* changed for uClibc */
-#define __sched_get_priority_min sched_get_priority_min
-#define __sched_get_priority_max sched_get_priority_max
-
-/* Handling of thread attributes */
-
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/param.h>
-#include "pthread.h"
-#include "internals.h"
-
-libpthread_hidden_proto(pthread_attr_destroy)
-libpthread_hidden_proto(pthread_attr_init)
-libpthread_hidden_proto(pthread_attr_getdetachstate)
-libpthread_hidden_proto(pthread_attr_setdetachstate)
-libpthread_hidden_proto(pthread_attr_getinheritsched)
-libpthread_hidden_proto(pthread_attr_setinheritsched)
-libpthread_hidden_proto(pthread_attr_setschedparam)
-libpthread_hidden_proto(pthread_attr_getschedparam)
-libpthread_hidden_proto(pthread_attr_getschedpolicy)
-libpthread_hidden_proto(pthread_attr_setschedpolicy)
-libpthread_hidden_proto(pthread_attr_getscope)
-libpthread_hidden_proto(pthread_attr_setscope)
-
-/* NOTE: With uClibc I don't think we need this versioning stuff.
- * Therefore, define the function pthread_attr_init() here using
- * a strong symbol. */
-
-/*int __pthread_attr_init_2_1(pthread_attr_t *attr)*/
-int pthread_attr_init(pthread_attr_t *attr)
-{
- size_t ps = getpagesize ();
-
- attr->__detachstate = PTHREAD_CREATE_JOINABLE;
- attr->__schedpolicy = SCHED_OTHER;
- attr->__schedparam.sched_priority = 0;
- attr->__inheritsched = PTHREAD_EXPLICIT_SCHED;
- attr->__scope = PTHREAD_SCOPE_SYSTEM;
- attr->__guardsize = ps;
- attr->__stackaddr = NULL;
- attr->__stackaddr_set = 0;
- attr->__stacksize = STACK_SIZE - ps;
- return 0;
-}
-libpthread_hidden_def(pthread_attr_init)
-
-/* uClibc: leave out this for now. */
-#if defined DO_PTHREAD_VERSIONING_WITH_UCLIBC
-#if defined __PIC__ && defined DO_VERSIONING
-default_symbol_version (__pthread_attr_init_2_1, pthread_attr_init, GLIBC_2.1);
-
-int __pthread_attr_init_2_0(pthread_attr_t *attr)
-{
- attr->__detachstate = PTHREAD_CREATE_JOINABLE;
- attr->__schedpolicy = SCHED_OTHER;
- attr->__schedparam.sched_priority = 0;
- attr->__inheritsched = PTHREAD_EXPLICIT_SCHED;
- attr->__scope = PTHREAD_SCOPE_SYSTEM;
- return 0;
-}
-symbol_version (__pthread_attr_init_2_0, pthread_attr_init, GLIBC_2.0);
-#else
-strong_alias (__pthread_attr_init_2_1, pthread_attr_init)
-#endif
-#endif /* DO_PTHREAD_VERSIONING_WITH_UCLIBC */
-
-int pthread_attr_destroy(pthread_attr_t *attr attribute_unused)
-{
- return 0;
-}
-libpthread_hidden_def(pthread_attr_destroy)
-
-
-int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate)
-{
- if (detachstate < PTHREAD_CREATE_JOINABLE ||
- detachstate > PTHREAD_CREATE_DETACHED)
- return EINVAL;
- attr->__detachstate = detachstate;
- return 0;
-}
-libpthread_hidden_def(pthread_attr_setdetachstate)
-
-int pthread_attr_getdetachstate(const pthread_attr_t *attr, int *detachstate)
-{
- *detachstate = attr->__detachstate;
- return 0;
-}
-libpthread_hidden_def(pthread_attr_getdetachstate)
-
-int pthread_attr_setschedparam(pthread_attr_t *attr,
- const struct sched_param *param)
-{
- int max_prio = __sched_get_priority_max(attr->__schedpolicy);
- int min_prio = __sched_get_priority_min(attr->__schedpolicy);
-
- if (param->sched_priority < min_prio || param->sched_priority > max_prio)
- return EINVAL;
- memcpy (&attr->__schedparam, param, sizeof (struct sched_param));
- return 0;
-}
-libpthread_hidden_def(pthread_attr_setschedparam)
-
-int pthread_attr_getschedparam(const pthread_attr_t *attr,
- struct sched_param *param)
-{
- memcpy (param, &attr->__schedparam, sizeof (struct sched_param));
- return 0;
-}
-libpthread_hidden_def(pthread_attr_getschedparam)
-
-int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy)
-{
- if (policy != SCHED_OTHER && policy != SCHED_FIFO && policy != SCHED_RR)
- return EINVAL;
- attr->__schedpolicy = policy;
- return 0;
-}
-libpthread_hidden_def(pthread_attr_setschedpolicy)
-
-int pthread_attr_getschedpolicy(const pthread_attr_t *attr, int *policy)
-{
- *policy = attr->__schedpolicy;
- return 0;
-}
-libpthread_hidden_def(pthread_attr_getschedpolicy)
-
-int pthread_attr_setinheritsched(pthread_attr_t *attr, int inherit)
-{
- if (inherit != PTHREAD_INHERIT_SCHED && inherit != PTHREAD_EXPLICIT_SCHED)
- return EINVAL;
- attr->__inheritsched = inherit;
- return 0;
-}
-libpthread_hidden_def(pthread_attr_setinheritsched)
-
-int pthread_attr_getinheritsched(const pthread_attr_t *attr, int *inherit)
-{
- *inherit = attr->__inheritsched;
- return 0;
-}
-libpthread_hidden_def(pthread_attr_getinheritsched)
-
-int pthread_attr_setscope(pthread_attr_t *attr, int scope)
-{
- switch (scope) {
- case PTHREAD_SCOPE_SYSTEM:
- attr->__scope = scope;
- return 0;
- case PTHREAD_SCOPE_PROCESS:
- return ENOTSUP;
- default:
- return EINVAL;
- }
-}
-libpthread_hidden_def(pthread_attr_setscope)
-
-int pthread_attr_getscope(const pthread_attr_t *attr, int *scope)
-{
- *scope = attr->__scope;
- return 0;
-}
-libpthread_hidden_def(pthread_attr_getscope)
-
-int __pthread_attr_setguardsize(pthread_attr_t *attr, size_t guardsize)
-{
- size_t ps = getpagesize ();
-
- /* First round up the guard size. */
- guardsize = roundup (guardsize, ps);
-
- /* The guard size must not be larger than the stack itself */
- if (guardsize >= attr->__stacksize) return EINVAL;
-
- attr->__guardsize = guardsize;
-
- return 0;
-}
-weak_alias (__pthread_attr_setguardsize, pthread_attr_setguardsize)
-
-int __pthread_attr_getguardsize(const pthread_attr_t *attr, size_t *guardsize)
-{
- *guardsize = attr->__guardsize;
- return 0;
-}
-weak_alias (__pthread_attr_getguardsize, pthread_attr_getguardsize)
-
-#if 0 /* uClibc: deprecated stuff disabled */
-int __pthread_attr_setstackaddr(pthread_attr_t *attr, void *stackaddr)
-{
- attr->__stackaddr = stackaddr;
- attr->__stackaddr_set = 1;
- return 0;
-}
-weak_alias (__pthread_attr_setstackaddr, pthread_attr_setstackaddr)
-
-int __pthread_attr_getstackaddr(const pthread_attr_t *attr, void **stackaddr)
-{
- /* XXX This function has a stupid definition. The standard specifies
- no error value but what is if no stack address was set? We simply
- return the value we have in the member. */
- *stackaddr = attr->__stackaddr;
- return 0;
-}
-weak_alias (__pthread_attr_getstackaddr, pthread_attr_getstackaddr)
-#endif
-
-int __pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize)
-{
- /* We don't accept value smaller than PTHREAD_STACK_MIN. */
- if (stacksize < PTHREAD_STACK_MIN)
- return EINVAL;
-
- attr->__stacksize = stacksize;
- return 0;
-}
-weak_alias (__pthread_attr_setstacksize, pthread_attr_setstacksize)
-
-int __pthread_attr_getstacksize(const pthread_attr_t *attr, size_t *stacksize)
-{
- *stacksize = attr->__stacksize;
- return 0;
-}
-weak_alias (__pthread_attr_getstacksize, pthread_attr_getstacksize)
diff --git a/libpthread/linuxthreads.old/cancel.c b/libpthread/linuxthreads.old/cancel.c
deleted file mode 100644
index 392d1d586..000000000
--- a/libpthread/linuxthreads.old/cancel.c
+++ /dev/null
@@ -1,219 +0,0 @@
-/* Linuxthreads - a simple clone()-based implementation of Posix */
-/* threads for Linux. */
-/* Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr) */
-/* */
-/* This program is free software; you can redistribute it and/or */
-/* modify it under the terms of the GNU Library General Public License */
-/* as published by the Free Software Foundation; either version 2 */
-/* of the License, or (at your option) any later version. */
-/* */
-/* This program is distributed in the hope that it will be useful, */
-/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
-/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
-/* GNU Library General Public License for more details. */
-
-/* Thread cancellation */
-
-#include <errno.h>
-#include "pthread.h"
-#include "internals.h"
-#include "spinlock.h"
-#include "restart.h"
-#ifdef __UCLIBC_HAS_RPC__
-#include <rpc/rpc.h>
-extern void __rpc_thread_destroy(void);
-#endif
-#include <bits/stackinfo.h>
-
-#include <stdio.h>
-
-#ifdef _STACK_GROWS_DOWN
-# define FRAME_LEFT(frame, other) ((char *) frame >= (char *) other)
-#elif defined _STACK_GROWS_UP
-# define FRAME_LEFT(frame, other) ((char *) frame <= (char *) other)
-#else
-# error "Define either _STACK_GROWS_DOWN or _STACK_GROWS_UP"
-#endif
-
-libpthread_hidden_proto(pthread_setcancelstate)
-libpthread_hidden_proto(pthread_setcanceltype)
-
-int pthread_setcancelstate(int state, int * oldstate)
-{
- pthread_descr self = thread_self();
- if (state < PTHREAD_CANCEL_ENABLE || state > PTHREAD_CANCEL_DISABLE)
- return EINVAL;
- if (oldstate != NULL) *oldstate = THREAD_GETMEM(self, p_cancelstate);
- THREAD_SETMEM(self, p_cancelstate, state);
- if (THREAD_GETMEM(self, p_canceled) &&
- THREAD_GETMEM(self, p_cancelstate) == PTHREAD_CANCEL_ENABL