diff options
Diffstat (limited to 'libpthread/linuxthreads.old/sysdeps/avr32')
-rw-r--r-- | libpthread/linuxthreads.old/sysdeps/avr32/pt-machine.h | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/libpthread/linuxthreads.old/sysdeps/avr32/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/avr32/pt-machine.h deleted file mode 100644 index 5735d0ea2..000000000 --- a/libpthread/linuxthreads.old/sysdeps/avr32/pt-machine.h +++ /dev/null @@ -1,73 +0,0 @@ -/* Machine-dependent pthreads configuration and inline functions. - * - * Copyright (C) 2005-2007 Atmel Corporation - * - * This file is subject to the terms and conditions of the GNU Lesser General - * Public License. See the file "COPYING.LIB" in the main directory of this - * archive for more details. - */ -#ifndef _PT_MACHINE_H -#define _PT_MACHINE_H 1 - -#include <features.h> - -#ifndef PT_EI -# define PT_EI __extern_always_inline -#endif - -static __inline__ int -_test_and_set (int *p, int v) -{ - int result; - - __asm__ __volatile__( - "/* Inline test and set */\n" - " xchg %[old], %[mem], %[new]" - : [old] "=&r"(result) - : [mem] "r"(p), [new] "r"(v) - : "memory"); - - return result; -} - -extern long int testandset (int *spinlock); -extern int __compare_and_swap (long int *p, long int oldval, long int newval); - -/* Spinlock implementation; required. */ -PT_EI long int -testandset (int *spinlock) -{ - return _test_and_set(spinlock, 1); -} - - -/* Get some notion of the current stack. Need not be exactly the top - of the stack, just something somewhere in the current frame. */ -#define CURRENT_STACK_FRAME stack_pointer -register char * stack_pointer __asm__ ("sp"); - -/* Compare-and-swap for semaphores. */ - -#define HAS_COMPARE_AND_SWAP -PT_EI int -__compare_and_swap(long int *p, long int oldval, long int newval) -{ - long int result; - - __asm__ __volatile__( - "/* Inline compare and swap */\n" - "1: ssrf 5\n" - " ld.w %[result], %[mem]\n" - " eor %[result], %[old]\n" - " brne 2f\n" - " stcond %[mem], %[new]\n" - " brne 1b\n" - "2:" - : [result] "=&r"(result), [mem] "=m"(*p) - : "m"(*p), [new] "r"(newval), [old] "r"(oldval) - : "cc", "memory"); - - return result == 0; -} - -#endif /* pt-machine.h */ |