diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2011-02-16 15:52:29 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2011-02-16 15:52:29 +0000 |
commit | 19870208342778aecf570dfe008aa2747c46110e (patch) | |
tree | 48f0cc573732a4e8dddca3bdf91c3488d0b13649 /c/src/ada/rtems-port.adb | |
parent | 2011-02-16 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff) | |
download | rtems-19870208342778aecf570dfe008aa2747c46110e.tar.bz2 |
2011-02-16 Joel Sherrill <joel.sherrill@oarcorp.com>
* ada/Makefile.am, ada/preinstall.am, ada/rtems.adb, ada/rtems.ads:
Split RTEMS Ada95 binding into a master package and a child package
per Manager. This is better Ada style.
* ada/rtems-barrier.adb, ada/rtems-barrier.ads, ada/rtems-clock.adb,
ada/rtems-clock.ads, ada/rtems-cpu_usage.ads, ada/rtems-debug.adb,
ada/rtems-debug.ads, ada/rtems-event.adb, ada/rtems-event.ads,
ada/rtems-extension.adb, ada/rtems-extension.ads,
ada/rtems-fatal.adb, ada/rtems-fatal.ads, ada/rtems-interrupt.ads,
ada/rtems-io.adb, ada/rtems-io.ads, ada/rtems-message_queue.adb,
ada/rtems-message_queue.ads, ada/rtems-object.adb,
ada/rtems-object.ads, ada/rtems-partition.adb,
ada/rtems-partition.ads, ada/rtems-port.adb, ada/rtems-port.ads,
ada/rtems-rate_monotonic.adb, ada/rtems-rate_monotonic.ads,
ada/rtems-region.adb, ada/rtems-region.ads, ada/rtems-semaphore.adb,
ada/rtems-semaphore.ads, ada/rtems-signal.adb, ada/rtems-signal.ads,
ada/rtems-stack_checker.ads, ada/rtems-tasks.adb,
ada/rtems-tasks.ads, ada/rtems-timer.adb, ada/rtems-timer.ads: New
files.
Diffstat (limited to 'c/src/ada/rtems-port.adb')
-rw-r--r-- | c/src/ada/rtems-port.adb | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/c/src/ada/rtems-port.adb b/c/src/ada/rtems-port.adb new file mode 100644 index 0000000000..cd36b91be8 --- /dev/null +++ b/c/src/ada/rtems-port.adb @@ -0,0 +1,137 @@ +-- +-- RTEMS / Body +-- +-- DESCRIPTION: +-- +-- This package provides the interface to the RTEMS API. +-- +-- +-- DEPENDENCIES: +-- +-- +-- +-- COPYRIGHT (c) 1997-2011. +-- On-Line Applications Research Corporation (OAR). +-- +-- The license and distribution terms for this file may in +-- the file LICENSE in this distribution or at +-- http://www.rtems.com/license/LICENSE. +-- +-- $Id$ +-- + +package body RTEMS.Port is + + -- + -- Dual Ported Memory Manager + -- + + procedure Create + (Name : in RTEMS.Name; + Internal_Start : in RTEMS.Address; + External_Start : in RTEMS.Address; + Length : in RTEMS.Unsigned32; + ID : out RTEMS.ID; + Result : out RTEMS.Status_Codes) + is + function Create_Base + (Name : RTEMS.Name; + Internal_Start : RTEMS.Address; + External_Start : RTEMS.Address; + Length : RTEMS.Unsigned32; + ID : access RTEMS.ID) + return RTEMS.Status_Codes; + pragma Import (C, Create_Base, "rtems_port_create"); + ID_Base : aliased RTEMS.ID; + begin + + Result := + Create_Base + (Name, + Internal_Start, + External_Start, + Length, + ID_Base'Access); + ID := ID_Base; + + end Create; + + procedure Ident + (Name : in RTEMS.Name; + ID : out RTEMS.ID; + Result : out RTEMS.Status_Codes) + is + function Ident_Base + (Name : RTEMS.Name; + ID : access RTEMS.ID) + return RTEMS.Status_Codes; + pragma Import (C, Ident_Base, "rtems_port_ident"); + ID_Base : aliased RTEMS.ID; + begin + + Result := Ident_Base (Name, ID_Base'Access); + ID := ID_Base; + + end Ident; + + procedure Delete + (ID : in RTEMS.ID; + Result : out RTEMS.Status_Codes) + is + function Delete_Base (ID : RTEMS.ID) return RTEMS.Status_Codes; + pragma Import (C, Delete_Base, "rtems_port_delete"); + begin + + Result := Delete_Base (ID); + + end Delete; + + procedure External_To_Internal + (ID : in RTEMS.ID; + External : in RTEMS.Address; + Internal : out RTEMS.Address; + Result : out RTEMS.Status_Codes) + is + function External_To_Internal_Base + (ID : RTEMS.ID; + External : RTEMS.Address; + Internal : access RTEMS.Address) + return RTEMS.Status_Codes; + pragma Import + (C, + External_To_Internal_Base, + "rtems_port_external_to_internal"); + Internal_Base : aliased RTEMS.Address; + begin + + Result := + External_To_Internal_Base (ID, External, Internal_Base'Access); + Internal := Internal_Base; + + end External_To_Internal; + + procedure Internal_To_External + (ID : in RTEMS.ID; + Internal : in RTEMS.Address; + External : out RTEMS.Address; + Result : out RTEMS.Status_Codes) + is + function Internal_To_External_Base + (ID : RTEMS.ID; + Internal : RTEMS.Address; + External : access RTEMS.Address) + return RTEMS.Status_Codes; + pragma Import + (C, + Internal_To_External_Base, + "rtems_port_internal_to_external"); + External_Base : aliased RTEMS.Address; + begin + + Result := + Internal_To_External_Base (ID, Internal, External_Base'Access); + External := External_Base; + + end Internal_To_External; + +end RTEMS.Port; |