s-osinte-rtems.adb: Add sigalstack function.
2008-04-22 Joel Sherrill <joel.sherrill@oarcorp.com> * s-osinte-rtems.adb: Add sigalstack function. * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack function. Add Alternate_Stack and Alternate_Stack_Size. Add missing process_shared field to pthread_condattr_t and change ss_low_priority to int from timespec. From-SVN: r134560
This commit is contained in:
parent
5b4603fac2
commit
d9126ef8c8
3 changed files with 52 additions and 8 deletions
|
@ -1,3 +1,11 @@
|
|||
2008-04-22 Joel Sherrill <joel.sherrill@oarcorp.com>
|
||||
|
||||
* s-osinte-rtems.adb: Add sigalstack function.
|
||||
* s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
|
||||
function. Add Alternate_Stack and Alternate_Stack_Size.
|
||||
Add missing process_shared field to pthread_condattr_t
|
||||
and change ss_low_priority to int from timespec.
|
||||
|
||||
2008-04-22 Samuel Tardieu <sam@rfc1149.net>
|
||||
|
||||
* i-forbla.adb: Link against -llapack and -lblas by default
|
||||
|
|
|
@ -135,4 +135,13 @@ package body System.OS_Interface is
|
|||
return 0;
|
||||
end Get_Page_Size;
|
||||
|
||||
function sigaltstack
|
||||
(ss : not null access stack_t;
|
||||
oss : access stack_t) return int is
|
||||
pragma Unreferenced (ss);
|
||||
pragma Unreferenced (oss);
|
||||
begin
|
||||
return 0;
|
||||
end sigaltstack;
|
||||
|
||||
end System.OS_Interface;
|
||||
|
|
|
@ -35,17 +35,21 @@
|
|||
-- --
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
-- This is the RTEMS version of this package
|
||||
|
||||
-- These are guesses based on what I think the GNARL team will want to
|
||||
-- call the rtems configurations. We use CPU-rtems for the rtems
|
||||
-- configurations.
|
||||
-- This is the RTEMS version of this package.
|
||||
--
|
||||
-- RTEMS target names are of the form CPU-rtems.
|
||||
-- This implementation is designed to work on ALL RTEMS targets.
|
||||
-- The RTEMS implementation is primarily based upon the POSIX threads
|
||||
-- API but there are also bindings to GNAT/RTEMS support routines
|
||||
-- to insulate this code from C API specific details and, in some
|
||||
-- cases, obtain target architecture and BSP specific information
|
||||
-- that is unavailable at the time this package is built.
|
||||
|
||||
-- This package encapsulates all direct interfaces to OS services
|
||||
-- that are needed by children of System.
|
||||
|
||||
-- PLEASE DO NOT add any with-clauses to this package
|
||||
-- or remove the pragma Elaborate_Body.
|
||||
-- or remove the pragma Preelaborate.
|
||||
-- It is designed to be a bottom-level (leaf) package.
|
||||
|
||||
with Interfaces.C;
|
||||
|
@ -141,6 +145,11 @@ package System.OS_Interface is
|
|||
|
||||
SA_SIGINFO : constant := 16#02#;
|
||||
|
||||
SA_ONSTACK : constant := 16#00#;
|
||||
-- SA_ONSTACK is not defined on RTEMS, but it is refered to in the POSIX
|
||||
-- implementation of System.Interrupt_Management. Therefore we define a
|
||||
-- dummy value of zero here so that setting this flag is a nop.
|
||||
|
||||
SIG_BLOCK : constant := 1;
|
||||
SIG_UNBLOCK : constant := 2;
|
||||
SIG_SETMASK : constant := 3;
|
||||
|
@ -249,6 +258,23 @@ package System.OS_Interface is
|
|||
-- Stack --
|
||||
-----------
|
||||
|
||||
type stack_t is record
|
||||
ss_sp : System.Address;
|
||||
ss_flags : int;
|
||||
ss_size : size_t;
|
||||
end record;
|
||||
pragma Convention (C, stack_t);
|
||||
|
||||
function sigaltstack
|
||||
(ss : not null access stack_t;
|
||||
oss : access stack_t) return int;
|
||||
|
||||
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
|
||||
|
||||
Stack_Base_Available : constant Boolean := False;
|
||||
-- Indicates whether the stack base is available on this target.
|
||||
-- This allows us to share s-osinte.adb between all the FSU/RTEMS
|
||||
|
@ -386,7 +412,7 @@ package System.OS_Interface is
|
|||
|
||||
type struct_sched_param is record
|
||||
sched_priority : int;
|
||||
ss_low_priority : timespec;
|
||||
ss_low_priority : int;
|
||||
ss_replenish_period : timespec;
|
||||
ss_initial_budget : timespec;
|
||||
end record;
|
||||
|
@ -512,7 +538,8 @@ private
|
|||
pragma Convention (C, pthread_attr_t);
|
||||
|
||||
type pthread_condattr_t is record
|
||||
flags : int;
|
||||
flags : int;
|
||||
process_shared : int;
|
||||
end record;
|
||||
pragma Convention (C, pthread_condattr_t);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue