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-io.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-io.adb')
-rw-r--r-- | c/src/ada/rtems-io.adb | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/c/src/ada/rtems-io.adb b/c/src/ada/rtems-io.adb new file mode 100644 index 0000000000..b11623cb99 --- /dev/null +++ b/c/src/ada/rtems-io.adb @@ -0,0 +1,169 @@ +-- +-- 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$ +-- + +with Ada; +with Ada.Unchecked_Conversion; +with Interfaces; use Interfaces; +with Interfaces.C; use Interfaces.C; +with Interfaces.C.Strings; use Interfaces.C.Strings; + +package body RTEMS.IO is + + -- + -- Input/Output Manager + -- + + procedure Register_Name + (Name : in String; + Major : in RTEMS.Device_Major_Number; + Minor : in RTEMS.Device_Minor_Number; + Result : out RTEMS.Status_Codes) + is + function Register_Name_Base + (Name : Interfaces.C.char_array; + Major : RTEMS.Device_Major_Number; + Minor : RTEMS.Device_Minor_Number) + return RTEMS.Status_Codes; + pragma Import (C, Register_Name_Base, "rtems_io_register_name"); + begin + + Result := Register_Name_Base (Interfaces.C.To_C (Name), Major, Minor); + + end Register_Name; + + procedure Lookup_Name + (Name : in String; + Device_Info : out RTEMS.Driver_Name_t; + Result : out RTEMS.Status_Codes) + is + function Lookup_Name_Base + (Name : Interfaces.C.char_array; + Device_Info : access RTEMS.Driver_Name_t) + return RTEMS.Status_Codes; + pragma Import (C, Lookup_Name_Base, "rtems_io_lookup_name"); + Device_Info_Base : aliased RTEMS.Driver_Name_t; + begin + + Result := + Lookup_Name_Base + (Interfaces.C.To_C (Name), + Device_Info_Base'Unchecked_Access); + Device_Info := Device_Info_Base; + + end Lookup_Name; + + procedure Open + (Major : in RTEMS.Device_Major_Number; + Minor : in RTEMS.Device_Minor_Number; + Argument : in RTEMS.Address; + Result : out RTEMS.Status_Codes) + is + function Open_Base + (Major : RTEMS.Device_Major_Number; + Minor : RTEMS.Device_Minor_Number; + Argument : RTEMS.Address) + return RTEMS.Status_Codes; + pragma Import (C, Open_Base, "rtems_io_open"); + begin + + Result := Open_Base (Major, Minor, Argument); + + end Open; + pragma Inline (Open); + + procedure Close + (Major : in RTEMS.Device_Major_Number; + Minor : in RTEMS.Device_Minor_Number; + Argument : in RTEMS.Address; + Result : out RTEMS.Status_Codes) + is + function Close_Base + (Major : RTEMS.Device_Major_Number; + Minor : RTEMS.Device_Minor_Number; + Argument : RTEMS.Address) + return RTEMS.Status_Codes; + pragma Import (C, Close_Base, "rtems_io_close"); + begin + + Result := Close_Base (Major, Minor, Argument); + + end Close; + pragma Inline (Close); + + procedure Read + (Major : in RTEMS.Device_Major_Number; + Minor : in RTEMS.Device_Minor_Number; + Argument : in RTEMS.Address; + Result : out RTEMS.Status_Codes) + is + function Read_Base + (Major : RTEMS.Device_Major_Number; + Minor : RTEMS.Device_Minor_Number; + Argument : RTEMS.Address) + return RTEMS.Status_Codes; + pragma Import (C, Read_Base, "rtems_io_read"); + begin + + Result := Read_Base (Major, Minor, Argument); + + end Read; + pragma Inline (Read); + + procedure Write + (Major : in RTEMS.Device_Major_Number; + Minor : in RTEMS.Device_Minor_Number; + Argument : in RTEMS.Address; + Result : out RTEMS.Status_Codes) + is + function Write_Base + (Major : RTEMS.Device_Major_Number; + Minor : RTEMS.Device_Minor_Number; + Argument : RTEMS.Address) + return RTEMS.Status_Codes; + pragma Import (C, Write_Base, "rtems_io_write"); + begin + + Result := Write_Base (Major, Minor, Argument); + + end Write; + pragma Inline (Write); + + procedure Control + (Major : in RTEMS.Device_Major_Number; + Minor : in RTEMS.Device_Minor_Number; + Argument : in RTEMS.Address; + Result : out RTEMS.Status_Codes) + is + function Control_Base + (Major : RTEMS.Device_Major_Number; + Minor : RTEMS.Device_Minor_Number; + Argument : RTEMS.Address) + return RTEMS.Status_Codes; + pragma Import (C, Control_Base, "rtems_io_control"); + begin + + Result := Control_Base (Major, Minor, Argument); + + end Control; + pragma Inline (Control); + +end RTEMS.IO; |