aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/5iosinte.ads
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/5iosinte.ads')
-rw-r--r--gcc/ada/5iosinte.ads27
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);