Commit 1ee806d8 by Svante Signell Committed by Eric Botcazou

Makefile.in (x86 GNU/Hurd): Use s-osinte-gnu.adb.

	* gcc-interface/Makefile.in (x86 GNU/Hurd): Use s-osinte-gnu.adb.
	* s-osinte-gnu.ads: Small tweaks.
	* s-osinte-gnu.adb: New file.

From-SVN: r235467
parent c47194d2
2016-04-27 Svante Signell <svante.signell@gmail.com>
* gcc-interface/Makefile.in (x86 GNU/Hurd): Use s-osinte-gnu.adb.
* s-osinte-gnu.ads: Small tweaks.
* s-osinte-gnu.adb: New file.
2016-04-21 Hristian Kirtchev <kirtchev@adacore.com>
* sem_prag.adb (Match_Constituent): Treat a constant as a legal
......
......@@ -1426,7 +1426,7 @@ ifeq ($(strip $(filter-out %86 pc gnu,$(target_cpu) $(target_vendor) $(target_os
a-intnam.ads<a-intnam-freebsd.ads \
s-inmaop.adb<s-inmaop-posix.adb \
s-intman.adb<s-intman-posix.adb \
s-osinte.adb<s-osinte-posix.adb \
s-osinte.adb<s-osinte-gnu.adb \
s-osinte.ads<s-osinte-gnu.ads \
s-osprim.adb<s-osprim-posix.adb \
s-taprop.adb<s-taprop-posix.adb \
......
------------------------------------------------------------------------------
-- --
-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS --
-- --
-- S Y S T E M . O S _ I N T E R F A C E --
-- --
-- B o d y --
-- --
-- Copyright (C) 2015-2016, Free Software Foundation, Inc. --
-- --
-- GNAT 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- --
-- ware Foundation; either version 3, or (at your option) any later ver- --
-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
-- or FITNESS FOR A PARTICULAR PURPOSE. --
-- --
-- As a special exception under Section 7 of GPL version 3, you are granted --
-- additional permissions described in the GCC Runtime Library Exception, --
-- version 3.1, as published by the Free Software Foundation. --
-- --
-- You should have received a copy of the GNU General Public License and --
-- a copy of the GCC Runtime Library Exception along with this program; --
-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
-- <http://www.gnu.org/licenses/>. --
-- --
-- GNARL was developed by the GNARL team at Florida State University. --
-- Extensive contributions were provided by Ada Core Technologies, Inc. --
-- --
------------------------------------------------------------------------------
-- This is the GNU/Hurd version of this package.
pragma Polling (Off);
-- Turn off polling, we do not want ATC polling to take place during
-- tasking operations. It causes infinite loops and other problems.
-- This package encapsulates all direct interfaces to OS services
-- that are needed by children of System.
package body System.OS_Interface is
--------------------
-- Get_Stack_Base --
--------------------
function Get_Stack_Base (thread : pthread_t) return Address is
pragma Warnings (Off, thread);
begin
return Null_Address;
end Get_Stack_Base;
------------------
-- pthread_init --
------------------
procedure pthread_init is
begin
null;
end pthread_init;
--------------------------------------
-- pthread_mutexattr_setprioceiling --
--------------------------------------
function pthread_mutexattr_setprioceiling
(attr : access pthread_mutexattr_t;
prioceiling : int) return int is
pragma Unreferenced (attr, prioceiling);
begin
return 0;
end pthread_mutexattr_setprioceiling;
--------------------------------------
-- pthread_mutexattr_getprioceiling --
--------------------------------------
function pthread_mutexattr_getprioceiling
(attr : access pthread_mutexattr_t;
prioceiling : access int) return int is
pragma Unreferenced (attr, prioceiling);
begin
return 0;
end pthread_mutexattr_getprioceiling;
---------------------------
-- pthread_setschedparam --
---------------------------
function pthread_setschedparam
(thread : pthread_t;
policy : int;
param : access struct_sched_param) return int is
pragma Unreferenced (thread, policy, param);
begin
return 0;
end pthread_setschedparam;
-----------------
-- To_Duration --
-----------------
function To_Duration (TS : timespec) return Duration is
begin
return Duration (TS.tv_sec) + Duration (TS.tv_nsec) / 10#1#E9;
end To_Duration;
------------------------
-- To_Target_Priority --
------------------------
function To_Target_Priority
(Prio : System.Any_Priority) return Interfaces.C.int
is
begin
return Interfaces.C.int (Prio);
end To_Target_Priority;
-----------------
-- To_Timespec --
-----------------
function To_Timespec (D : Duration) return timespec is
S : time_t;
F : Duration;
begin
S := time_t (Long_Long_Integer (D));
F := D - Duration (S);
-- If F has negative value due to a round-up, adjust for positive F
-- value.
if F < 0.0 then
S := S - 1;
F := F + 1.0;
end if;
return timespec'(tv_sec => S,
tv_nsec => long (Long_Long_Integer (F * 10#1#E9)));
end To_Timespec;
end System.OS_Interface;
......@@ -344,8 +344,9 @@ package System.OS_Interface is
-- returns the stack base of the specified thread. Only call this function
-- when Stack_Base_Available is True.
-- From: /usr/include/unistd.h __getpagesize or getpagesize??
function Get_Page_Size return int;
-- From: /usr/include/i386-gnu/bits/shm.h __getpagesize or getpagesize??
function Get_Page_Size return size_t;
function Get_Page_Size return Address;
pragma Import (C, Get_Page_Size, "__getpagesize");
-- Returns the size of a page
......@@ -498,7 +499,11 @@ package System.OS_Interface is
PTHREAD_PRIO_PROTECT : constant := 2;
PTHREAD_PRIO_INHERIT : constant := 1;
-- GNU/Hurd does not support Thread Priority Protection or Thread
-- Priority Inheritance and lacks some pthread_mutexattr_* functions.
-- Replace them with dummy versions.
-- From: /usr/include/pthread/pthread.h
function pthread_mutexattr_setprotocol
(attr : access pthread_mutexattr_t;
protocol : int) return int;
......@@ -514,14 +519,10 @@ package System.OS_Interface is
function pthread_mutexattr_setprioceiling
(attr : access pthread_mutexattr_t;
prioceiling : int) return int;
pragma Import (C, pthread_mutexattr_setprioceiling,
"pthread_mutexattr_setprioceiling");
function pthread_mutexattr_getprioceiling
(attr : access pthread_mutexattr_t;
prioceiling : access int) return int;
pragma Import (C, pthread_mutexattr_getprioceiling,
"pthread_mutexattr_getprioceiling");
type struct_sched_param is record
sched_priority : int; -- scheduling priority
......@@ -532,7 +533,6 @@ package System.OS_Interface is
(thread : pthread_t;
policy : int;
param : access struct_sched_param) return int;
pragma Import (C, pthread_setschedparam, "pthread_setschedparam");
function pthread_attr_setscope
(attr : access pthread_attr_t;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment