diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-03-10 21:31:55 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-03-10 21:31:55 +0000 |
commit | 873010c8a4cfc702132d2a7363a23b043c8eda46 (patch) | |
tree | ede61e24f0cac112ad10ba0972f604ca5a3aa1ea /nptl | |
parent | 19afbd2cfde76cce6c4ff3a377fad6eb95fdbcff (diff) | |
download | glibc-873010c8a4cfc702132d2a7363a23b043c8eda46.tar glibc-873010c8a4cfc702132d2a7363a23b043c8eda46.tar.gz glibc-873010c8a4cfc702132d2a7363a23b043c8eda46.tar.bz2 glibc-873010c8a4cfc702132d2a7363a23b043c8eda46.zip |
Not needed at all.
Diffstat (limited to 'nptl')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/i386/lowlevelsem.h | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/lowlevelsem.h b/nptl/sysdeps/unix/sysv/linux/i386/lowlevelsem.h deleted file mode 100644 index a273c33cb2..0000000000 --- a/nptl/sysdeps/unix/sysv/linux/i386/lowlevelsem.h +++ /dev/null @@ -1,116 +0,0 @@ -/* Copyright (C) 2002, 2003 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. - - 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 _LOWLEVELSEM_H -#define _LOWLEVELSEM_H 1 - -#include <dl-sysdep.h> -#include <tls.h> - -#ifndef LOCK -# ifdef UP -# define LOCK /* nothing */ -# else -# define LOCK "lock;" -# endif -#endif - -#define SYS_futex 240 - - -#ifdef I386_USE_SYSENTER -# ifdef SHARED -# define LLL_SEM_ENTER_KERNEL(arg) "call *%%gs:%P" #arg "\n\t" -# else -# define LLL_SEM_ENTER_KERNEL(arg) "call *_dl_sysinfo\n\t" -# endif -#else -# define LLL_SEM_ENTER_KERNEL(arg) "int $0x80\n\t" -#endif - -#define lll_sem_wait(sem) \ - ({ int result, ignore1, ignore2; \ - __asm __volatile ("1:\taddl $1,8(%4)\n\t" \ - LOCK "addl $1,(%4)\n\t" \ - "jng 2f\n" \ - ".subsection 1\n" \ - "2:\tmovl %4, %%eax\n\t" \ - "call __lll_unlock_wake\n\t" \ - "jmp 3f\n\t" \ - ".previous\n" \ - "3:\tpushl %%ebx\n\t" \ - "movl %%esi, %%ecx\n\t" \ - "movl %%esi, %%edx\n\t" \ - "leal 4(%4), %%ebx\n\t" \ - "movl %5, %%eax\n\t" \ - LLL_SEM_ENTER_KERNEL (9) \ - "movl %%eax, %%edx\n\t" \ - "popl %%ebx\n\t" \ - "orl $-1, %%eax\n\t" \ - LOCK "xaddl %%eax, (%4)\n\t" \ - "jne 4f\n\t" \ - ".subsection 1\n" \ - "4:\tmovl %4, %%ecx\n\t" \ - "call __lll_lock_wait\n\t" \ - "jmp 5f\n\t" \ - ".previous\n" \ - "5:\tsubl $1,8(%4)\n\t" \ - "xorl %0, %0\n\t" \ - "cmpl $0, 4(%4)\n\t" \ - "jne,pt 6f\n\t" \ - "cmpl %7, %%edx\n\t" \ - "jne,pn 1b\n\t" \ - "addl %8, %0\n\t" /* Shorter than movl %7, %0 */ \ - "6:" \ - : "=a" (result), "=c" (ignore1), "=d" (ignore2), \ - "=m" (*sem) \ - : "D" (sem), "i" (SYS_futex), "S" (0), \ - "i" (-EINTR), "i" (EINTR), \ - "i" (offsetof (tcbhead_t, sysinfo))); \ - result; }) - - -extern int __lll_sem_timedwait (struct sem *sem, const struct timespec *ts) - __attribute__ ((regparm (2))) attribute_hidden; -#define lll_sem_timedwait(sem, timeout) \ - __lll_sem_timedwait (sem, timeout) - - -#define lll_sem_post(sem) \ - (void) ({ int ignore1, ignore2, ignore3; \ - __asm __volatile ("movl $1, %%eax\n\t" \ - LOCK \ - "xaddl %%eax, (%4)\n\t" \ - "pushl %%esi\n\t" \ - "pushl %%ebx\n\t" \ - "movl %4, %%ebx\n\t" \ - "leal 1(%%eax), %%edx\n\t" \ - "xorl %%esi, %%esi\n\t" \ - "movl %5, %%eax\n\t" \ - /* movl $FUTEX_WAKE, %ecx */ \ - "movl $1, %%ecx\n\t" \ - LLL_SEM_ENTER_KERNEL (6) \ - "popl %%ebx\n\t" \ - "popl %%esi" \ - : "=&a" (ignore1), "=c" (ignore2), \ - "=m" (*sem), "=d" (ignore3) \ - : "r" (sem), "i" (SYS_futex), \ - "i" (offsetof (tcbhead_t, sysinfo))); }) - -#endif /* lowlevelsem.h */ |