source: rtems/c/src/ada/rtems-barrier.adb @ 1987020

4.115
Last change on this file since 1987020 was 1987020, checked in by Joel Sherrill <joel.sherrill@…>, on Feb 16, 2011 at 3:52:29 PM

2011-02-16 Joel Sherrill <joel.sherrill@…>

  • 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.
  • Property mode set to 100644
File size: 3.0 KB
Line 
1--
2--  RTEMS / Body
3--
4--  DESCRIPTION:
5--
6--  This package provides the interface to the RTEMS API.
7--
8--
9--  DEPENDENCIES:
10--
11--
12--
13--  COPYRIGHT (c) 1997-2011.
14--  On-Line Applications Research Corporation (OAR).
15--
16--  The license and distribution terms for this file may in
17--  the file LICENSE in this distribution or at
18--  http://www.rtems.com/license/LICENSE.
19--
20--  $Id$
21--
22
23with Ada;
24with Ada.Unchecked_Conversion;
25with Interfaces;               use Interfaces;
26with Interfaces.C;             use Interfaces.C;
27with Interfaces.C.Strings;     use Interfaces.C.Strings;
28
29package body RTEMS.Barrier is
30
31   --
32   -- Barrier Manager
33   --
34
35   procedure Create
36     (Name            : in RTEMS.Name;
37      Attribute_Set   : in RTEMS.Attribute;
38      Maximum_Waiters : in RTEMS.Unsigned32;
39      ID              : out RTEMS.ID;
40      Result          : out RTEMS.Status_Codes)
41   is
42      function Create_Base
43        (Name            : RTEMS.Name;
44         Attribute_Set   : RTEMS.Attribute;
45         Maximum_Waiters : RTEMS.Unsigned32;
46         ID              : access RTEMS.ID)
47         return            RTEMS.Status_Codes;
48      pragma Import (C, Create_Base, "rtems_barrier_create");
49      ID_Base : aliased RTEMS.ID;
50   begin
51
52      Result :=
53         Create_Base
54           (Name,
55            Attribute_Set,
56            Maximum_Waiters,
57            ID_Base'Access);
58      ID     := ID_Base;
59
60   end Create;
61
62   procedure Ident
63     (Name   : in RTEMS.Name;
64      ID     : out RTEMS.ID;
65      Result : out RTEMS.Status_Codes)
66   is
67      function Ident_Base
68        (Name : RTEMS.Name;
69         ID   : access RTEMS.ID)
70         return RTEMS.Status_Codes;
71      pragma Import (C, Ident_Base, "rtems_barrier_ident");
72      ID_Base : aliased RTEMS.ID;
73   begin
74
75      Result := Ident_Base (Name, ID_Base'Access);
76      ID     := ID_Base;
77
78   end Ident;
79
80   procedure Delete
81     (ID     : in RTEMS.ID;
82      Result : out RTEMS.Status_Codes)
83   is
84      function Delete_Base
85        (ID   : RTEMS.ID)
86         return RTEMS.Status_Codes;
87      pragma Import (C, Delete_Base, "rtems_barrier_delete");
88   begin
89
90      Result := Delete_Base (ID);
91
92   end Delete;
93
94   procedure Wait
95     (ID      : in RTEMS.ID;
96      Timeout : in RTEMS.Interval;
97      Result  : out RTEMS.Status_Codes)
98   is
99      function Wait_Base
100        (ID      : RTEMS.ID;
101         Timeout : RTEMS.Interval)
102         return    RTEMS.Status_Codes;
103      pragma Import (C, Wait_Base, "rtems_barrier_wait");
104   begin
105
106      Result := Wait_Base (ID, Timeout);
107
108   end Wait;
109
110   procedure Release
111     (ID       : in RTEMS.ID;
112      Released : out RTEMS.Unsigned32;
113      Result   : out RTEMS.Status_Codes)
114   is
115      function Release_Base
116        (ID       : RTEMS.ID;
117         Released : access RTEMS.Unsigned32)
118         return     RTEMS.Status_Codes;
119      pragma Import (C, Release_Base, "rtems_barrier_release");
120      Released_Base : aliased RTEMS.Unsigned32;
121   begin
122
123      Result   := Release_Base (ID, Released_Base'Access);
124      Released := Released_Base;
125
126   end Release;
127
128end RTEMS.Barrier;
Note: See TracBrowser for help on using the repository browser.