OSDN Git Service

* s-osinte-kfreebsd-gnu.ads (SA_ONSTACK): New constant.
authorgerald <gerald@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 17 Aug 2009 12:08:20 +0000 (12:08 +0000)
committergerald <gerald@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 17 Aug 2009 12:08:20 +0000 (12:08 +0000)
(stack_t): New record type.
(sigaltstack): New imported function.
(Alternate_Stack): New imported variable.
(Alternate_Stack_Size): New constant.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150840 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/ChangeLog
gcc/ada/s-osinte-kfreebsd-gnu.ads

index 8dfceb4..04712c2 100644 (file)
@@ -1,3 +1,11 @@
+2009-08-17  Aurelien Jarno  <aurelien@aurel32.net>
+
+       * s-osinte-kfreebsd-gnu.ads (SA_ONSTACK): New constant.
+       (stack_t): New record type.
+       (sigaltstack): New imported function.
+       (Alternate_Stack): New imported variable.
+       (Alternate_Stack_Size): New constant.
+
 2009-08-17  Vasiliy Fofanov  <fofanov@adacore.com>
 
        * a-calend-vms.adb: Fix typo.
index ad33e54..e85af99 100644 (file)
@@ -188,6 +188,7 @@ package System.OS_Interface is
    SIG_IGN : constant := 1;
 
    SA_SIGINFO : constant := 16#0040#;
+   SA_ONSTACK : constant := 16#0001#;
 
    function sigaction
      (sig  : Signal;
@@ -280,6 +281,24 @@ package System.OS_Interface is
    -- Stack --
    -----------
 
+   type stack_t is record
+      ss_sp    : System.Address;
+      ss_size  : size_t;
+      ss_flags : int;
+   end record;
+   pragma Convention (C, stack_t);
+
+   function sigaltstack
+     (ss  : not null access stack_t;
+      oss : access stack_t) return int;
+   pragma Import (C, sigaltstack, "sigaltstack");
+
+   Alternate_Stack : aliased System.Address;
+   --  This is a dummy definition, never used (Alternate_Stack_Size is null)
+
+   Alternate_Stack_Size : constant := 0;
+   --  No alternate signal stack is used on this platform
+
    function Get_Stack_Base (thread : pthread_t) return Address;
    pragma Inline (Get_Stack_Base);
    --  This is a dummy procedure to share some GNULLI files