summaryrefslogtreecommitdiff
path: root/gcc/ada/s-taspri-mingw.ads
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/s-taspri-mingw.ads')
-rw-r--r--gcc/ada/s-taspri-mingw.ads21
1 files changed, 17 insertions, 4 deletions
diff --git a/gcc/ada/s-taspri-mingw.ads b/gcc/ada/s-taspri-mingw.ads
index 5997cba640c..f9e13e9d499 100644
--- a/gcc/ada/s-taspri-mingw.ads
+++ b/gcc/ada/s-taspri-mingw.ads
@@ -38,6 +38,7 @@ pragma Polling (Off);
-- operations. It causes infinite loops and other problems.
with System.OS_Interface;
+with System.Win32;
package System.Task_Primitives is
pragma Preelaborate;
@@ -62,6 +63,18 @@ package System.Task_Primitives is
-- A component of this type is guaranteed to be included in the
-- Ada_Task_Control_Block.
+ subtype Task_Address is System.Address;
+ -- In some versions of Task_Primitives, notably for VMS, Task_Address is
+ -- the short version of address defined in System.Aux_DEC. To avoid
+ -- dragging Aux_DEC into tasking packages a tasking specific subtype is
+ -- defined here.
+
+ Task_Address_Size : constant := Standard'Address_Size;
+ -- The size of Task_Address
+
+ Alternate_Stack_Size : constant := 0;
+ -- No alternate signal stack is used on this platform
+
private
type Lock is record
@@ -70,7 +83,7 @@ private
Owner_Priority : Integer;
end record;
- type Condition_Variable is new System.OS_Interface.HANDLE;
+ type Condition_Variable is new System.Win32.HANDLE;
type RTS_Lock is new System.OS_Interface.CRITICAL_SECTION;
@@ -87,12 +100,12 @@ private
L : aliased System.OS_Interface.CRITICAL_SECTION;
-- Protection for ensuring mutual exclusion on the Suspension_Object
- CV : aliased System.OS_Interface.HANDLE;
+ CV : aliased Win32.HANDLE;
-- Condition variable used to queue threads until condition is signaled
end record;
type Private_Data is record
- Thread : aliased System.OS_Interface.HANDLE;
+ Thread : aliased Win32.HANDLE;
pragma Atomic (Thread);
-- Thread field may be updated by two different threads of control.
-- (See, Enter_Task and Create_Task in s-taprop.adb).
@@ -100,7 +113,7 @@ private
-- use lock on those operations and the only thing we have to
-- make sure is that they are updated in atomic fashion.
- Thread_Id : aliased System.OS_Interface.DWORD;
+ Thread_Id : aliased Win32.DWORD;
-- Used to provide a better tasking support in gdb
CV : aliased Condition_Variable;