source: rtems/c/src/ada-tests/tmtests/tm08/tmtest.ads @ d5154d0f

5
Last change on this file since d5154d0f was d5154d0f, checked in by Aun-Ali Zaidi <admin@…>, on Dec 23, 2015 at 8:44:02 PM

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: 1.9 KB
Line 
1--
2--  TMTEST / SPECIFICATION
3--
4--  DESCRIPTION:
5--
6--  This package is the specification for Test 8 of the RTEMS
7--  Timing Test Suite.
8--
9--  DEPENDENCIES:
10--
11-- 
12--
13--  COPYRIGHT (c) 1989-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.org/license/LICENSE.
19--
20
21with RTEMS;
22with RTEMS.TASKS;
23
24package TMTEST is
25
26   TASK_ID   : RTEMS.ID;
27
28--
29--  The following variable is set to the execution time returned
30--  by the timer.
31--
32
33   END_TIME  : RTEMS.UNSIGNED32;
34
35--
36--  INIT
37--
38--  DESCRIPTION:
39--
40--  This RTEMS task initializes the application.
41--
42
43   procedure INIT (
44      ARGUMENT : in     RTEMS.TASKS.ARGUMENT
45   );
46   pragma Convention (C, INIT);
47
48--
49--  TEST_INIT
50--
51--  DESCRIPTION:
52--
53--  This subprogram performs test initialization.
54--
55
56   procedure TEST_INIT;
57
58--
59--  TEST_TASK
60--
61--  DESCRIPTION:
62--
63--  This RTEMS task is responsible for measuring and reporting the
64--  following directive execution times:
65--
66--    + TASK_SET_PRIORITY to obtain the current priority
67--    + TASK_SET_PRIORITY which does not require a context switch
68--    + TASK_MODE to obtain the current mode
69--    + TASK_MODE which does not require a reschedule
70--    + TASK_MODE which does require a reschedule
71--    + TASK_MODE which causes a preemption *** TEST_TASK1 executes
72--    + CLOCK_SET
73--    + CLOCK_GET
74--
75
76   procedure TEST_TASK (
77      ARGUMENT : in     RTEMS.TASKS.ARGUMENT
78   );
79   pragma Convention (C, TEST_TASK);
80
81--
82--  TEST_TASK2
83--
84--  DESCRIPTION:
85--
86--  This RTEMS task is responsible for measuring and reporting the
87--  following directive execution times:
88--
89--    + TASK_MODE which results in a preemption
90--
91
92   procedure TEST_TASK1 (
93      ARGUMENT : in     RTEMS.TASKS.ARGUMENT
94   );
95   pragma Convention (C, TEST_TASK1);
96
97end TMTEST;
Note: See TracBrowser for help on using the repository browser.