summaryrefslogtreecommitdiffstats
path: root/c/src/ada-tests/mptests/mp02/mptest.adb
diff options
context:
space:
mode:
authorAun-Ali Zaidi <admin@kodeit.net>2015-12-23 14:44:02 -0600
committerJoel Sherrill <joel.sherrill@oarcorp.com>2015-12-24 16:52:34 -0600
commitd5154d0f6a04f3b7ed59d9a09038576fe2640756 (patch)
tree4b6dcf6e9b116223903afbc1b1141d28fb751848 /c/src/ada-tests/mptests/mp02/mptest.adb
parentscore: Fix watchdog removal (diff)
downloadrtems-d5154d0f6a04f3b7ed59d9a09038576fe2640756.tar.bz2
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.
Diffstat (limited to 'c/src/ada-tests/mptests/mp02/mptest.adb')
-rw-r--r--c/src/ada-tests/mptests/mp02/mptest.adb207
1 files changed, 0 insertions, 207 deletions
diff --git a/c/src/ada-tests/mptests/mp02/mptest.adb b/c/src/ada-tests/mptests/mp02/mptest.adb
deleted file mode 100644
index 4bdd0cf587..0000000000
--- a/c/src/ada-tests/mptests/mp02/mptest.adb
+++ /dev/null
@@ -1,207 +0,0 @@
---
--- MPTEST / BODY
---
--- DESCRIPTION:
---
--- This package is the implementation for Test 2 of the RTEMS
--- Multiprocessor Test Suite.
---
--- DEPENDENCIES:
---
---
---
--- COPYRIGHT (c) 1989-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.org/license/LICENSE.
---
-
-with INTERFACES; use INTERFACES;
-with RTEMS;
-with RTEMS.TASKS;
-with TEST_SUPPORT;
-with TEXT_IO;
-with UNSIGNED32_IO;
-
-package body MPTEST is
-
---
--- INIT
---
-
- procedure INIT (
- ARGUMENT : in RTEMS.TASKS.ARGUMENT
- ) is
- STATUS : RTEMS.STATUS_CODES;
- begin
-
- TEXT_IO.NEW_LINE( 2 );
- TEXT_IO.PUT( "*** TEST 2 -- NODE " );
- UNSIGNED32_IO.PUT(
- TEST_SUPPORT.NODE,
- WIDTH => 1
- );
- TEXT_IO.PUT_LINE( " ***" );
-
- MPTEST.TASK_NAME( 1 ) := RTEMS.BUILD_NAME( '1', '1', '1', ' ' );
- MPTEST.TASK_NAME( 2 ) := RTEMS.BUILD_NAME( '2', '2', '2', ' ' );
-
- TEXT_IO.PUT_LINE( "Creating test task (Global)" );
-
- RTEMS.TASKS.CREATE(
- MPTEST.TASK_NAME( TEST_SUPPORT.NODE ),
- 1,
- 2048,
- RTEMS.NO_PREEMPT,
- RTEMS.GLOBAL,
- MPTEST.TASK_ID( 1 ),
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE" );
-
- RTEMS.TASKS.START(
- MPTEST.TASK_ID( 1 ),
- MPTEST.TEST_TASK'ACCESS,
- 0,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START" );
-
- RTEMS.TASKS.DELETE( RTEMS.SELF, STATUS );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
-
- end INIT;
-
---
--- TEST_TASK
---
-
- procedure TEST_TASK (
- ARGUMENT : in RTEMS.TASKS.ARGUMENT
- ) is
- TID : RTEMS.ID;
- TEST_TID : RTEMS.ID;
- REMOTE_TID : RTEMS.ID;
- REMOTE_NODE : RTEMS.UNSIGNED32;
- NOTE : RTEMS.UNSIGNED32;
- STATUS : RTEMS.STATUS_CODES;
- begin
-
- RTEMS.TASKS.IDENT( RTEMS.SELF, RTEMS.SEARCH_ALL_NODES, TID, STATUS );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_IDENT OF SELF" );
-
- if TEST_SUPPORT.NODE = 1 then
- REMOTE_NODE := 2;
- else
- REMOTE_NODE := 1;
- end if;
-
- TEXT_IO.PUT_LINE( "Getting TID of remote task (all nodes)" );
-
- loop
-
- RTEMS.TASKS.IDENT(
- MPTEST.TASK_NAME( REMOTE_NODE ),
- RTEMS.SEARCH_ALL_NODES,
- REMOTE_TID,
- STATUS
- );
-
- exit when RTEMS.IS_STATUS_SUCCESSFUL( STATUS );
-
- end loop;
-
- --
- -- We just got this ID above so looping is not necessary.
- --
-
- TEXT_IO.PUT_LINE( "Getting TID of remote task (1 node)" );
- RTEMS.TASKS.IDENT(
- MPTEST.TASK_NAME( REMOTE_NODE ),
- REMOTE_NODE,
- TEST_TID,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_IDENT" );
-
- if TEST_TID /= REMOTE_TID then
- TEXT_IO.PUT_LINE( "task_ident tid's do not match!!" );
- RTEMS.SHUTDOWN_EXECUTIVE( 0 );
- end if;
-
- RTEMS.TASKS.DELETE( REMOTE_TID, STATUS );
- TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
- STATUS,
- RTEMS.ILLEGAL_ON_REMOTE_OBJECT,
- "task_delete of remote task"
- );
- TEXT_IO.PUT_LINE(
- "task_delete of remote task returned the correct error"
- );
-
- RTEMS.TASKS.START( REMOTE_TID, MPTEST.TEST_TASK'ACCESS, 0, STATUS );
- TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
- STATUS,
- RTEMS.ILLEGAL_ON_REMOTE_OBJECT,
- "task_start of remote task"
- );
- TEXT_IO.PUT_LINE(
- "task_start of remote task returned the correct error"
- );
-
- RTEMS.TASKS.RESTART( REMOTE_TID, 0, STATUS );
- TEST_SUPPORT.FATAL_DIRECTIVE_STATUS(
- STATUS,
- RTEMS.ILLEGAL_ON_REMOTE_OBJECT,
- "task_restart of remote task"
- );
- TEXT_IO.PUT_LINE(
- "task_restart of remote task returned the correct error"
- );
-
-
- TEXT_IO.PUT( "Setting notepad " );
- UNSIGNED32_IO.PUT( RTEMS.GET_NODE( TID ), WIDTH=>1 );
- TEXT_IO.PUT( " of the remote task to " );
- UNSIGNED32_IO.PUT( RTEMS.GET_NODE( TID ), WIDTH=>1 );
- TEXT_IO.NEW_LINE;
- RTEMS.TASKS.SET_NOTE(
- REMOTE_TID,
- RTEMS.GET_NODE( TID ),
- RTEMS.GET_NODE( TID ),
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_SET_NOTE" );
-
- TEXT_IO.PUT_LINE( "Getting a notepad of the remote task" );
- RTEMS.TASKS.GET_NOTE(
- REMOTE_TID,
- RTEMS.GET_NODE( TID ),
- NOTE,
- STATUS
- );
- TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_GET_NOTE" );
-
- if NOTE = RTEMS.GET_NODE( TID ) then
- TEXT_IO.PUT_LINE( "Remote notepad set and read correctly" );
- else
- TEXT_IO.PUT(
- "FAILURE!!! Remote notepad was not set and read correctly ("
- );
- UNSIGNED32_IO.PUT( NOTE );
- TEXT_IO.PUT( ", " );
- UNSIGNED32_IO.PUT( RTEMS.GET_NODE( TID ) );
- TEXT_IO.PUT_LINE( ")" );
-
- end if;
-
- RTEMS.TASKS.DELETE( REMOTE_TID, STATUS );
- TEXT_IO.PUT_LINE( "*** END OF TEST 2 ***" );
-
- RTEMS.SHUTDOWN_EXECUTIVE( 0 );
-
- end TEST_TASK;
-
-end MPTEST;