Page MenuHomeFreeBSD

D1556.id.diff
No OneTemporary

D1556.id.diff

Index: head/lib/libthr/Makefile
===================================================================
--- head/lib/libthr/Makefile
+++ head/lib/libthr/Makefile
@@ -45,7 +45,9 @@
.PATH: ${.CURDIR}/arch/${MACHINE_CPUARCH}/${MACHINE_CPUARCH}
+.if exists(${.CURDIR}/arch/${MACHINE_CPUARCH}/Makefile.inc)
.include "${.CURDIR}/arch/${MACHINE_CPUARCH}/Makefile.inc"
+.endif
.include "${.CURDIR}/sys/Makefile.inc"
.include "${.CURDIR}/thread/Makefile.inc"
Index: head/lib/libthr/arch/amd64/Makefile.inc
===================================================================
--- head/lib/libthr/arch/amd64/Makefile.inc
+++ head/lib/libthr/arch/amd64/Makefile.inc
@@ -1,3 +1,3 @@
#$FreeBSD$
-SRCS+= pthread_md.c _umtx_op_err.S
+SRCS+= _umtx_op_err.S
Index: head/lib/libthr/arch/amd64/amd64/pthread_md.c
===================================================================
--- head/lib/libthr/arch/amd64/amd64/pthread_md.c
+++ head/lib/libthr/arch/amd64/amd64/pthread_md.c
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 2003 Daniel Eischen <deischen@freebsd.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Neither the name of the author nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-
-#include <sys/types.h>
-#include <rtld_tls.h>
-
-#include "pthread_md.h"
-
-/*
- * The constructors.
- */
-struct tcb *
-_tcb_ctor(struct pthread *thread, int initial)
-{
- struct tcb *tcb;
-
- if (initial)
- __asm __volatile("movq %%fs:0, %0" : "=r" (tcb));
- else
- tcb = _rtld_allocate_tls(NULL, sizeof(struct tcb), 16);
- if (tcb)
- tcb->tcb_thread = thread;
- return (tcb);
-}
-
-void
-_tcb_dtor(struct tcb *tcb)
-{
- _rtld_free_tls(tcb, sizeof(struct tcb), 16);
-}
Index: head/lib/libthr/arch/amd64/include/pthread_md.h
===================================================================
--- head/lib/libthr/arch/amd64/include/pthread_md.h
+++ head/lib/libthr/arch/amd64/include/pthread_md.h
@@ -77,9 +77,6 @@
__result; \
})
-struct tcb *_tcb_ctor(struct pthread *, int);
-void _tcb_dtor(struct tcb *tcb);
-
static __inline void
_tcb_set(struct tcb *tcb)
{
Index: head/lib/libthr/arch/arm/Makefile.inc
===================================================================
--- head/lib/libthr/arch/arm/Makefile.inc
+++ head/lib/libthr/arch/arm/Makefile.inc
@@ -1,3 +0,0 @@
-# $FreeBSD$
-
-SRCS+= pthread_md.c
Index: head/lib/libthr/arch/arm/arm/pthread_md.c
===================================================================
--- head/lib/libthr/arch/arm/arm/pthread_md.c
+++ head/lib/libthr/arch/arm/arm/pthread_md.c
@@ -1,53 +0,0 @@
-/*-
- * Copyright (C) 2005 David Xu <davidxu@freebsd.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Neither the name of the author nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-
-#include <stdlib.h>
-#include <sys/types.h>
-#include <rtld_tls.h>
-
-#include "pthread_md.h"
-
-struct tcb *
-_tcb_ctor(struct pthread *thread, int initial)
-{
- struct tcb *tcb;
-
- tcb = _rtld_allocate_tls((initial) ? _tcb_get() : NULL,
- sizeof(struct tcb), 16);
- if (tcb)
- tcb->tcb_thread = thread;
-
- return (tcb);
-}
-
-void
-_tcb_dtor(struct tcb *tcb)
-{
-
- _rtld_free_tls(tcb, sizeof(struct tcb), 16);
-}
Index: head/lib/libthr/arch/arm/include/pthread_md.h
===================================================================
--- head/lib/libthr/arch/arm/include/pthread_md.h
+++ head/lib/libthr/arch/arm/include/pthread_md.h
@@ -47,12 +47,6 @@
struct pthread *tcb_thread; /* our hook */
};
-/*
- * The tcb constructors.
- */
-struct tcb *_tcb_ctor(struct pthread *, int);
-void _tcb_dtor(struct tcb *);
-
/* Called from the thread to set its private data. */
static __inline void
_tcb_set(struct tcb *tcb)
Index: head/lib/libthr/arch/i386/Makefile.inc
===================================================================
--- head/lib/libthr/arch/i386/Makefile.inc
+++ head/lib/libthr/arch/i386/Makefile.inc
@@ -1,3 +1,3 @@
# $FreeBSD$
-SRCS+= pthread_md.c _umtx_op_err.S
+SRCS+= _umtx_op_err.S
Index: head/lib/libthr/arch/i386/i386/pthread_md.c
===================================================================
--- head/lib/libthr/arch/i386/i386/pthread_md.c
+++ head/lib/libthr/arch/i386/i386/pthread_md.c
@@ -1,57 +0,0 @@
-/*-
- * Copyright (C) 2003 David Xu <davidxu@freebsd.org>
- * Copyright (c) 2001,2003 Daniel Eischen <deischen@freebsd.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Neither the name of the author nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-
-#include <sys/types.h>
-#include <machine/segments.h>
-#include <machine/sysarch.h>
-#include <string.h>
-#include <rtld_tls.h>
-
-#include "pthread_md.h"
-
-struct tcb *
-_tcb_ctor(struct pthread *thread, int initial)
-{
- struct tcb *tcb;
-
- if (initial)
- __asm __volatile("movl %%gs:0, %0" : "=r" (tcb));
- else
- tcb = _rtld_allocate_tls(NULL, sizeof(struct tcb), 16);
- if (tcb)
- tcb->tcb_thread = thread;
- return (tcb);
-}
-
-void
-_tcb_dtor(struct tcb *tcb)
-{
-
- _rtld_free_tls(tcb, sizeof(struct tcb), 16);
-}
Index: head/lib/libthr/arch/i386/include/pthread_md.h
===================================================================
--- head/lib/libthr/arch/i386/include/pthread_md.h
+++ head/lib/libthr/arch/i386/include/pthread_md.h
@@ -76,12 +76,6 @@
__result; \
})
-/*
- * The constructors.
- */
-struct tcb *_tcb_ctor(struct pthread *, int);
-void _tcb_dtor(struct tcb *tcb);
-
/* Called from the thread to set its private data. */
static __inline void
_tcb_set(struct tcb *tcb)
Index: head/lib/libthr/arch/mips/Makefile.inc
===================================================================
--- head/lib/libthr/arch/mips/Makefile.inc
+++ head/lib/libthr/arch/mips/Makefile.inc
@@ -1,3 +0,0 @@
-# $FreeBSD$
-
-SRCS+= pthread_md.c
Index: head/lib/libthr/arch/mips/include/pthread_md.h
===================================================================
--- head/lib/libthr/arch/mips/include/pthread_md.h
+++ head/lib/libthr/arch/mips/include/pthread_md.h
@@ -50,12 +50,6 @@
struct pthread *tcb_thread;
};
-/*
- * The tcb constructors.
- */
-struct tcb *_tcb_ctor(struct pthread *, int);
-void _tcb_dtor(struct tcb *);
-
/* Called from the thread to set its private data. */
static __inline void
_tcb_set(struct tcb *tcb)
Index: head/lib/libthr/arch/mips/mips/pthread_md.c
===================================================================
--- head/lib/libthr/arch/mips/mips/pthread_md.c
+++ head/lib/libthr/arch/mips/mips/pthread_md.c
@@ -1,59 +0,0 @@
-/*-
- * Copyright (C) 2005 David Xu <davidxu@freebsd.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Neither the name of the author nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * from: src/lib/libthr/arch/arm/arm/pthread_md.c,v 1.2 2005/10/29 13:40:31 davidxu
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <stdlib.h>
-#include <sys/types.h>
-#include <rtld_tls.h>
-#include <strings.h>
-
-#include <machine/sysarch.h>
-
-#include "pthread_md.h"
-
-struct tcb *
-_tcb_ctor(struct pthread *thread, int initial)
-{
- struct tcb *tcb;
-
- tcb = _rtld_allocate_tls((initial) ? _tcb_get() : NULL,
- sizeof(struct tcb), 16);
- if (tcb)
- tcb->tcb_thread = thread;
-
- return (tcb);
-}
-
-void
-_tcb_dtor(struct tcb *tcb)
-{
-
- _rtld_free_tls(tcb, sizeof(struct tcb), 16);
-}
Index: head/lib/libthr/arch/powerpc/Makefile.inc
===================================================================
--- head/lib/libthr/arch/powerpc/Makefile.inc
+++ head/lib/libthr/arch/powerpc/Makefile.inc
@@ -1,3 +0,0 @@
-# $FreeBSD$
-
-SRCS+= pthread_md.c
Index: head/lib/libthr/arch/powerpc/include/pthread_md.h
===================================================================
--- head/lib/libthr/arch/powerpc/include/pthread_md.h
+++ head/lib/libthr/arch/powerpc/include/pthread_md.h
@@ -55,9 +55,6 @@
struct pthread *tcb_thread;
};
-struct tcb *_tcb_ctor(struct pthread *, int);
-void _tcb_dtor(struct tcb *);
-
static __inline void
_tcb_set(struct tcb *tcb)
{
Index: head/lib/libthr/arch/powerpc/powerpc/pthread_md.c
===================================================================
--- head/lib/libthr/arch/powerpc/powerpc/pthread_md.c
+++ head/lib/libthr/arch/powerpc/powerpc/pthread_md.c
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2003 Daniel Eischen <deischen@freebsd.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Neither the name of the author nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-
-#include <sys/types.h>
-#include <rtld_tls.h>
-
-#include "pthread_md.h"
-
-/*
- * The constructors.
- */
-struct tcb *
-_tcb_ctor(struct pthread *thread, int initial)
-{
- struct tcb *tcb;
-
- tcb = _rtld_allocate_tls((initial) ? _tcb_get() : NULL,
- sizeof(struct tcb), 1);
- if (tcb)
- tcb->tcb_thread = thread;
- return (tcb);
-
-}
-
-void
-_tcb_dtor(struct tcb *tcb)
-{
- _rtld_free_tls(tcb, sizeof(struct tcb), 1);
-}
Index: head/lib/libthr/arch/sparc64/Makefile.inc
===================================================================
--- head/lib/libthr/arch/sparc64/Makefile.inc
+++ head/lib/libthr/arch/sparc64/Makefile.inc
@@ -1,3 +1,3 @@
# $FreeBSD$
-SRCS+= _umtx_op_err.S pthread_md.c
+SRCS+= _umtx_op_err.S
Index: head/lib/libthr/arch/sparc64/include/pthread_md.h
===================================================================
--- head/lib/libthr/arch/sparc64/include/pthread_md.h
+++ head/lib/libthr/arch/sparc64/include/pthread_md.h
@@ -50,12 +50,6 @@
void *tcb_spare[1];
};
-/*
- * The tcb constructors.
- */
-struct tcb *_tcb_ctor(struct pthread *, int);
-void _tcb_dtor(struct tcb *);
-
/* Called from the thread to set its private data. */
static __inline void
_tcb_set(struct tcb *tcb)
Index: head/lib/libthr/arch/sparc64/sparc64/pthread_md.c
===================================================================
--- head/lib/libthr/arch/sparc64/sparc64/pthread_md.c
+++ head/lib/libthr/arch/sparc64/sparc64/pthread_md.c
@@ -1,56 +0,0 @@
-/*-
- * Copyright (C) 2003 Jake Burkholder <jake@freebsd.org>
- * Copyright (C) 2003 David Xu <davidxu@freebsd.org>
- * Copyright (c) 2001,2003 Daniel Eischen <deischen@freebsd.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Neither the name of the author nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <rtld_tls.h>
-
-#include "pthread_md.h"
-
-struct tcb *
-_tcb_ctor(struct pthread *thread, int initial)
-{
- struct tcb *tcb;
-
- if (initial)
- tcb = _tcb_get();
- else
- tcb = _rtld_allocate_tls(NULL, sizeof(struct tcb), 16);
- if (tcb)
- tcb->tcb_thread = thread;
- return (tcb);
-}
-
-void
-_tcb_dtor(struct tcb *tcb)
-{
-
- _rtld_free_tls(tcb, sizeof(struct tcb), 16);
-}
Index: head/lib/libthr/thread/Makefile.inc
===================================================================
--- head/lib/libthr/thread/Makefile.inc
+++ head/lib/libthr/thread/Makefile.inc
@@ -14,6 +14,7 @@
thr_cond.c \
thr_condattr.c \
thr_create.c \
+ thr_ctrdtr.c \
thr_detach.c \
thr_equal.c \
thr_event.c \
Index: head/lib/libthr/thread/thr_ctrdtr.c
===================================================================
--- head/lib/libthr/thread/thr_ctrdtr.c
+++ head/lib/libthr/thread/thr_ctrdtr.c
@@ -0,0 +1,56 @@
+/*-
+ * Copyright (C) 2003 Jake Burkholder <jake@freebsd.org>
+ * Copyright (C) 2003 David Xu <davidxu@freebsd.org>
+ * Copyright (c) 2001,2003 Daniel Eischen <deischen@freebsd.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Neither the name of the author nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/types.h>
+#include <rtld_tls.h>
+
+#include "thr_private.h"
+
+struct tcb *
+_tcb_ctor(struct pthread *thread, int initial)
+{
+ struct tcb *tcb;
+
+ if (initial)
+ tcb = _tcb_get();
+ else
+ tcb = _rtld_allocate_tls(NULL, sizeof(struct tcb), 16);
+ if (tcb)
+ tcb->tcb_thread = thread;
+ return (tcb);
+}
+
+void
+_tcb_dtor(struct tcb *tcb)
+{
+
+ _rtld_free_tls(tcb, sizeof(struct tcb), 16);
+}
Index: head/lib/libthr/thread/thr_private.h
===================================================================
--- head/lib/libthr/thread/thr_private.h
+++ head/lib/libthr/thread/thr_private.h
@@ -928,6 +928,9 @@
int __thr_sigwaitinfo(const sigset_t *set, siginfo_t *info);
int __thr_swapcontext(ucontext_t *oucp, const ucontext_t *ucp);
+struct tcb *_tcb_ctor(struct pthread *, int);
+void _tcb_dtor(struct tcb *);
+
__END_DECLS
#endif /* !_THR_PRIVATE_H */

File Metadata

Mime Type
text/plain
Expires
Fri, Sep 18, 3:23 PM (16 h, 46 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
39153947
Default Alt Text
D1556.id.diff (20 KB)

Event Timeline