diff options
Diffstat (limited to 'gcc/ada/s-taspri-mingw.ads')
-rw-r--r-- | gcc/ada/s-taspri-mingw.ads | 21 |
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; |