[Midnightbsd-cvs] src [10639] trunk/lib/libthr/arch: add architectures

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Sat Jun 9 12:48:36 EDT 2018


Revision: 10639
          http://svnweb.midnightbsd.org/src/?rev=10639
Author:   laffer1
Date:     2018-06-09 12:48:35 -0400 (Sat, 09 Jun 2018)
Log Message:
-----------
add architectures

Added Paths:
-----------
    trunk/lib/libthr/arch/arm/
    trunk/lib/libthr/arch/arm/Makefile.inc
    trunk/lib/libthr/arch/arm/arm/
    trunk/lib/libthr/arch/arm/arm/pthread_md.c
    trunk/lib/libthr/arch/arm/include/
    trunk/lib/libthr/arch/arm/include/pthread_md.h
    trunk/lib/libthr/arch/ia64/
    trunk/lib/libthr/arch/ia64/Makefile.inc
    trunk/lib/libthr/arch/ia64/ia64/
    trunk/lib/libthr/arch/ia64/ia64/_umtx_op_err.S
    trunk/lib/libthr/arch/ia64/ia64/pthread_md.c
    trunk/lib/libthr/arch/ia64/include/
    trunk/lib/libthr/arch/ia64/include/pthread_md.h
    trunk/lib/libthr/arch/mips/
    trunk/lib/libthr/arch/mips/Makefile.inc
    trunk/lib/libthr/arch/mips/include/
    trunk/lib/libthr/arch/mips/include/pthread_md.h
    trunk/lib/libthr/arch/mips/mips/
    trunk/lib/libthr/arch/mips/mips/pthread_md.c
    trunk/lib/libthr/arch/powerpc/
    trunk/lib/libthr/arch/powerpc/Makefile.inc
    trunk/lib/libthr/arch/powerpc/include/
    trunk/lib/libthr/arch/powerpc/include/pthread_md.h
    trunk/lib/libthr/arch/powerpc/powerpc/
    trunk/lib/libthr/arch/powerpc/powerpc/pthread_md.c
    trunk/lib/libthr/arch/sparc64/
    trunk/lib/libthr/arch/sparc64/Makefile.inc
    trunk/lib/libthr/arch/sparc64/include/
    trunk/lib/libthr/arch/sparc64/include/pthread_md.h
    trunk/lib/libthr/arch/sparc64/sparc64/
    trunk/lib/libthr/arch/sparc64/sparc64/_umtx_op_err.S
    trunk/lib/libthr/arch/sparc64/sparc64/pthread_md.c

Added: trunk/lib/libthr/arch/arm/Makefile.inc
===================================================================
--- trunk/lib/libthr/arch/arm/Makefile.inc	                        (rev 0)
+++ trunk/lib/libthr/arch/arm/Makefile.inc	2018-06-09 16:48:35 UTC (rev 10639)
@@ -0,0 +1,4 @@
+# $MidnightBSD$
+# $FreeBSD: stable/10/lib/libthr/arch/arm/Makefile.inc 212516 2010-09-13 01:43:10Z imp $
+
+SRCS+=	pthread_md.c


Property changes on: trunk/lib/libthr/arch/arm/Makefile.inc
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/lib/libthr/arch/arm/arm/pthread_md.c
===================================================================
--- trunk/lib/libthr/arch/arm/arm/pthread_md.c	                        (rev 0)
+++ trunk/lib/libthr/arch/arm/arm/pthread_md.c	2018-06-09 16:48:35 UTC (rev 10639)
@@ -0,0 +1,54 @@
+/* $MidnightBSD$ */
+/*-
+ * Copyright (C) 2005 David Xu <davidxu at 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: stable/10/lib/libthr/arch/arm/arm/pthread_md.c 231619 2012-02-14 00:17:43Z gonzo $
+ */
+
+#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);
+}


Property changes on: trunk/lib/libthr/arch/arm/arm/pthread_md.c
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/lib/libthr/arch/arm/include/pthread_md.h
===================================================================
--- trunk/lib/libthr/arch/arm/include/pthread_md.h	                        (rev 0)
+++ trunk/lib/libthr/arch/arm/include/pthread_md.h	2018-06-09 16:48:35 UTC (rev 10639)
@@ -0,0 +1,95 @@
+/* $MidnightBSD$ */
+/*-
+ * Copyright (c) 2005 David Xu <davidxu at 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. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 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: stable/10/lib/libthr/arch/arm/include/pthread_md.h 239270 2012-08-15 03:08:29Z gonzo $
+ */
+
+/*
+ * Machine-dependent thread prototypes/definitions.
+ */
+#ifndef _PTHREAD_MD_H_
+#define	_PTHREAD_MD_H_
+
+#include <sys/types.h>
+#include <machine/sysarch.h>
+#include <stddef.h>
+
+#define	CPU_SPINWAIT
+#define	DTV_OFFSET		offsetof(struct tcb, tcb_dtv)
+
+/*
+ * Variant II tcb, first two members are required by rtld.
+ */
+struct tcb {
+	void			*tcb_dtv;	/* required by rtld */
+	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)
+{
+#ifdef ARM_TP_ADDRESS
+	*((struct tcb **)ARM_TP_ADDRESS) = tcb;	/* avoids a system call */
+#else
+	sysarch(ARM_SET_TP, tcb);
+#endif
+}
+
+/*
+ * Get the current tcb.
+ */
+static __inline struct tcb *
+_tcb_get(void)
+{
+#ifdef ARM_TP_ADDRESS
+	return (*((struct tcb **)ARM_TP_ADDRESS));
+#else
+	struct tcb *tcb;
+
+	__asm __volatile("mrc  p15, 0, %0, c13, c0, 3"		\
+	   		 : "=r" (tcb));
+	return (tcb);
+#endif
+}
+
+extern struct pthread *_thr_initial;
+
+static __inline struct pthread *
+_get_curthread(void)
+{
+	if (_thr_initial)
+		return (_tcb_get()->tcb_thread);
+	return (NULL);
+}
+
+#endif /* _PTHREAD_MD_H_ */


Property changes on: trunk/lib/libthr/arch/arm/include/pthread_md.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/lib/libthr/arch/ia64/Makefile.inc
===================================================================
--- trunk/lib/libthr/arch/ia64/Makefile.inc	                        (rev 0)
+++ trunk/lib/libthr/arch/ia64/Makefile.inc	2018-06-09 16:48:35 UTC (rev 10639)
@@ -0,0 +1,4 @@
+# $MidnightBSD$
+# $FreeBSD: stable/10/lib/libthr/arch/ia64/Makefile.inc 212516 2010-09-13 01:43:10Z imp $
+
+SRCS+= _umtx_op_err.S pthread_md.c


Property changes on: trunk/lib/libthr/arch/ia64/Makefile.inc
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/lib/libthr/arch/ia64/ia64/_umtx_op_err.S
===================================================================
--- trunk/lib/libthr/arch/ia64/ia64/_umtx_op_err.S	                        (rev 0)
+++ trunk/lib/libthr/arch/ia64/ia64/_umtx_op_err.S	2018-06-09 16:48:35 UTC (rev 10639)
@@ -0,0 +1,36 @@
+/* $MidnightBSD$ */
+/*-
+ * Copyright (c) 2009 Marcel Moolenaar
+ * 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. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 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 <machine/asm.h>
+__FBSDID("$FreeBSD: stable/10/lib/libthr/arch/ia64/ia64/_umtx_op_err.S 198450 2009-10-24 20:07:17Z marcel $");
+
+#include <sys/syscall.h>
+
+ENTRY(_umtx_op_err, 5)
+	CALLSYS_NOERROR(_umtx_op)
+	br.ret.sptk.few rp
+END(_umtx_op_err)


Property changes on: trunk/lib/libthr/arch/ia64/ia64/_umtx_op_err.S
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/lib/libthr/arch/ia64/ia64/pthread_md.c
===================================================================
--- trunk/lib/libthr/arch/ia64/ia64/pthread_md.c	                        (rev 0)
+++ trunk/lib/libthr/arch/ia64/ia64/pthread_md.c	2018-06-09 16:48:35 UTC (rev 10639)
@@ -0,0 +1,55 @@
+/* $MidnightBSD$ */
+/*
+ * Copyright (c) 2003 Daniel Eischen <deischen at freebsd.org>
+ * Copyright (c) 2005 David Xu <davidxu at 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: stable/10/lib/libthr/arch/ia64/ia64/pthread_md.c 161840 2006-09-01 21:01:11Z marcel $
+ */
+
+#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), 16);
+	if (tcb)
+		tcb->tcb_thread = thread;
+	return (tcb);
+}
+
+void
+_tcb_dtor(struct tcb *tcb)
+{
+	_rtld_free_tls(tcb, sizeof(struct tcb), 16);
+}


Property changes on: trunk/lib/libthr/arch/ia64/ia64/pthread_md.c
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/lib/libthr/arch/ia64/include/pthread_md.h
===================================================================
--- trunk/lib/libthr/arch/ia64/include/pthread_md.h	                        (rev 0)
+++ trunk/lib/libthr/arch/ia64/include/pthread_md.h	2018-06-09 16:48:35 UTC (rev 10639)
@@ -0,0 +1,83 @@
+/* $MidnightBSD$ */
+/*
+ * Copyright (c) 2003 Marcel Moolenaar
+ * 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. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 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: stable/10/lib/libthr/arch/ia64/include/pthread_md.h 198450 2009-10-24 20:07:17Z marcel $
+ */
+
+#ifndef _PTHREAD_MD_H_
+#define	_PTHREAD_MD_H_
+
+#include <stddef.h>
+
+#define	CPU_SPINWAIT
+
+#define	HAS__UMTX_OP_ERR	1
+
+#define	DTV_OFFSET		offsetof(struct tcb, tcb_dtv)
+
+/*
+ * Variant I tcb. The structure layout is fixed, don't blindly
+ * change it!
+ */
+struct tcb {
+	void			*tcb_dtv;
+	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)
+{
+	register struct tcb *tp __asm("%r13");
+
+	__asm __volatile("mov %0 = %1;;" : "=r"(tp) : "r"(tcb));
+}
+
+static __inline struct tcb *
+_tcb_get(void)
+{
+	register struct tcb *tp __asm("%r13");
+
+	return (tp);
+}
+
+extern struct pthread *_thr_initial;
+
+static __inline struct pthread *
+_get_curthread(void)
+{
+	if (_thr_initial)
+		return (_tcb_get()->tcb_thread);
+	return (NULL);
+}
+
+#endif /* _PTHREAD_MD_H_ */


Property changes on: trunk/lib/libthr/arch/ia64/include/pthread_md.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/lib/libthr/arch/mips/Makefile.inc
===================================================================
--- trunk/lib/libthr/arch/mips/Makefile.inc	                        (rev 0)
+++ trunk/lib/libthr/arch/mips/Makefile.inc	2018-06-09 16:48:35 UTC (rev 10639)
@@ -0,0 +1,4 @@
+# $MidnightBSD$
+# $FreeBSD: stable/10/lib/libthr/arch/mips/Makefile.inc 212516 2010-09-13 01:43:10Z imp $
+
+SRCS+=	pthread_md.c


Property changes on: trunk/lib/libthr/arch/mips/Makefile.inc
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/lib/libthr/arch/mips/include/pthread_md.h
===================================================================
--- trunk/lib/libthr/arch/mips/include/pthread_md.h	                        (rev 0)
+++ trunk/lib/libthr/arch/mips/include/pthread_md.h	2018-06-09 16:48:35 UTC (rev 10639)
@@ -0,0 +1,90 @@
+/* $MidnightBSD$ */
+/*-
+ * Copyright (c) 2005 David Xu <davidxu at 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. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 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.
+ *
+ * from: src/lib/libthr/arch/arm/include/pthread_md.h,v 1.3 2005/10/29 13:40:31 davidxu
+ * $FreeBSD: stable/10/lib/libthr/arch/mips/include/pthread_md.h 232579 2012-03-06 03:27:58Z gonzo $
+ */
+
+/*
+ * Machine-dependent thread prototypes/definitions.
+ */
+#ifndef _PTHREAD_MD_H_
+#define	_PTHREAD_MD_H_
+
+#include <sys/types.h>
+#include <machine/sysarch.h>
+#include <machine/tls.h>
+#include <stddef.h>
+
+#define	CPU_SPINWAIT
+#define	DTV_OFFSET		offsetof(struct tcb, tcb_dtv)
+
+/*
+ * Variant I tcb. The structure layout is fixed, don't blindly
+ * change it!
+ */
+struct tcb {
+	void			*tcb_dtv;
+	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)
+{
+
+	sysarch(MIPS_SET_TLS, tcb);
+}
+
+/*
+ * Get the current tcb.
+ */
+static __inline struct tcb *
+_tcb_get(void)
+{
+	struct tcb *tcb;
+
+	sysarch(MIPS_GET_TLS, &tcb);
+	return tcb;
+}
+
+extern struct pthread *_thr_initial;
+
+static __inline struct pthread *
+_get_curthread(void)
+{
+	if (_thr_initial)
+		return (_tcb_get()->tcb_thread);
+	return (NULL);
+}
+
+#endif /* _PTHREAD_MD_H_ */


Property changes on: trunk/lib/libthr/arch/mips/include/pthread_md.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/lib/libthr/arch/mips/mips/pthread_md.c
===================================================================
--- trunk/lib/libthr/arch/mips/mips/pthread_md.c	                        (rev 0)
+++ trunk/lib/libthr/arch/mips/mips/pthread_md.c	2018-06-09 16:48:35 UTC (rev 10639)
@@ -0,0 +1,60 @@
+/* $MidnightBSD$ */
+/*-
+ * Copyright (C) 2005 David Xu <davidxu at 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: stable/10/lib/libthr/arch/mips/mips/pthread_md.c 231350 2012-02-10 06:53:25Z gonzo $");
+
+#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);
+}


Property changes on: trunk/lib/libthr/arch/mips/mips/pthread_md.c
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/lib/libthr/arch/powerpc/Makefile.inc
===================================================================
--- trunk/lib/libthr/arch/powerpc/Makefile.inc	                        (rev 0)
+++ trunk/lib/libthr/arch/powerpc/Makefile.inc	2018-06-09 16:48:35 UTC (rev 10639)
@@ -0,0 +1,4 @@
+# $MidnightBSD$
+# $FreeBSD: stable/10/lib/libthr/arch/powerpc/Makefile.inc 212516 2010-09-13 01:43:10Z imp $
+
+SRCS+=	pthread_md.c


Property changes on: trunk/lib/libthr/arch/powerpc/Makefile.inc
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/lib/libthr/arch/powerpc/include/pthread_md.h
===================================================================
--- trunk/lib/libthr/arch/powerpc/include/pthread_md.h	                        (rev 0)
+++ trunk/lib/libthr/arch/powerpc/include/pthread_md.h	2018-06-09 16:48:35 UTC (rev 10639)
@@ -0,0 +1,97 @@
+/* $MidnightBSD$ */
+/*
+ * Copyright 2004 by Peter Grehan. 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. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not 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: stable/10/lib/libthr/arch/powerpc/include/pthread_md.h 211773 2010-08-24 20:50:08Z nwhitehorn $
+ */
+
+/*
+ * Machine-dependent thread prototypes/definitions.
+ */
+#ifndef _PTHREAD_MD_H_
+#define	_PTHREAD_MD_H_
+
+#include <stddef.h>
+#include <sys/types.h>
+
+#define	CPU_SPINWAIT
+
+#define	DTV_OFFSET		offsetof(struct tcb, tcb_dtv)
+#ifdef __powerpc64__
+#define	TP_OFFSET		0x7010
+#else
+#define	TP_OFFSET		0x7008
+#endif
+
+/*
+ * Variant I tcb. The structure layout is fixed, don't blindly
+ * change it.
+ * %r2 (32-bit) or %r13 (64-bit) points to end of the structure.
+ */
+struct tcb {
+	void			*tcb_dtv;
+	struct pthread		*tcb_thread;
+};
+
+struct tcb	*_tcb_ctor(struct pthread *, int);
+void		_tcb_dtor(struct tcb *);
+
+static __inline void
+_tcb_set(struct tcb *tcb)
+{
+#ifdef __powerpc64__
+	register uint8_t *_tp __asm__("%r13");
+#else
+	register uint8_t *_tp __asm__("%r2");
+#endif
+
+	__asm __volatile("mr %0,%1" : "=r"(_tp) :
+	    "r"((uint8_t *)tcb + TP_OFFSET));
+}
+
+static __inline struct tcb *
+_tcb_get(void)
+{
+#ifdef __powerpc64__
+	register uint8_t *_tp __asm__("%r13");
+#else
+	register uint8_t *_tp __asm__("%r2");
+#endif
+
+	return ((struct tcb *)(_tp - TP_OFFSET));
+}
+
+extern struct pthread *_thr_initial;
+
+static __inline struct pthread *
+_get_curthread(void)
+{
+	if (_thr_initial)
+		return (_tcb_get()->tcb_thread);
+	return (NULL);
+}
+
+#endif /* _PTHREAD_MD_H_ */


Property changes on: trunk/lib/libthr/arch/powerpc/include/pthread_md.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/lib/libthr/arch/powerpc/powerpc/pthread_md.c
===================================================================
--- trunk/lib/libthr/arch/powerpc/powerpc/pthread_md.c	                        (rev 0)
+++ trunk/lib/libthr/arch/powerpc/powerpc/pthread_md.c	2018-06-09 16:48:35 UTC (rev 10639)
@@ -0,0 +1,55 @@
+/* $MidnightBSD$ */
+/*
+ * Copyright (c) 2003 Daniel Eischen <deischen at 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: stable/10/lib/libthr/arch/powerpc/powerpc/pthread_md.c 161801 2006-09-01 06:15:00Z marcel $
+ */
+
+#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);
+}


Property changes on: trunk/lib/libthr/arch/powerpc/powerpc/pthread_md.c
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/lib/libthr/arch/sparc64/Makefile.inc
===================================================================
--- trunk/lib/libthr/arch/sparc64/Makefile.inc	                        (rev 0)
+++ trunk/lib/libthr/arch/sparc64/Makefile.inc	2018-06-09 16:48:35 UTC (rev 10639)
@@ -0,0 +1,4 @@
+# $MidnightBSD$
+# $FreeBSD: stable/10/lib/libthr/arch/sparc64/Makefile.inc 223228 2011-06-18 11:07:09Z marius $
+
+SRCS+=	_umtx_op_err.S pthread_md.c


Property changes on: trunk/lib/libthr/arch/sparc64/Makefile.inc
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/lib/libthr/arch/sparc64/include/pthread_md.h
===================================================================
--- trunk/lib/libthr/arch/sparc64/include/pthread_md.h	                        (rev 0)
+++ trunk/lib/libthr/arch/sparc64/include/pthread_md.h	2018-06-09 16:48:35 UTC (rev 10639)
@@ -0,0 +1,85 @@
+/* $MidnightBSD$ */
+/*-
+ * Copyright (c) 2003 Jake Burkholder <jake at freebsd.org>.
+ * Copyright (c) 2003 Marcel Moolenaar
+ * 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. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 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: stable/10/lib/libthr/arch/sparc64/include/pthread_md.h 223228 2011-06-18 11:07:09Z marius $
+ */
+
+/*
+ * Machine-dependent thread prototypes/definitions.
+ */
+#ifndef _PTHREAD_MD_H_
+#define	_PTHREAD_MD_H_
+
+#include <stddef.h>
+
+#define	CPU_SPINWAIT
+
+#define	DTV_OFFSET		offsetof(struct tcb, tcb_dtv)
+
+/*
+ * Variant II tcb, first two members are required by rtld.
+ * %g7 points to the structure.
+ */
+struct tcb {
+	struct tcb		*tcb_self;	/* required by rtld */
+	void			*tcb_dtv;	/* required by rtld */
+	struct pthread		*tcb_thread;	/* our hook */
+	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)
+{
+
+	__asm __volatile("mov %0, %%g7" : : "r" (tcb));
+}
+
+static __inline struct tcb *
+_tcb_get(void)
+{
+	register struct tcb *tp __asm("%g7");
+
+	return (tp);
+}
+
+static __inline struct pthread *
+_get_curthread(void)
+{
+
+	return (_tcb_get()->tcb_thread);
+}
+
+#define HAS__UMTX_OP_ERR	1
+
+#endif /* _PTHREAD_MD_H_ */


Property changes on: trunk/lib/libthr/arch/sparc64/include/pthread_md.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/lib/libthr/arch/sparc64/sparc64/_umtx_op_err.S
===================================================================
--- trunk/lib/libthr/arch/sparc64/sparc64/_umtx_op_err.S	                        (rev 0)
+++ trunk/lib/libthr/arch/sparc64/sparc64/_umtx_op_err.S	2018-06-09 16:48:35 UTC (rev 10639)
@@ -0,0 +1,39 @@
+/* $MidnightBSD$ */
+/*-
+ * Copyright (c) 2011 Marius Strobl <marius at 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. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * 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 <machine/asm.h>
+__FBSDID("$FreeBSD: stable/10/lib/libthr/arch/sparc64/sparc64/_umtx_op_err.S 223228 2011-06-18 11:07:09Z marius $");
+
+#include <sys/syscall.h>
+
+#include <machine/utrap.h>
+
+ENTRY(_umtx_op_err)
+	mov	SYS__umtx_op, %g1
+	retl
+	 ta	%xcc, ST_SYSCALL
+END(_umtx_op_err)


Property changes on: trunk/lib/libthr/arch/sparc64/sparc64/_umtx_op_err.S
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/lib/libthr/arch/sparc64/sparc64/pthread_md.c
===================================================================
--- trunk/lib/libthr/arch/sparc64/sparc64/pthread_md.c	                        (rev 0)
+++ trunk/lib/libthr/arch/sparc64/sparc64/pthread_md.c	2018-06-09 16:48:35 UTC (rev 10639)
@@ -0,0 +1,57 @@
+/* $MidnightBSD$ */
+/*-
+ * Copyright (C) 2003 Jake Burkholder <jake at freebsd.org>
+ * Copyright (C) 2003 David Xu <davidxu at freebsd.org>
+ * Copyright (c) 2001,2003 Daniel Eischen <deischen at 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: stable/10/lib/libthr/arch/sparc64/sparc64/pthread_md.c 223228 2011-06-18 11:07:09Z marius $");
+
+#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);
+}


Property changes on: trunk/lib/libthr/arch/sparc64/sparc64/pthread_md.c
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property


More information about the Midnightbsd-cvs mailing list