summaryrefslogtreecommitdiff
path: root/gcc/ada/5qosinte.ads
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/5qosinte.ads')
-rw-r--r--gcc/ada/5qosinte.ads186
1 files changed, 0 insertions, 186 deletions
diff --git a/gcc/ada/5qosinte.ads b/gcc/ada/5qosinte.ads
deleted file mode 100644
index 06f0e6cfc96..00000000000
--- a/gcc/ada/5qosinte.ads
+++ /dev/null
@@ -1,186 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNU ADA RUN-TIME LIBRARY (GNARL) COMPONENTS --
--- --
--- S Y S T E M . O S _ I N T E R F A C E --
--- --
--- S p e c --
--- --
--- Copyright (C) 1991-2001 Florida State University --
--- --
--- 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- --
--- ware Foundation; either version 2, or (at your option) any later ver- --
--- sion. GNARL 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. See the GNU General Public License --
--- for more details. You should have received a copy of the GNU General --
--- Public License distributed with GNARL; see file COPYING. If not, write --
--- to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, --
--- MA 02111-1307, USA. --
--- --
--- As a special exception, if other files instantiate generics from this --
--- unit, or you link this unit with other files to produce an executable, --
--- this unit does not by itself cause the resulting executable to be --
--- covered by the GNU General Public License. This exception does not --
--- however invalidate any other reasons why the executable file might be --
--- covered by the GNU Public License. --
--- --
--- GNARL was developed by the GNARL team at Florida State University. It is --
--- now maintained by Ada Core Technologies Inc. in cooperation with Florida --
--- State University (http://www.gnat.com). --
--- --
-------------------------------------------------------------------------------
-
--- RT GNU/Linux version.
-
--- 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.
--- It is designed to be a bottom-level (leaf) package.
-
-with Interfaces.C;
-
-package System.OS_Interface is
-
- pragma Preelaborate;
-
- subtype int is Interfaces.C.int;
- subtype unsigned_long is Interfaces.C.unsigned_long;
-
- -- RT GNU/Linux kernel threads should not use the
- -- OS signal interfaces.
-
- Max_Interrupt : constant := 2;
- type Signal is new int range 0 .. Max_Interrupt;
- type sigset_t is new Integer;
-
- ----------
- -- Time --
- ----------
-
- RT_TICKS_PER_SEC : constant := 1193180;
- -- the amount of time units in one second.
-
- RT_TIME_END : constant := 16#7fffFfffFfffFfff#;
-
- type RTIME is range -2 ** 63 .. 2 ** 63 - 1;
- -- the introduction of type RTIME is due to the fact that RT-GNU/Linux
- -- uses this type to represent time. In RT-GNU/Linux, it's a long long
- -- integer that takes 64 bits for storage
-
- -------------------------
- -- Priority Scheduling --
- -------------------------
-
- RT_LOWEST_PRIORITY : constant System.Any_Priority :=
- System.Any_Priority'First;
- -- for the lowest priority task in RT-GNU/Linux. By the design, this
- -- task is the regular GNU/Linux kernel.
-
- RT_TASK_MAGIC : constant := 16#754d2774#;
- -- a special constant used as a label for a task that has been created
-
- ----------------------------
- -- RT constants and types --
- ----------------------------
-
- SFIF : Integer;
- pragma Import (C, SFIF, "SFIF");
- -- Interrupt emulation flag used by RT-GNU/Linux. If it's 0, the regular
- -- GNU/Linux kernel is preempted. Otherwise, the regular Linux kernel is
- -- running
-
- GFP_ATOMIC : constant := 16#1#;
- GFP_KERNEL : constant := 16#3#;
- -- constants to indicate the priority of a call to kmalloc.
- -- GFP_KERNEL is used in the current implementation to allocate
- -- stack space for a task. Since GFP_ATOMIC has higher priority,
- -- if necessary, replace GFP_KERNEL with GFP_ATOMIC
-
- type Rt_Task_States is (RT_TASK_READY, RT_TASK_DELAYED, RT_TASK_DORMANT);
-
- -------------
- -- Threads --
- -------------
-
- type Thread_Body is access
- function (arg : System.Address) return System.Address;
-
- -- ??? need to define a type for references to (IDs of)
- -- RT GNU/Linux lock objects, and implement the lock objects.
-
- subtype Thread_Id is System.Address;
-
- -------------------------------
- -- Useful imported functions --
- -------------------------------
-
- -------------------------------------
- -- Functions from GNU/Linux kernel --
- -------------------------------------
-
- function Kmalloc (size : Integer; Priority : Integer) return System.Address;
- pragma Import (C, Kmalloc, "kmalloc");
-
- procedure Kfree (Ptr : System.Address);
- pragma Import (C, Kfree, "kfree");
-
- procedure Printk (Msg : String);
- pragma Import (C, Printk, "printk");
-
- ---------------------
- -- RT time related --
- ---------------------
-
- function Rt_Get_Time return RTIME;
- pragma Import (C, Rt_Get_Time, "rt_get_time");
-
- function Rt_Request_Timer (Fn : System.Address) return Integer;
- procedure Rt_Request_Timer (Fn : System.Address);
- pragma Import (C, Rt_Request_Timer, "rt_request_timer");
-
- procedure Rt_Free_Timer;
- pragma Import (C, Rt_Free_Timer, "rt_free_timer");
-
- procedure Rt_Set_Timer (T : RTIME);
- pragma Import (C, Rt_Set_Timer, "rt_set_timer");
-
- procedure Rt_No_Timer;
- pragma Import (C, Rt_No_Timer, "rt_no_timer");
-
- ---------------------
- -- RT FIFO related --
- ---------------------
-
- function Rtf_Create (Fifo : Integer; Size : Integer) return Integer;
- pragma Import (C, Rtf_Create, "rtf_create");
-
- function Rtf_Destroy (Fifo : Integer) return Integer;
- pragma Import (C, Rtf_Destroy, "rtf_destroy");
-
- function Rtf_Resize (Minor : Integer; Size : Integer) return Integer;
- pragma Import (C, Rtf_Resize, "rtf_resize");
-
- function Rtf_Put
- (Fifo : Integer;
- Buf : System.Address;
- Count : Integer) return Integer;
- pragma Import (C, Rtf_Put, "rtf_put");
-
- function Rtf_Get
- (Fifo : Integer;
- Buf : System.Address;
- Count : Integer) return Integer;
- pragma Import (C, Rtf_Get, "rtf_get");
-
- function Rtf_Create_Handler
- (Fifo : Integer;
- Handler : System.Address) return Integer;
- pragma Import (C, Rtf_Create_Handler, "rtf_create_handler");
-
-private
- type Require_Body;
-end System.OS_Interface;