source: rtems/c/src/ada-tests/tmtests/tmoverhd/dummy_rtems.ads @ d5154d0f

5
Last change on this file since d5154d0f was d5154d0f, checked in by Aun-Ali Zaidi <admin@…>, on 12/23/15 at 20:44:02

api: Remove deprecated Notepads

Notepads where a feature of RTEMS' tasks that simply functioned in
the same way as POSIX keys or threaded local storage (TLS). They were
introduced well before per task variables, which are also deprecated,
and were barely used in favor of their POSIX alternatives.

In addition to their scarce usage, Notepads took up unnecessary memory.
For each task:

  • 16 32-bit integers were allocated.
  • A total of 64 bytes per task per thread.

This is especially critical in low memory and safety-critical applications.

They are also defined as uint32_t, and therefore are not guaranteed to
hold a pointer.

Lastly, they are not portable solutions for SMP and uniprocessor systems,
like POSIX keys and TLS.

updates #2493.

  • Property mode set to 100644
File size: 11.5 KB
Line 
1--
2--  DUMMY_RTEMS / SPECIFICATION
3--
4--  DESCRIPTION:
5--
6--  This package contains specifications for stub routines
7--  which are used to time the invocation overhead incurred
8--  with an Ada application program invokes each RTEMS directive.
9--
10--  DEPENDENCIES:
11--
12-- 
13--
14--  COPYRIGHT (c) 1989-2007.
15--  On-Line Applications Research Corporation (OAR).
16--
17--  The license and distribution terms for this file may in
18--  the file LICENSE in this distribution or at
19--  http://www.rtems.org/license/LICENSE.
20--
21
22with RTEMS;
23with RTEMS.CLOCK;
24with RTEMS.TASKS;
25with RTEMS.TIMER;
26
27package DUMMY_RTEMS is
28
29-- Task Manager
30
31   procedure TASK_CREATE (
32      NAME             : in     RTEMS.NAME;
33      INITIAL_PRIORITY : in     RTEMS.TASKS.PRIORITY;
34      STACK_SIZE       : in     RTEMS.UNSIGNED32;
35      INITIAL_MODES    : in     RTEMS.MODE;
36      ATTRIBUTE_SET    : in     RTEMS.ATTRIBUTE;
37      ID               :    out RTEMS.ID;
38      RESULT           :    out RTEMS.STATUS_CODES
39   );
40
41   procedure TASK_IDENT (
42      NAME   : in     RTEMS.NAME;
43      NODE   : in     RTEMS.UNSIGNED32;
44      ID     :    out RTEMS.ID;
45      RESULT :    out RTEMS.STATUS_CODES
46   );
47
48   procedure TASK_START (
49      ID          : in     RTEMS.ID;
50      ENTRY_POINT : in     RTEMS.TASKS.ENTRY_POINT;
51      ARGUMENT    : in     RTEMS.UNSIGNED32;
52      RESULT      :    out RTEMS.STATUS_CODES
53   );
54
55   procedure TASK_RESTART (
56      ID       : in     RTEMS.ID;
57      ARGUMENT : in     RTEMS.UNSIGNED32;
58      RESULT   :    out RTEMS.STATUS_CODES
59   );
60
61   procedure TASK_DELETE (
62      ID     : in     RTEMS.ID;
63      RESULT :    out RTEMS.STATUS_CODES
64   );
65
66   procedure TASK_SUSPEND (
67      ID     : in     RTEMS.ID;
68      RESULT :    out RTEMS.STATUS_CODES
69   );
70
71   procedure TASK_RESUME (
72      ID     : in     RTEMS.ID;
73      RESULT :    out RTEMS.STATUS_CODES
74   );
75
76   procedure TASK_SET_PRIORITY (
77      ID           : in     RTEMS.ID;
78      NEW_PRIORITY : in     RTEMS.TASKS.PRIORITY;
79      OLD_PRIORITY :    out RTEMS.TASKS.PRIORITY;
80      RESULT       :    out RTEMS.STATUS_CODES
81   );
82
83   procedure TASK_MODE (
84      MODE_SET          : in     RTEMS.MODE;
85      MASK              : in     RTEMS.MODE;
86      PREVIOUS_MODE_SET :    out RTEMS.MODE;
87      RESULT            :    out RTEMS.STATUS_CODES
88   );
89
90   procedure TASK_WAKE_WHEN (
91      TIME_BUFFER : in     RTEMS.TIME_OF_DAY;
92      RESULT      :    out RTEMS.STATUS_CODES
93   );
94
95   procedure TASK_WAKE_AFTER (
96      TICKS  : in     RTEMS.INTERVAL;
97      RESULT :    out RTEMS.STATUS_CODES
98   );
99
100-- Interrupt Manager
101
102--   procedure INTERRUPT_CATCH (
103--      NEW_ISR_HANDLER : in     RTEMS.ADDRESS;
104--      VECTOR          : in     RTEMS.VECTOR_NUMBER;
105--      OLD_ISR_HANDLER :    out RTEMS.ADDRESS;
106--      RESULT          :    out RTEMS.STATUS_CODES
107--   );
108
109-- Clock Manager
110
111   procedure CLOCK_GET (
112      OPTION      : in     RTEMS.CLOCK.GET_OPTIONS;
113      TIME_BUFFER : in     RTEMS.ADDRESS;
114      RESULT      :    out RTEMS.STATUS_CODES
115   );
116
117   procedure CLOCK_SET (
118      TIME_BUFFER : in     RTEMS.TIME_OF_DAY;
119      RESULT      :    out RTEMS.STATUS_CODES
120   );
121
122   procedure CLOCK_TICK (
123      RESULT :    out RTEMS.STATUS_CODES
124   );
125
126-- Timer Manager
127
128   procedure TIMER_CREATE (
129      NAME   : in     RTEMS.NAME;
130      ID     :    out RTEMS.ID;
131      RESULT :    out RTEMS.STATUS_CODES
132   );
133
134   procedure TIMER_DELETE (
135      ID     : in     RTEMS.ID;
136      RESULT :    out RTEMS.STATUS_CODES
137   );
138
139   procedure TIMER_IDENT (
140      NAME   : in     RTEMS.NAME;
141      ID     :    out RTEMS.ID;
142      RESULT :    out RTEMS.STATUS_CODES
143   );
144
145   procedure TIMER_FIRE_AFTER (
146      ID        : in     RTEMS.ID;
147      TICKS     : in     RTEMS.INTERVAL;
148      ROUTINE   : in     RTEMS.TIMER.SERVICE_ROUTINE;
149      USER_DATA : in     RTEMS.ADDRESS;
150      RESULT    :    out RTEMS.STATUS_CODES
151   );
152
153   procedure TIMER_FIRE_WHEN (
154      ID        : in     RTEMS.ID;
155      WALL_TIME : in     RTEMS.TIME_OF_DAY;
156      ROUTINE   : in     RTEMS.TIMER.SERVICE_ROUTINE;
157      USER_DATA : in     RTEMS.ADDRESS;
158      RESULT    :    out RTEMS.STATUS_CODES
159   );
160
161   procedure TIMER_RESET (
162      ID     : in     RTEMS.ID;
163      RESULT :    out RTEMS.STATUS_CODES
164   );
165
166   procedure TIMER_CANCEL (
167      ID     : in     RTEMS.ID;
168      RESULT :    out RTEMS.STATUS_CODES
169   );
170
171-- Semaphore Manager
172
173   procedure SEMAPHORE_CREATE (
174      NAME             : in     RTEMS.NAME;
175      COUNT            : in     RTEMS.UNSIGNED32;
176      ATTRIBUTE_SET    : in     RTEMS.ATTRIBUTE;
177      PRIORITY_CEILING : in     RTEMS.TASKS.PRIORITY;
178      ID               :    out RTEMS.ID;
179      RESULT           :    out RTEMS.STATUS_CODES
180   );
181
182   procedure SEMAPHORE_DELETE (
183      ID     : in     RTEMS.ID;
184      RESULT :    out RTEMS.STATUS_CODES
185   );
186
187   procedure SEMAPHORE_IDENT (
188      NAME   : in     RTEMS.NAME;
189      NODE   : in     RTEMS.UNSIGNED32;
190      ID     :    out RTEMS.ID;
191      RESULT :    out RTEMS.STATUS_CODES
192   );
193
194   procedure SEMAPHORE_OBTAIN (
195      ID         : in     RTEMS.ID;
196      OPTION_SET : in     RTEMS.OPTION;
197      TIMEOUT    : in     RTEMS.INTERVAL;
198      RESULT     :    out RTEMS.STATUS_CODES
199   );
200
201   procedure SEMAPHORE_RELEASE (
202      ID     : in     RTEMS.ID;
203      RESULT :    out RTEMS.STATUS_CODES
204   );
205
206-- Message Queue Manager
207
208   procedure MESSAGE_QUEUE_CREATE (
209      Name             : in     RTEMS.Name;
210      Count            : in     RTEMS.Unsigned32;
211      Max_Message_Size : in     RTEMS.Unsigned32;
212      Attribute_Set    : in     RTEMS.Attribute;
213      ID               :    out RTEMS.ID;
214      Result           :    out RTEMS.Status_Codes
215   );
216
217   procedure MESSAGE_QUEUE_IDENT (
218      NAME   : in     RTEMS.NAME;
219      NODE   : in     RTEMS.UNSIGNED32;
220      ID     :    out RTEMS.ID;
221      RESULT :    out RTEMS.STATUS_CODES
222   );
223
224   procedure MESSAGE_QUEUE_DELETE (
225      ID     : in     RTEMS.ID;
226      RESULT :    out RTEMS.STATUS_CODES
227   );
228
229   procedure MESSAGE_QUEUE_SEND (
230      ID     : in     RTEMS.ID;
231      BUFFER : in     RTEMS.ADDRESS;
232      SIZE   : in     RTEMS.UNSIGNED32;
233      RESULT :    out RTEMS.STATUS_CODES
234   );
235
236   procedure MESSAGE_QUEUE_URGENT (
237      ID     : in     RTEMS.ID;
238      BUFFER : in     RTEMS.ADDRESS;
239      SIZE   : in     RTEMS.UNSIGNED32;
240      RESULT :    out RTEMS.STATUS_CODES
241   );
242
243   procedure MESSAGE_QUEUE_BROADCAST (
244      ID     : in     RTEMS.ID;
245      BUFFER : in     RTEMS.ADDRESS;
246      SIZE   : in     RTEMS.UNSIGNED32;
247      COUNT  :    out RTEMS.UNSIGNED32;
248      RESULT :    out RTEMS.STATUS_CODES
249   );
250
251   procedure MESSAGE_QUEUE_RECEIVE (
252      ID         : in     RTEMS.ID;
253      BUFFER     : in     RTEMS.ADDRESS;
254      OPTION_SET : in     RTEMS.OPTION;
255      TIMEOUT    : in     RTEMS.INTERVAL;
256      SIZE       :    out RTEMS.UNSIGNED32;
257      RESULT     :    out RTEMS.STATUS_CODES
258   );
259
260   procedure MESSAGE_QUEUE_FLUSH (
261      ID     : in     RTEMS.ID;
262      COUNT  :    out RTEMS.UNSIGNED32;
263      RESULT :    out RTEMS.STATUS_CODES
264   );
265
266-- Event Manager
267
268   procedure EVENT_SEND (
269      ID       : in     RTEMS.ID;
270      EVENT_IN : in     RTEMS.EVENT_SET;
271      RESULT   :    out RTEMS.STATUS_CODES
272   );
273
274   procedure EVENT_RECEIVE (
275      EVENT_IN   : in     RTEMS.EVENT_SET;
276      OPTION_SET : in     RTEMS.OPTION;
277      TICKS      : in     RTEMS.INTERVAL;
278      EVENT_OUT  :    out RTEMS.EVENT_SET;
279      RESULT     :    out RTEMS.STATUS_CODES
280   );
281
282-- Signal Manager
283
284   procedure SIGNAL_CATCH (
285      ASR_HANDLER : in     RTEMS.ASR_HANDLER;
286      MODE_SET    : in     RTEMS.MODE;
287      RESULT      :    out RTEMS.STATUS_CODES
288   );
289
290   procedure SIGNAL_SEND (
291      ID         : in     RTEMS.ID;
292      SIGNAL_SET : in     RTEMS.SIGNAL_SET;
293      RESULT     :    out RTEMS.STATUS_CODES
294   );
295
296-- Partition Manager
297
298   procedure PARTITION_CREATE (
299      NAME             : in     RTEMS.NAME;
300      STARTING_ADDRESS : in     RTEMS.ADDRESS;
301      LENGTH           : in     RTEMS.UNSIGNED32;
302      BUFFER_SIZE      : in     RTEMS.UNSIGNED32;
303      ATTRIBUTE_SET    : in     RTEMS.ATTRIBUTE;
304      ID               :    out RTEMS.ID;
305      RESULT           :    out RTEMS.STATUS_CODES
306   );
307
308   procedure PARTITION_IDENT (
309      NAME   : in     RTEMS.NAME;
310      NODE   : in     RTEMS.UNSIGNED32;
311      ID     :    out RTEMS.ID;
312      RESULT :    out RTEMS.STATUS_CODES
313   );
314
315   procedure PARTITION_DELETE (
316      ID     : in     RTEMS.ID;
317      RESULT :    out RTEMS.STATUS_CODES
318   );
319
320   procedure PARTITION_GET_BUFFER (
321      ID     : in     RTEMS.ID;
322      BUFFER :    out RTEMS.ADDRESS;
323      RESULT :    out RTEMS.STATUS_CODES
324   );
325
326   procedure PARTITION_RETURN_BUFFER (
327      ID     : in     RTEMS.ID;
328      BUFFER : in     RTEMS.ADDRESS;
329      RESULT :    out RTEMS.STATUS_CODES
330   );
331
332-- Region Manager
333
334   procedure REGION_CREATE (
335      NAME             : in     RTEMS.NAME;
336      STARTING_ADDRESS : in     RTEMS.ADDRESS;
337      LENGTH           : in     RTEMS.UNSIGNED32;
338      PAGE_SIZE        : in     RTEMS.UNSIGNED32;
339      ATTRIBUTE_SET    : in     RTEMS.ATTRIBUTE;
340      ID               :    out RTEMS.ID;
341      RESULT           :    out RTEMS.STATUS_CODES
342   );
343
344   procedure REGION_IDENT (
345      NAME   : in     RTEMS.NAME;
346      ID     :    out RTEMS.ID;
347      RESULT :    out RTEMS.STATUS_CODES
348   );
349
350   procedure REGION_DELETE (
351      ID     : in     RTEMS.ID;
352      RESULT :    out RTEMS.STATUS_CODES
353   );
354
355   procedure REGION_GET_SEGMENT (
356      ID         : in     RTEMS.ID;
357      SIZE       : in     RTEMS.UNSIGNED32;
358      OPTION_SET : in     RTEMS.OPTION;
359      TIMEOUT    : in     RTEMS.INTERVAL;
360      SEGMENT    :    out RTEMS.ADDRESS;
361      RESULT     :    out RTEMS.STATUS_CODES
362   );
363
364   procedure REGION_RETURN_SEGMENT (
365      ID      : in     RTEMS.ID;
366      SEGMENT : in     RTEMS.ADDRESS;
367      RESULT  :    out RTEMS.STATUS_CODES
368   );
369
370-- Dual Ported Memory Manager
371
372   procedure PORT_CREATE (
373      NAME           : in     RTEMS.NAME;
374      INTERNAL_START : in     RTEMS.ADDRESS;
375      EXTERNAL_START : in     RTEMS.ADDRESS;
376      LENGTH         : in     RTEMS.UNSIGNED32;
377      ID             :    out RTEMS.ID;
378      RESULT         :    out RTEMS.STATUS_CODES
379   );
380
381   procedure PORT_IDENT (
382      NAME   : in     RTEMS.NAME;
383      ID     :    out RTEMS.ID;
384      RESULT :    out RTEMS.STATUS_CODES
385   );
386
387   procedure PORT_DELETE (
388      ID     : in     RTEMS.ID;
389      RESULT :    out RTEMS.STATUS_CODES
390   );
391
392   procedure PORT_EXTERNAL_TO_INTERNAL (
393      ID       : in     RTEMS.ID;
394      EXTERNAL : in     RTEMS.ADDRESS;
395      INTERNAL :    out RTEMS.ADDRESS;
396      RESULT   :    out RTEMS.STATUS_CODES
397   );
398
399   procedure PORT_INTERNAL_TO_EXTERNAL (
400      ID       : in     RTEMS.ID;
401      INTERNAL : in     RTEMS.ADDRESS;
402      EXTERNAL :    out RTEMS.ADDRESS;
403      RESULT   :    out RTEMS.STATUS_CODES
404   );
405
406-- Fatal Error Manager
407
408   procedure FATAL_ERROR_OCCURRED (
409      THE_ERROR : in     RTEMS.UNSIGNED32
410   );
411
412-- Rate Monotonic Manager
413
414   procedure RATE_MONOTONIC_CREATE (
415      NAME   : in     RTEMS.NAME;
416      ID     :    out RTEMS.ID;
417      RESULT :    out RTEMS.STATUS_CODES
418   );
419
420   procedure RATE_MONOTONIC_IDENT (
421      NAME   : in     RTEMS.NAME;
422      ID     :    out RTEMS.ID;
423      RESULT :    out RTEMS.STATUS_CODES
424   );
425
426   procedure RATE_MONOTONIC_DELETE (
427      ID     : in     RTEMS.ID;
428      RESULT :    out RTEMS.STATUS_CODES
429   );
430
431   procedure RATE_MONOTONIC_CANCEL (
432      ID     : in     RTEMS.ID;
433      RESULT :    out RTEMS.STATUS_CODES
434   );
435
436   procedure RATE_MONOTONIC_PERIOD (
437      ID      : in     RTEMS.ID;
438      LENGTH  : in     RTEMS.INTERVAL;
439      RESULT  :    out RTEMS.STATUS_CODES
440   );
441
442-- Multiprocessing Manager
443
444   procedure MULTIPROCESSING_ANNOUNCE;
445
446end DUMMY_RTEMS;
Note: See TracBrowser for help on using the repository browser.