From a0bca9895bca67591127680860077b2658830e96 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 7 Aug 2012 22:55:36 +0200 Subject: Remove L4 port. * Makefile.am: Remove file. * headers.m4: Likewise. * sysdeps/l4/bits/pthread-np.h: Likewise. * sysdeps/l4/hurd/bits/pthread-np.h: Likewise. * sysdeps/l4/hurd/ia32/pt-machdep.c: Likewise. * sysdeps/l4/hurd/ia32/pt-setup.c: Likewise. * sysdeps/l4/hurd/ia32/signal-dispatch-lowlevel.c: Likewise. * sysdeps/l4/hurd/powerpc/pt-machdep.c: Likewise. * sysdeps/l4/hurd/powerpc/pt-setup.c: Likewise. * sysdeps/l4/hurd/pt-block.c: Likewise. * sysdeps/l4/hurd/pt-kill.c: Likewise. * sysdeps/l4/hurd/pt-setactivity-np.c: Likewise. * sysdeps/l4/hurd/pt-sigstate-destroy.c: Likewise. * sysdeps/l4/hurd/pt-sigstate-init.c: Likewise. * sysdeps/l4/hurd/pt-sigstate.c: Likewise. * sysdeps/l4/hurd/pt-startup.c: Likewise. * sysdeps/l4/hurd/pt-sysdep.c: Likewise. * sysdeps/l4/hurd/pt-sysdep.h: Likewise. * sysdeps/l4/hurd/pt-thread-alloc.c: Likewise. * sysdeps/l4/hurd/pt-thread-halt.c: Likewise. * sysdeps/l4/hurd/pt-thread-start.c: Likewise. * sysdeps/l4/hurd/pt-wakeup.c: Likewise. * sysdeps/l4/hurd/sig-sysdep.h: Likewise. * sysdeps/l4/hurd/sigprocmask.c: Likewise. * sysdeps/l4/pt-block.c: Likewise. * sysdeps/l4/pt-docancel.c: Likewise. * sysdeps/l4/pt-pool-np.c: Likewise. * sysdeps/l4/pt-spin.c: Likewise. * sysdeps/l4/pt-stack-alloc.c: Likewise. * sysdeps/l4/pt-thread-alloc.c: Likewise. * sysdeps/l4/pt-thread-dealloc.c: Likewise. * sysdeps/l4/pt-thread-halt.c: Likewise. * sysdeps/l4/pt-thread-start.c: Likewise. * sysdeps/l4/pt-timedblock.c: Likewise. * sysdeps/l4/pt-wakeup.c: Likewise. * TODO: Update. * signal/README: Likewise. --- TODO | 33 --------------------------------- 1 file changed, 33 deletions(-) (limited to 'TODO') diff --git a/TODO b/TODO index d7e54da..8b087b1 100644 --- a/TODO +++ b/TODO @@ -142,36 +142,3 @@ ** TLS Support for TLS is only implemented for Mach/Hurd (x86). - -* L4 Specific Issues -** Stack -*** Size - The stack size is defined to be a single page in - sysdeps/l4/hurd/pt-sysdep.h. Once we are able to setup regions, - this can be expanded to two megs as suggested by the Mach version. - Until then, however, we need to allocate too much physical memory. -*** Deallocation - __thread_stack_dealloc currently does not deallocate the stack. - For a proper implementation, we need a working memory manager. - -** Scheduling -*** yield - [L4] We cannot use yield for spin locks as L4 only yields to threads of - priority which are greater than or equal to the yielding thread. - If there are threads of lower priority, they are not considered; - the yielding thread is just placed back on the processor. This - introduces priority inversion quite quickly. L4 will not add a - priority suppression function call. As such, we need to do - an ipc with a small time out and then use exponential back off to - do the actual waiting. This sucks. - -** Stub code - [L4] We include in pt-start.c, however, we need a library - so we do not have to play with the corba stuff. - -** Root server and Task server -*** Getting the tids. - pt-start.c has a wonderfully evil hack that will never work well. - -** Paging - We set the pager to the root server. Evil. Fix this in pt-start.c. -- cgit v1.2.3 From a5387f6a45d6b3f2b381d861f5c288b79da6204f Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Sat, 4 Aug 2012 12:19:17 +0200 Subject: Remove PowerPC port. * sysdeps/powerpc/bits/machine-lock.h: Remove file. * sysdeps/powerpc/bits/memory.h: Likewise. * sysdeps/powerpc/bits/spin-lock.h: Likewise. * sysdeps/powerpc/machine-sp.h: Likewise. * sysdeps/powerpc/pt-machdep.h: Likewise. * TODO: Update. --- TODO | 3 - sysdeps/powerpc/bits/machine-lock.h | 78 -------------------------- sysdeps/powerpc/bits/memory.h | 36 ------------ sysdeps/powerpc/bits/spin-lock.h | 108 ------------------------------------ sysdeps/powerpc/machine-sp.h | 31 ----------- sysdeps/powerpc/pt-machdep.h | 29 ---------- 6 files changed, 285 deletions(-) delete mode 100644 sysdeps/powerpc/bits/machine-lock.h delete mode 100644 sysdeps/powerpc/bits/memory.h delete mode 100644 sysdeps/powerpc/bits/spin-lock.h delete mode 100644 sysdeps/powerpc/machine-sp.h delete mode 100644 sysdeps/powerpc/pt-machdep.h (limited to 'TODO') diff --git a/TODO b/TODO index 8b087b1..848992d 100644 --- a/TODO +++ b/TODO @@ -139,6 +139,3 @@ ** weak aliases Use them consistently and correctly and start by reading http://sources.redhat.com/ml/libc-alpha/2002-08/msg00278.html. - -** TLS - Support for TLS is only implemented for Mach/Hurd (x86). diff --git a/sysdeps/powerpc/bits/machine-lock.h b/sysdeps/powerpc/bits/machine-lock.h deleted file mode 100644 index cba6b0a..0000000 --- a/sysdeps/powerpc/bits/machine-lock.h +++ /dev/null @@ -1,78 +0,0 @@ -/* Machine-specific definition for spin locks. PowerPC version. - Copyright (C) 1994,97,2002 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#ifndef _MACHINE_LOCK_H -#define _MACHINE_LOCK_H - -/* The type of a spin lock variable. */ - -typedef __volatile long int __spin_lock_t; - -/* Value to initialize `__spin_lock_t' variables to. */ - -#define __SPIN_LOCK_INITIALIZER 0L - - -#ifndef _EXTERN_INLINE -#define _EXTERN_INLINE extern __inline -#endif - -/* Unlock LOCK. */ - -_EXTERN_INLINE void -__spin_unlock (__spin_lock_t *__lock) -{ - long int __locked; - __asm__ __volatile__ ("\ -0: lwarx %0,0,%1\n\ - stwcx. %2,0,%1\n\ - bne- 0b\n\ -" : "=&r" (__locked) : "r" (__lock), "r" (0) : "cr0"); -} - -/* Try to lock LOCK; return nonzero if we locked it, zero if another has. */ - -_EXTERN_INLINE int -__spin_try_lock (register __spin_lock_t *__lock) -{ - long int __rtn; - __asm__ __volatile__ ("\ -0: lwarx %0,0,%1\n\ - stwcx. %2,0,%1\n\ - bne- 0b\n\ -" : "=&r" (__rtn) : "r" (__lock), "r" (1) : "cr0"); - return !__rtn; -} - -/* Return nonzero if LOCK is locked. */ - -_EXTERN_INLINE int -__spin_lock_locked (__spin_lock_t *__lock) -{ - long int __rtn; - __asm__ __volatile__ ("\ -0: lwarx %0,0,%1\n\ - stwcx. %0,0,%1\n\ - bne- 0b\n\ -" : "=&r" (__rtn) : "r" (__lock) : "cr0"); - return __rtn; -} - - -#endif /* machine-lock.h */ diff --git a/sysdeps/powerpc/bits/memory.h b/sysdeps/powerpc/bits/memory.h deleted file mode 100644 index 96624c3..0000000 --- a/sysdeps/powerpc/bits/memory.h +++ /dev/null @@ -1,36 +0,0 @@ -/* Memory barrier operations. PowerPC version. - Copyright (C) 2003 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library 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. - - The GNU C Library 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. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#ifndef _BITS_MEMORY_H -#define _BITS_MEMORY_H 1 - -/* Prevent read and write reordering across this function. */ -inline void -__memory_barrier (void) -{ - asm ("sync" ::: "memory"); -} - -/* Prevent read reordering across this function. */ -#define __memory_read_barrier __memory_barrier - -/* Prevent write reordering across this function. */ -#define __memory_write_barrier __memory_barrier - -#endif diff --git a/sysdeps/powerpc/bits/spin-lock.h b/sysdeps/powerpc/bits/spin-lock.h deleted file mode 100644 index 1dc2571..0000000 --- a/sysdeps/powerpc/bits/spin-lock.h +++ /dev/null @@ -1,108 +0,0 @@ -/* Machine-specific definitions for spin locks. PowerPC version. - Copyright (C) 2003 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library 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. - - The GNU C Library 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. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* - * Never include this file directly; use or instead. - */ - -#ifndef _BITS_SPIN_LOCK_H -#define _BITS_SPIN_LOCK_H 1 - -#include - -__BEGIN_DECLS - -/* The type of a spin lock object. */ -typedef __volatile int __pthread_spinlock_t; - -/* Initializer for a spin lock object. */ -# define __SPIN_LOCK_INITIALIZER ((__pthread_spinlock_t) 0) - -#if defined __USE_EXTERN_INLINES || defined _FORCE_INLINES - -# ifndef __EBUSY -# include -# define __EBUSY EBUSY -# endif - -# ifndef __PT_SPIN_INLINE -# define __PT_SPIN_INLINE extern __inline -# endif - -__PT_SPIN_INLINE int __pthread_spin_destroy (__pthread_spinlock_t *__lock); - -__PT_SPIN_INLINE int -__pthread_spin_destroy (__pthread_spinlock_t *__lock) -{ - return 0; -} - -__PT_SPIN_INLINE int __pthread_spin_init (__pthread_spinlock_t *__lock, - int __pshared); - -__PT_SPIN_INLINE int -__pthread_spin_init (__pthread_spinlock_t *__lock, int __pshared) -{ - *__lock = __SPIN_LOCK_INITIALIZER; - return 0; -} - -__PT_SPIN_INLINE int __pthread_spin_trylock (__pthread_spinlock_t *__lock); - -__PT_SPIN_INLINE int -__pthread_spin_trylock (__pthread_spinlock_t *__lock) -{ - long int __rtn; - __asm__ __volatile__ ("\ -0: lwarx %0,0,%1\n\ - stwcx. %2,0,%1\n\ - bne- 0b\n\ -" : "=&r" (__rtn) : "r" (__lock), "r" (1) : "cr0"); - return __rtn ? __EBUSY : 0; -} - -extern inline int __pthread_spin_lock (__pthread_spinlock_t *__lock); -extern int _pthread_spin_lock (__pthread_spinlock_t *__lock); - -extern inline int -__pthread_spin_lock (__pthread_spinlock_t *__lock) -{ - if (__pthread_spin_trylock (__lock)) - return _pthread_spin_lock (__lock); - return 0; -} - -__PT_SPIN_INLINE int __pthread_spin_unlock (__pthread_spinlock_t *__lock); - -__PT_SPIN_INLINE int -__pthread_spin_unlock (__pthread_spinlock_t *__lock) -{ - long int __locked; - __asm__ __volatile__ ("\ -0: lwarx %0,0,%1\n\ - stwcx. %2,0,%1\n\ - bne- 0b\n\ -" : "=&r" (__locked) : "r" (__lock), "r" (0) : "cr0"); -} - -#endif /* Use extern inlines or force inlines. */ - -__END_DECLS - -#endif /* bits/spin-lock.h */ diff --git a/sysdeps/powerpc/machine-sp.h b/sysdeps/powerpc/machine-sp.h deleted file mode 100644 index aa787c5..0000000 --- a/sysdeps/powerpc/machine-sp.h +++ /dev/null @@ -1,31 +0,0 @@ -/* Machine-specific function to return the stack pointer. i386 version. - Copyright (C) 1994,97,2001 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#ifndef _MACHINE_SP_H -#define _MACHINE_SP_H - -/* Return the current stack pointer. */ - -#define __thread_stack_pointer() ({ \ - void *__sp__; \ - __asm__ ("mr %0, 1" : "=r" (__sp__)); \ - __sp__; \ -}) - -#endif /* machine-sp.h */ diff --git a/sysdeps/powerpc/pt-machdep.h b/sysdeps/powerpc/pt-machdep.h deleted file mode 100644 index 6d45636..0000000 --- a/sysdeps/powerpc/pt-machdep.h +++ /dev/null @@ -1,29 +0,0 @@ -/* Machine dependent pthreads internal defenitions. i386 version. - Copyright (C) 2000 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library 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. - - The GNU C Library 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. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#ifndef _PT_MACHDEP_H -#define _PT_MACHDEP_H 1 - -struct pthread_mcontext -{ - void *pc; - void *sp; -}; - -#endif /* pt-machdep.h */ -- cgit v1.2.3