diff options
author | Jose Ruiz <ruiz@adacore.com> | 2006-10-31 18:47:01 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2006-10-31 18:47:01 +0100 |
commit | d1fa78e300ffbcc515c6d644d664f8a58c6f23c3 (patch) | |
tree | 3336477fa0f5d707b79b80880d884a20d663703f | |
parent | 8dbb621ea24e804d0deac2bcef1f0edd9ae874fb (diff) | |
download | gcc-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.adb | 14 | ||||
-rw-r--r-- | gcc/ada/s-osinte-vxworks.ads | 7 | ||||
-rw-r--r-- | gcc/ada/s-taspri-vxworks.ads | 4 |
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. |