summaryrefslogtreecommitdiffstats
path: root/lib/libpthread/arch/arm/uthread_machdep.c
diff options
context:
space:
mode:
authorguenther <guenther@openbsd.org>2012-09-01 00:32:23 +0000
committerguenther <guenther@openbsd.org>2012-09-01 00:32:23 +0000
commitcde6fc201d55f174c423caf7560c454b29da406e (patch)
tree3c8a6d2fd05c6c6d8d34297c0d9d94bea91bbc5b /lib/libpthread/arch/arm/uthread_machdep.c
parentmodload needs to invoke ld with -nopie now on ELF platforms (diff)
downloadwireguard-openbsd-cde6fc201d55f174c423caf7560c454b29da406e.tar.xz
wireguard-openbsd-cde6fc201d55f174c423caf7560c454b29da406e.zip
So passes uthreads
Like autumn leaves on water don't fear the tedu@
Diffstat (limited to 'lib/libpthread/arch/arm/uthread_machdep.c')
-rw-r--r--lib/libpthread/arch/arm/uthread_machdep.c109
1 files changed, 0 insertions, 109 deletions
diff --git a/lib/libpthread/arch/arm/uthread_machdep.c b/lib/libpthread/arch/arm/uthread_machdep.c
deleted file mode 100644
index 469d5a43a16..00000000000
--- a/lib/libpthread/arch/arm/uthread_machdep.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/* $OpenBSD: uthread_machdep.c,v 1.6 2011/08/03 20:19:46 miod Exp $ */
-
-/*
- * Copyright (c) 2004 Dale Rahn. 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.
- */
-
-#include <pthread.h>
-#include "pthread_private.h"
-
-#define ALIGNBYTES 0x7
-
-/* Register save frame as it appears on the stack */
-struct frame {
- int r[12-4];
- int fp; /* r12 */
- int ip; /* r13 */
- int lr; /* r14 */
- int cpsr;
- double fpr[6]; /* sizeof(fp)+sizeof(fs) == 52 */
- int fs;
- /* The rest are only valid in the initial frame */
- int next_fp;
- int next_ip;
- int next_lr;
- int oldpc;
-};
-
-/*
- * Given a stack and an entry function, initialise a state
- * structure that can be later switched to.
- */
-void
-_thread_machdep_init(statep, base, len, entry)
- struct _machdep_state* statep;
- void *base;
- int len;
- void (*entry)(void);
-{
- struct frame *f;
- int cpsr;
-
- /* Locate the initial frame, aligned at the top of the stack */
- f = (struct frame *)(((int)base + len - sizeof *f) & ~ALIGNBYTES);
-
- f->fp = (int)&f->next_fp;
- f->ip = (int)0;
- f->lr = (int)entry;
- f->next_fp = 0; /* for gdb */
- f->next_lr = 0; /* for gdb */
-
- /* Initialise the new thread with all the state from this thread. */
-
- __asm__ volatile ("mrs %0, cpsr_all" : "=r" (cpsr));
- f->cpsr = cpsr;
-
- __asm__ volatile ("stmia %0, {r4-r12}":: "r"(&f->r[0]));
-
-#ifndef __SOFTFP__
- __asm__ volatile ("sfm f4, 4, [%0], #0":: "r"(&f->fpr[0]));
-
- __asm__ volatile ("rfs 0; stfd 0, %0" : "=m"(f->fs));
-#endif
-
- statep->frame = (int)f;
-}
-
-
-/*
- * No-op float saves.
- * (Floating point registers were saved in _thread_machdep_switch())
- */
-
-void
-_thread_machdep_save_float_state(statep)
- struct _machdep_state* statep;
-{
-#if !defined(__SOFTFP__) && !defined (__lint__)
-#error finish FP save
-#endif
-}
-
-void
-_thread_machdep_restore_float_state(statep)
- struct _machdep_state* statep;
-{
-#if !defined(__SOFTFP__) && !defined (__lint__)
-#error finish FP save
-#endif
-}