summaryrefslogtreecommitdiff
path: root/nptl/sysdeps/unix/sysv/linux/sparc/internaltypes.h
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2007-08-15 20:47:43 +0000
committerJakub Jelinek <jakub@redhat.com>2007-08-15 20:47:43 +0000
commite4720b0e594f4599d0256dfb713ddd4d2281ddbc (patch)
tree361c259b576fbbda177da526e1f248e0c6830749 /nptl/sysdeps/unix/sysv/linux/sparc/internaltypes.h
parentd13f4a43865051177cb6bb084f64dbc5b62c97c7 (diff)
* sysdeps/sparc/fpu/fraiseexcpt.c (__feraiseexcept): Fix raising cvs/fedora-glibc-20070815T2049
FE_UNDERFLOW on Niagara CPUs. * sysdeps/sparc/fpu/feholdexcpt.c (feholdexcept): Clear all exceptions. * sysdeps/unix/sysv/linux/sparc/internaltypes.h (sparc_new_sem, sparc_old_sem): New structs. * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c (__sem_wait_cleanup): New function. (__new_sem_wait): Use sparc_new_sem structure. Bump and afterwards decrease nwaiters. Register __sem_wait_cleanup as cleanup handler. Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to lll_futex_wait. (__old_sem_wait): New function. * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: Include nptl/sysdeps/unix/sysv/linux/sparc version. * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c (__new_sem_trywait): Use sparc_old_sem structure. * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c (sem_timedwait): Use sparc_new_sem structure. Bump and afterwards decrease nwaiters. Register __sem_wait_cleanup as cleanup handler. Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to lll_futex_timed_wait. * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c (__new_sem_post): Use sparc_new_sem structure. Only wake if nwaiters > 0. Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to lll_futex_wake. (__old_sem_post): New function. * sysdeps/unix/sysv/linux/sparc/sem_wait.c: New file. * sysdeps/unix/sysv/linux/sparc/sem_init.c: New file. * sysdeps/unix/sysv/linux/sparc/sem_timedwait.c: New file. * sysdeps/unix/sysv/linux/sparc/sem_post.c: New file. * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: Remove. * sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: Remove. 2007-08-15 Jakub Jelinek <jakub@redhat.com> * sysdeps/sparc/fpu/fraiseexcpt.c (__feraiseexcept): Fix raising FE_UNDERFLOW on Niagara CPUs. * sysdeps/sparc/fpu/feholdexcpt.c (feholdexcept): Clear all exceptions.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/sparc/internaltypes.h')
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sparc/internaltypes.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/internaltypes.h b/nptl/sysdeps/unix/sysv/linux/sparc/internaltypes.h
index 4d0ea51723..4f400a3fe3 100644
--- a/nptl/sysdeps/unix/sysv/linux/sparc/internaltypes.h
+++ b/nptl/sysdeps/unix/sysv/linux/sparc/internaltypes.h
@@ -15,4 +15,20 @@ union sparc_pthread_barrier
} s;
};
+struct sparc_new_sem
+{
+ unsigned int value;
+ unsigned char lock;
+ unsigned char private;
+ unsigned char pad[2];
+ unsigned long int nwaiters;
+};
+
+struct sparc_old_sem
+{
+ unsigned int value;
+ unsigned char lock;
+ unsigned char private;
+};
+
#endif