aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose Ruiz <ruiz@adacore.com>2006-10-31 18:47:01 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2006-10-31 18:47:01 +0100
commitd1fa78e300ffbcc515c6d644d664f8a58c6f23c3 (patch)
tree3336477fa0f5d707b79b80880d884a20d663703f
parent8dbb621ea24e804d0deac2bcef1f0edd9ae874fb (diff)
downloadgcc-d1fa78e300ffbcc515c6d644d664f8a58c6f23c3.zip
gcc-d1fa78e300ffbcc515c6d644d664f8a58c6f23c3.tar.gz
gcc-d1fa78e300ffbcc515c6d644d664f8a58c6f23c3.tar.bz2
s-osinte-vxworks.ads, [...]:
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
-rw-r--r--gcc/ada/s-osinte-vxworks.adb14
-rw-r--r--gcc/ada/s-osinte-vxworks.ads7
-rw-r--r--gcc/ada/s-taspri-vxworks.ads4
3 files changed, 20 insertions, 5 deletions
diff --git a/gcc/ada/s-osinte-vxworks.adb b/gcc/ada/s-osinte-vxworks.adb
index cb8c969..6cad500 100644
--- a/gcc/ada/s-osinte-vxworks.adb
+++ b/gcc/ada/s-osinte-vxworks.adb
@@ -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 --
----------
diff --git a/gcc/ada/s-osinte-vxworks.ads b/gcc/ada/s-osinte-vxworks.ads
index ef9907a..c751152 100644
--- a/gcc/ada/s-osinte-vxworks.ads
+++ b/gcc/ada/s-osinte-vxworks.ads
@@ -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");
diff --git a/gcc/ada/s-taspri-vxworks.ads b/gcc/ada/s-taspri-vxworks.ads
index dad195f..e42535c 100644
--- a/gcc/ada/s-taspri-vxworks.ads
+++ b/gcc/ada/s-taspri-vxworks.ads
@@ -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.