diff options
Diffstat (limited to 'gcc/ada/5iosinte.ads')
-rw-r--r-- | gcc/ada/5iosinte.ads | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/gcc/ada/5iosinte.ads b/gcc/ada/5iosinte.ads index ea5e6a9928f..e5bb265a46e 100644 --- a/gcc/ada/5iosinte.ads +++ b/gcc/ada/5iosinte.ads @@ -444,11 +444,8 @@ package System.OS_Interface is private - type sigset_t is array (0 .. 31) of unsigned_long; + type sigset_t is array (0 .. 127) of unsigned_char; pragma Convention (C, sigset_t); - for sigset_t'Size use 1024; - -- This is for GNU libc version 2 but should be backward compatible with - -- other libc where sigset_t is smaller. type pid_t is new int; @@ -477,7 +474,7 @@ private stackaddr : System.Address; stacksize : size_t; end record; - pragma Convention (C_Pass_By_Copy, pthread_attr_t); + pragma Convention (C, pthread_attr_t); type pthread_condattr_t is record dummy : int; @@ -491,24 +488,28 @@ private type pthread_t is new unsigned_long; - type struct_pthread_queue is record - head : System.Address; - tail : System.Address; + type struct_pthread_fast_lock is record + status : long; + spinlock : int; end record; - pragma Convention (C, struct_pthread_queue); + pragma Convention (C, struct_pthread_fast_lock); type pthread_mutex_t is record - m_spinlock : int; + m_reserved : int; m_count : int; m_owner : System.Address; m_kind : int; - m_waiting : struct_pthread_queue; + m_lock : struct_pthread_fast_lock; end record; pragma Convention (C, pthread_mutex_t); + type pthread_cond_padding_t is array (0 .. 35) of unsigned_char; + pragma Convention (C, pthread_cond_padding_t); + type pthread_cond_t is record - c_spinlock : int; - c_waiting : struct_pthread_queue; + c_lock : struct_pthread_fast_lock; + c_waiting : System.Address; + c_padding : pthread_cond_padding_t; end record; pragma Convention (C, pthread_cond_t); |