]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
s-osinte-vxworks.ads, [...]:
authorJose Ruiz <ruiz@adacore.com>
Tue, 31 Oct 2006 17:47:01 +0000 (18:47 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 31 Oct 2006 17:47:01 +0000 (18:47 +0100)
2006-10-31  Jose Ruiz  <ruiz@adacore.com>

* s-osinte-vxworks.ads, s-osinte-vxworks.adb:
(getpid): New body for this function that uses the underlying taskIdSelf
function for VxWorks 5 and VxWorks 6 in kernel mode.
(unsigned_int): New type, modular to allow logical bit operations.
(taskOptionsGet): New imported function.

* s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
field to be compliant with the type used by the corresponding operating
system primitive.

From-SVN: r118239

gcc/ada/s-osinte-vxworks.adb
gcc/ada/s-osinte-vxworks.ads
gcc/ada/s-taspri-vxworks.ads

index cb8c969c7b0da2f9d432dc309b63bae3e8676c29..6cad500cda3a410afbe185b6ce7324d6b3652746 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                   B o d y                                --
 --                                                                          --
---             Copyright (C) 1997-2005 Free Software Foundation             --
+--             Copyright (C) 1997-2006 Free Software Foundation             --
 --                                                                          --
 -- GNARL is free software; you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -47,6 +47,18 @@ package body System.OS_Interface is
    Low_Priority : constant := 255;
    --  VxWorks native (default) lowest scheduling priority.
 
+   ------------
+   -- getpid --
+   ------------
+
+   function getpid return t_id is
+   begin
+      --  VxWorks 5 (and VxWorks 6 in kernel mode) does not have a getpid
+      --  function. taskIdSelf is the equivalent routine.
+
+      return taskIdSelf;
+   end getpid;
+
    ----------
    -- kill --
    ----------
index ef9907a248b67b3d190f9eeb90c92af4011ef505..c7511525378756ad09f8f8322e76dd422b7f1e8c 100644 (file)
@@ -48,6 +48,7 @@ package System.OS_Interface is
 
    subtype int        is Interfaces.C.int;
    subtype short      is Short_Integer;
+   type unsigned_int  is mod 2 ** int'Size;
    type long          is new Long_Integer;
    type unsigned_long is mod 2 ** long'Size;
    type size_t        is mod 2 ** Standard'Address_Size;
@@ -154,8 +155,7 @@ package System.OS_Interface is
    pragma Inline (kill);
 
    function getpid return t_id;
-   pragma Import (C, getpid, "taskIdSelf");
-   --  VxWorks doesn't have getpid; taskIdSelf is the equivalent routine.
+   pragma Inline (getpid);
 
    ----------
    -- Time --
@@ -218,6 +218,9 @@ package System.OS_Interface is
    function taskIdSelf return t_id;
    pragma Import (C, taskIdSelf, "taskIdSelf");
 
+   function taskOptionsGet (tid : t_id; pOptions : access int) return int;
+   pragma Import (C, taskOptionsGet, "taskOptionsGet");
+
    function taskSuspend (tid : t_id) return int;
    pragma Import (C, taskSuspend, "taskSuspend");
 
index dad195fe0140e7b697193b0b500a795cb0bea8f8..e42535cae008053cdc8d5308aa6674ebd701d168 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                  S p e c                                 --
 --                                                                          --
---          Copyright (C) 2001-2005 Free Software Foundation, Inc.          --
+--          Copyright (C) 2001-2006 Free Software Foundation, Inc.          --
 --                                                                          --
 -- GNARL is free software; you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -102,7 +102,7 @@ private
       --  use lock on those operations and the only thing we have to
       --  make sure is that they are updated in atomic fashion.
 
-      LWP : aliased System.Address;
+      LWP : aliased System.OS_Interface.t_id := 0;
       --  The purpose of this field is to provide a better tasking support on
       --  gdb. The order of the two first fields (Thread and LWP) is important.
       --  On targets where lwp is not relevant, this is equivalent to Thread.