Index: testsuites/sptests/ChangeLog
===================================================================
--- testsuites/sptests/ChangeLog	(revision 39507635f1feb32a94f515cf19286012c580b582)
+++ testsuites/sptests/ChangeLog	(revision 6f67619ee65456056e2ef5f172fe2228c17d9842)
@@ -1,2 +1,8 @@
+2010-07-06	Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+	* sp21/Makefile.am, sp21/init.c, sp21/sp21.scn: Add
+	rtems_io_lookup_name() and simplify test.
+	* sp21/system.h, sp21/task1.c: Removed.
+
 2010-07-05	Joel Sherrill <joel.sherrill@oarcorp.com>
 
Index: testsuites/sptests/sp21/Makefile.am
===================================================================
--- testsuites/sptests/sp21/Makefile.am	(revision 39507635f1feb32a94f515cf19286012c580b582)
+++ testsuites/sptests/sp21/Makefile.am	(revision 6f67619ee65456056e2ef5f172fe2228c17d9842)
@@ -3,8 +3,6 @@
 ##
 
-MANAGERS = io semaphore clock
-
 rtems_tests_PROGRAMS = sp21
-sp21_SOURCES = init.c task1.c system.h
+sp21_SOURCES = init.c
 
 dist_rtems_tests_DATA = sp21.scn
@@ -14,6 +12,4 @@
 include $(top_srcdir)/../automake/compile.am
 include $(top_srcdir)/../automake/leaf.am
-
-sp21_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
 
 AM_CPPFLAGS += -I$(top_srcdir)/../support/include
Index: testsuites/sptests/sp21/init.c
===================================================================
--- testsuites/sptests/sp21/init.c	(revision 39507635f1feb32a94f515cf19286012c580b582)
+++ testsuites/sptests/sp21/init.c	(revision 6f67619ee65456056e2ef5f172fe2228c17d9842)
@@ -1,16 +1,4 @@
-/*  Init
- *
- *  This routine is the initialization task for this test program.
- *  It is a user initialization task and has the responsibility for creating
- *  and starting the tasks that make up the test.  If the time of day
- *  clock is required for the test, it should also be set to a known
- *  value by this function.
- *
- *  Input parameters:
- *    argument - task argument
- *
- *  Output parameters:  NONE
- *
- *  COPYRIGHT (c) 1989-1999.
+/*
+ *  COPYRIGHT (c) 1989-2010.
  *  On-Line Applications Research Corporation (OAR).
  *
@@ -22,6 +10,190 @@
  */
 
-#define CONFIGURE_INIT
-#include "system.h"
+#include <tmacros.h>
+#include <rtems/devnull.h>
+
+
+#define PRIurtems_device_major_number PRIu32
+
+#define STUB_DRIVER_MAJOR     0x2
+#define NO_DRIVER_MAJOR       0x3
+#define INVALID_DRIVER_MAJOR  \
+     (rtems_configuration_get_number_of_device_drivers() + 1)
+
+/* driver entries to use with io_register */
+rtems_driver_address_table GoodDriver = DEVNULL_DRIVER_TABLE_ENTRY;
+rtems_driver_address_table BadDriver_Nothing = {
+  NULL, NULL, NULL, NULL, NULL, NULL
+};
+
+void do_test_io_manager(void)
+{
+  rtems_status_code         status;
+  rtems_device_major_number registered;
+  rtems_device_major_number registered_worked;
+
+  puts( "-----  TESTING THE NULL DRIVER CHECKS  -----" );
+
+  status = rtems_io_initialize( NO_DRIVER_MAJOR, 0, NULL );
+  directive_failed( status, "rtems_io_initialize" );
+  puts( "rtems_io_initialize  - NULL DRIVER RTEMS_SUCCESSFUL" );
+
+  status = rtems_io_open( NO_DRIVER_MAJOR, 0, NULL );
+  directive_failed( status, "rtems_io_open" );
+  puts( "rtems_io_open        - NULL DRIVER RTEMS_SUCCESSFUL" );
+
+  status = rtems_io_close( NO_DRIVER_MAJOR, 0, NULL );
+  directive_failed( status, "rtems_io_close" );
+  puts( "rtems_io_close       - NULL DRIVER RTEMS_SUCCESSFUL" );
+
+  status = rtems_io_read( NO_DRIVER_MAJOR, 0, NULL );
+  directive_failed( status, "rtems_io_read" );
+  puts( "rtems_io_read        - NULL DRIVER RTEMS_SUCCESSFUL" );
+
+  status = rtems_io_write( NO_DRIVER_MAJOR, 0, NULL );
+  directive_failed( status, "rtems_io_write" );
+  puts( "rtems_io_write       - NULL DRIVER RTEMS_SUCCESSFUL" );
+
+  status = rtems_io_control( NO_DRIVER_MAJOR, 0, NULL );
+  directive_failed( status, "rtems_io_control" );
+  puts( "rtems_io_control     - NULL DRIVER RTEMS_SUCCESSFUL" );
+
+  puts( "-----  TESTING THE I/O MANAGER DIRECTIVES  -----" );
+
+  status = rtems_io_initialize( STUB_DRIVER_MAJOR, 0, NULL );
+  directive_failed( status, "rtems_io_initialize" );
+  puts( "rtems_io_initialize  - STUB DRIVER RTEMS_SUCCESSFUL" );
+
+  status = rtems_io_open( STUB_DRIVER_MAJOR, 0, NULL );
+  directive_failed( status, "rtems_io_open" );
+  puts( "rtems_io_open        - STUB DRIVER RTEMS_SUCCESSFUL" );
+
+  status = rtems_io_close( STUB_DRIVER_MAJOR, 0, NULL );
+  directive_failed( status, "rtems_io_close" );
+  puts( "rtems_io_close       - STUB DRIVER RTEMS_SUCCESSFUL" );
+
+  status = rtems_io_read( STUB_DRIVER_MAJOR, 0, NULL );
+  directive_failed( status, "rtems_io_read" );
+  puts( "rtems_io_read        - STUB DRIVER RTEMS_SUCCESSFUL" );
+
+  status = rtems_io_write( STUB_DRIVER_MAJOR, 0, NULL );
+  directive_failed( status, "rtems_io_write" );
+  puts( "rtems_io_write       - STUB DRIVER RTEMS_SUCCESSFUL" );
+
+  status = rtems_io_control( STUB_DRIVER_MAJOR, 0, NULL );
+  directive_failed( status, "rtems_io_control" );
+  puts( "rtems_io_control     - STUB DRIVER RTEMS_SUCCESSFUL" );
+
+  /*
+   *  Invalid major number
+   */
+  puts( "-----  RETURNING INVALID MAJOR NUMBER -----" );
+
+  status = rtems_io_initialize( INVALID_DRIVER_MAJOR, 0, NULL );
+  fatal_directive_status(
+    status,
+    RTEMS_INVALID_NUMBER,
+    "rtems_io_initialize"
+  );
+  puts( "rtems_io_initialize  - RTEMS_INVALID_NUMBER" );
+
+  status = rtems_io_open( INVALID_DRIVER_MAJOR, 0, NULL );
+  fatal_directive_status(
+    status,
+    RTEMS_INVALID_NUMBER,
+    "rtems_io_open"
+  );
+  puts( "rtems_io_open        - RTEMS_INVALID_NUMBER" );
+
+  /*
+   *  Exercise the io register driver directive
+   */
+  puts( "-----  EXERCISE DRIVER REGISTER -----" );
+
+  status = rtems_io_register_driver( 0, &GoodDriver, NULL );
+  fatal_directive_status(
+    status,
+    RTEMS_INVALID_ADDRESS,
+    "rtems_io_register_driver"
+  );
+  puts(
+   "rtems_io_register_driver - RTEMS_INVALID_ADDRESS - NULL registered"
+  );
+
+  status = rtems_io_register_driver( 0, NULL, &registered );
+  fatal_directive_status(
+    status,
+    RTEMS_INVALID_ADDRESS,
+    "rtems_io_register_driver"
+  );
+  puts(
+    "rtems_io_register_driver - RTEMS_INVALID_ADDRESS - NULL device"
+  );
+
+  status = rtems_io_register_driver( 0, &BadDriver_Nothing, &registered );
+  fatal_directive_status(
+    status,
+    RTEMS_INVALID_ADDRESS,
+    "rtems_io_register_driver"
+  );
+  puts(
+    "rtems_io_register_driver - RTEMS_INVALID_ADDRESS - no callouts"
+  );
+
+  status = rtems_io_register_driver(
+    INVALID_DRIVER_MAJOR, &GoodDriver, &registered );
+  fatal_directive_status(
+    status,
+    RTEMS_INVALID_NUMBER,
+    "rtems_io_register_driver"
+  );
+  puts( "rtems_io_register_driver - RTEMS_INVALID_NUMBER - bad major" );
+
+  /* this has to succeed to overwrite NULL driver entry required above. */
+  status = rtems_io_register_driver( 0, &GoodDriver, &registered_worked );
+  directive_failed( status, "rtems_io_register_driver" );
+  puts( "rtems_io_register_driver - RTEMS_SUCCESSFUL - overwrite NULL" );
+
+  status = rtems_io_register_driver( 0, &GoodDriver, &registered );
+  if ( status == RTEMS_SUCCESSFUL )
+    printf(
+      "registered major = %" PRIurtems_device_major_number "\n", registered );
+  fatal_directive_status(
+    status,
+    RTEMS_TOO_MANY,
+    "rtems_io_register_driver"
+  );
+  puts( "rtems_io_register_driver - RTEMS_TOO_MANY - no slots" );
+
+  /* there should be a driver at major 1 -- clock, console, or stub */
+  status = rtems_io_register_driver( 1, &GoodDriver, &registered );
+  fatal_directive_status(
+    status,
+    RTEMS_RESOURCE_IN_USE,
+    "rtems_io_register_driver"
+  );
+  puts(
+    "rtems_io_register_driver - RTEMS_RESOURCE_IN_USE - major in use"
+  );
+
+  /* this should unregister the device driver we registered above */
+  status = rtems_io_unregister_driver( registered_worked );
+  directive_failed( status, "rtems_io_unregister_driver" );
+  puts( "rtems_io_unregister_driver - RTEMS_SUCCESSFUL" );
+}
+
+void do_test_io_lookup_name(void)
+{
+  rtems_status_code    sc;
+  rtems_driver_name_t  info;
+
+  puts( "rtems_io_lookup_name( \"\", &info )" );
+  sc = rtems_io_lookup_name( "", &info );
+  fatal_directive_status( sc, RTEMS_UNSATISFIED, "lookup empty string" );
+  
+  puts( "rtems_io_lookup_name( \"/dev/null\", &info )" );
+  sc = rtems_io_lookup_name( "/dev/null", &info );
+  directive_failed( sc, "lookup /dev/null" );
+}
 
 rtems_task Init(
@@ -29,24 +201,25 @@
 )
 {
-  rtems_status_code status;
-
   puts( "\n\n*** TEST 21 ***" );
 
-  Task_name[ 1 ] =  rtems_build_name( 'T', 'A', '1', ' ' );
-
-  status = rtems_task_create(
-    Task_name[ 1 ],
-    1,
-    RTEMS_MINIMUM_STACK_SIZE,
-    RTEMS_DEFAULT_MODES,
-    RTEMS_DEFAULT_ATTRIBUTES,
-    &Task_id[ 1 ]
-  );
-  directive_failed( status, "rtems_task_create of TA1" );
-
-  status = rtems_task_start( Task_id[ 1 ], Task_1, 0 );
-  directive_failed( status, "rtems_task_start of TA1" );
-
-  status = rtems_task_delete( RTEMS_SELF );
-  directive_failed( status, "rtems_task_delete of RTEMS_SELF" );
+  do_test_io_manager();
+
+  do_test_io_lookup_name();
+
+  puts( "*** END OF TEST 21 ***" );
+  rtems_test_exit( 0 );
 }
+
+/* configuration information */
+
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER
+
+#define CONFIGURE_MAXIMUM_TASKS             1
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+#define CONFIGURE_INIT
+#include <rtems/confdefs.h>
+/* end of file */
Index: testsuites/sptests/sp21/sp21.scn
===================================================================
--- testsuites/sptests/sp21/sp21.scn	(revision 39507635f1feb32a94f515cf19286012c580b582)
+++ testsuites/sptests/sp21/sp21.scn	(revision 6f67619ee65456056e2ef5f172fe2228c17d9842)
@@ -1,28 +1,30 @@
 *** TEST 21 ***
 -----  TESTING THE NULL DRIVER CHECKS  -----
-TA1 - rtems_io_initialize  - NULL DRIVER RTEMS_SUCCESSFUL
-TA1 - rtems_io_open        - NULL DRIVER RTEMS_SUCCESSFUL
-TA1 - rtems_io_close       - NULL DRIVER RTEMS_SUCCESSFUL
-TA1 - rtems_io_read        - NULL DRIVER RTEMS_SUCCESSFUL
-TA1 - rtems_io_write       - NULL DRIVER RTEMS_SUCCESSFUL
-TA1 - rtems_io_control     - NULL DRIVER RTEMS_SUCCESSFUL
+rtems_io_initialize  - NULL DRIVER RTEMS_SUCCESSFUL
+rtems_io_open        - NULL DRIVER RTEMS_SUCCESSFUL
+rtems_io_close       - NULL DRIVER RTEMS_SUCCESSFUL
+rtems_io_read        - NULL DRIVER RTEMS_SUCCESSFUL
+rtems_io_write       - NULL DRIVER RTEMS_SUCCESSFUL
+rtems_io_control     - NULL DRIVER RTEMS_SUCCESSFUL
 -----  TESTING THE I/O MANAGER DIRECTIVES  -----
-TA1 - rtems_io_initialize  - STUB DRIVER RTEMS_SUCCESSFUL
-TA1 - rtems_io_open        - STUB DRIVER RTEMS_SUCCESSFUL
-TA1 - rtems_io_close       - STUB DRIVER RTEMS_SUCCESSFUL
-TA1 - rtems_io_read        - STUB DRIVER RTEMS_SUCCESSFUL
-TA1 - rtems_io_write       - STUB DRIVER RTEMS_SUCCESSFUL
-TA1 - rtems_io_control     - STUB DRIVER RTEMS_SUCCESSFUL
+rtems_io_initialize  - STUB DRIVER RTEMS_SUCCESSFUL
+rtems_io_open        - STUB DRIVER RTEMS_SUCCESSFUL
+rtems_io_close       - STUB DRIVER RTEMS_SUCCESSFUL
+rtems_io_read        - STUB DRIVER RTEMS_SUCCESSFUL
+rtems_io_write       - STUB DRIVER RTEMS_SUCCESSFUL
+rtems_io_control     - STUB DRIVER RTEMS_SUCCESSFUL
 -----  RETURNING INVALID MAJOR NUMBER -----
-TA1 - rtems_io_initialize  - RTEMS_INVALID_NUMBER
-TA1 - rtems_io_open        - RTEMS_INVALID_NUMBER
+rtems_io_initialize  - RTEMS_INVALID_NUMBER
+rtems_io_open        - RTEMS_INVALID_NUMBER
 -----  EXERCISE DRIVER REGISTER -----
-TA1 - rtems_io_register_driver - RTEMS_INVALID_ADDRESS - NULL registered
-TA1 - rtems_io_register_driver - RTEMS_INVALID_ADDRESS - NULL device
-TA1 - rtems_io_register_driver - RTEMS_INVALID_ADDRESS - no callouts
-TA1 - rtems_io_register_driver - RTEMS_INVALID_NUMBER - bad major
-TA1 - rtems_io_register_driver - RTEMS_SUCCESSFUL - overwrite NULL
-TA1 - rtems_io_register_driver - RTEMS_TOO_MANY - no slots
-TA1 - rtems_io_register_driver - RTEMS_RESOURCE_IN_USE - major in use
-TA1 - rtems_io_unregister_driver - RTEMS_SUCCESSFUL
+rtems_io_register_driver - RTEMS_INVALID_ADDRESS - NULL registered
+rtems_io_register_driver - RTEMS_INVALID_ADDRESS - NULL device
+rtems_io_register_driver - RTEMS_INVALID_ADDRESS - no callouts
+rtems_io_register_driver - RTEMS_INVALID_NUMBER - bad major
+rtems_io_register_driver - RTEMS_SUCCESSFUL - overwrite NULL
+rtems_io_register_driver - RTEMS_TOO_MANY - no slots
+rtems_io_register_driver - RTEMS_RESOURCE_IN_USE - major in use
+rtems_io_unregister_driver - RTEMS_SUCCESSFUL
+rtems_io_lookup_name( "", &info )
+rtems_io_lookup_name( "/dev/null", &info )
 *** END OF TEST 21 ***
Index: stsuites/sptests/sp21/system.h
===================================================================
--- testsuites/sptests/sp21/system.h	(revision 39507635f1feb32a94f515cf19286012c580b582)
+++ 	(revision )
@@ -1,46 +1,0 @@
-/*  system.h
- *
- *  This include file contains information that is included in every
- *  function in the test set.
- *
- *  COPYRIGHT (c) 1989-1999.
- *  On-Line Applications Research Corporation (OAR).
- *
- *  The license and distribution terms for this file may be
- *  found in the file LICENSE in this distribution or at
- *  http://www.rtems.com/license/LICENSE.
- *
- *  $Id$
- */
-
-#include <tmacros.h>
-
-/* functions */
-
-rtems_task Init(
-  rtems_task_argument argument
-);
-
-rtems_task Task_1(
-  rtems_task_argument argument
-);
-
-/* configuration information */
-
-#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
-#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
-#define CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
-#define CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER
-
-#define CONFIGURE_MAXIMUM_TASKS             2
-
-#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
-
-#include <rtems/confdefs.h>
-
-/* global variables */
-
-TEST_EXTERN rtems_id   Task_id[ 4 ];         /* array of task ids */
-TEST_EXTERN rtems_name Task_name[ 4 ];       /* array of task names */
-
-/* end of include file */
Index: stsuites/sptests/sp21/task1.c
===================================================================
--- testsuites/sptests/sp21/task1.c	(revision 39507635f1feb32a94f515cf19286012c580b582)
+++ 	(revision )
@@ -1,195 +1,0 @@
-/*  Task_1
- *
- *  This routine serves as a test task.  It tests the I/O manager.
- *
- *  Input parameters:
- *    argument - task argument
- *
- *  Output parameters:  NONE
- *
- *  COPYRIGHT (c) 1989-2002.
- *  On-Line Applications Research Corporation (OAR).
- *
- *  The license and distribution terms for this file may be
- *  found in the file LICENSE in this distribution or at
- *  http://www.rtems.com/license/LICENSE.
- *
- *  $Id$
- */
-
-#include "system.h"
-
-/* rtems_device_major_number is a typedef to uint32_t */
-#define PRIurtems_device_major_number PRIu32
-
-#define STUB_DRIVER_MAJOR     0x2
-#define NO_DRIVER_MAJOR       0x3
-#define INVALID_DRIVER_MAJOR  \
-     (rtems_configuration_get_number_of_device_drivers() + 1)
-
-/* driver entries to use with io_register */
-rtems_driver_address_table GoodDriver = DEVNULL_DRIVER_TABLE_ENTRY;
-rtems_driver_address_table BadDriver_Nothing = {
-  NULL, NULL, NULL, NULL, NULL, NULL
-};
-
-rtems_task Task_1(
-  rtems_task_argument argument
-)
-{
-  rtems_status_code         status;
-  rtems_device_major_number registered;
-  rtems_device_major_number registered_worked;
-
-  puts( "-----  TESTING THE NULL DRIVER CHECKS  -----" );
-
-  status = rtems_io_initialize( NO_DRIVER_MAJOR, 0, NULL );
-  directive_failed( status, "rtems_io_initialize" );
-  puts( "TA1 - rtems_io_initialize  - NULL DRIVER RTEMS_SUCCESSFUL" );
-
-  status = rtems_io_open( NO_DRIVER_MAJOR, 0, NULL );
-  directive_failed( status, "rtems_io_open" );
-  puts( "TA1 - rtems_io_open        - NULL DRIVER RTEMS_SUCCESSFUL" );
-
-  status = rtems_io_close( NO_DRIVER_MAJOR, 0, NULL );
-  directive_failed( status, "rtems_io_close" );
-  puts( "TA1 - rtems_io_close       - NULL DRIVER RTEMS_SUCCESSFUL" );
-
-  status = rtems_io_read( NO_DRIVER_MAJOR, 0, NULL );
-  directive_failed( status, "rtems_io_read" );
-  puts( "TA1 - rtems_io_read        - NULL DRIVER RTEMS_SUCCESSFUL" );
-
-  status = rtems_io_write( NO_DRIVER_MAJOR, 0, NULL );
-  directive_failed( status, "rtems_io_write" );
-  puts( "TA1 - rtems_io_write       - NULL DRIVER RTEMS_SUCCESSFUL" );
-
-  status = rtems_io_control( NO_DRIVER_MAJOR, 0, NULL );
-  directive_failed( status, "rtems_io_control" );
-  puts( "TA1 - rtems_io_control     - NULL DRIVER RTEMS_SUCCESSFUL" );
-
-  puts( "-----  TESTING THE I/O MANAGER DIRECTIVES  -----" );
-
-  status = rtems_io_initialize( STUB_DRIVER_MAJOR, 0, NULL );
-  directive_failed( status, "rtems_io_initialize" );
-  puts( "TA1 - rtems_io_initialize  - STUB DRIVER RTEMS_SUCCESSFUL" );
-
-  status = rtems_io_open( STUB_DRIVER_MAJOR, 0, NULL );
-  directive_failed( status, "rtems_io_open" );
-  puts( "TA1 - rtems_io_open        - STUB DRIVER RTEMS_SUCCESSFUL" );
-
-  status = rtems_io_close( STUB_DRIVER_MAJOR, 0, NULL );
-  directive_failed( status, "rtems_io_close" );
-  puts( "TA1 - rtems_io_close       - STUB DRIVER RTEMS_SUCCESSFUL" );
-
-  status = rtems_io_read( STUB_DRIVER_MAJOR, 0, NULL );
-  directive_failed( status, "rtems_io_read" );
-  puts( "TA1 - rtems_io_read        - STUB DRIVER RTEMS_SUCCESSFUL" );
-
-  status = rtems_io_write( STUB_DRIVER_MAJOR, 0, NULL );
-  directive_failed( status, "rtems_io_write" );
-  puts( "TA1 - rtems_io_write       - STUB DRIVER RTEMS_SUCCESSFUL" );
-
-  status = rtems_io_control( STUB_DRIVER_MAJOR, 0, NULL );
-  directive_failed( status, "rtems_io_control" );
-  puts( "TA1 - rtems_io_control     - STUB DRIVER RTEMS_SUCCESSFUL" );
-
-
-  /*
-   *  Invalid major number
-   */
-  puts( "-----  RETURNING INVALID MAJOR NUMBER -----" );
-
-  status = rtems_io_initialize( INVALID_DRIVER_MAJOR, 0, NULL );
-  fatal_directive_status(
-    status,
-    RTEMS_INVALID_NUMBER,
-    "rtems_io_initialize"
-  );
-  puts( "TA1 - rtems_io_initialize  - RTEMS_INVALID_NUMBER" );
-
-  status = rtems_io_open( INVALID_DRIVER_MAJOR, 0, NULL );
-  fatal_directive_status(
-    status,
-    RTEMS_INVALID_NUMBER,
-    "rtems_io_open"
-  );
-  puts( "TA1 - rtems_io_open        - RTEMS_INVALID_NUMBER" );
-
-  /*
-   *  Exercise the io register driver directive
-   */
-  puts( "-----  EXERCISE DRIVER REGISTER -----" );
-
-  status = rtems_io_register_driver( 0, &GoodDriver, NULL );
-  fatal_directive_status(
-    status,
-    RTEMS_INVALID_ADDRESS,
-    "rtems_io_register_driver"
-  );
-  puts(
-   "TA1 - rtems_io_register_driver - RTEMS_INVALID_ADDRESS - NULL registered"
-  );
-
-  status = rtems_io_register_driver( 0, NULL, &registered );
-  fatal_directive_status(
-    status,
-    RTEMS_INVALID_ADDRESS,
-    "rtems_io_register_driver"
-  );
-  puts(
-    "TA1 - rtems_io_register_driver - RTEMS_INVALID_ADDRESS - NULL device"
-  );
-
-  status = rtems_io_register_driver( 0, &BadDriver_Nothing, &registered );
-  fatal_directive_status(
-    status,
-    RTEMS_INVALID_ADDRESS,
-    "rtems_io_register_driver"
-  );
-  puts(
-    "TA1 - rtems_io_register_driver - RTEMS_INVALID_ADDRESS - no callouts"
-  );
-
-  status = rtems_io_register_driver(
-    INVALID_DRIVER_MAJOR, &GoodDriver, &registered );
-  fatal_directive_status(
-    status,
-    RTEMS_INVALID_NUMBER,
-    "rtems_io_register_driver"
-  );
-  puts( "TA1 - rtems_io_register_driver - RTEMS_INVALID_NUMBER - bad major" );
-
-  /* this has to succeed to overwrite NULL driver entry required above. */
-  status = rtems_io_register_driver( 0, &GoodDriver, &registered_worked );
-  directive_failed( status, "rtems_io_register_driver" );
-  puts( "TA1 - rtems_io_register_driver - RTEMS_SUCCESSFUL - overwrite NULL" );
-
-  status = rtems_io_register_driver( 0, &GoodDriver, &registered );
-  if ( status == RTEMS_SUCCESSFUL )
-    printf( "registered major = %" PRIurtems_device_major_number "\n", registered );
-  fatal_directive_status(
-    status,
-    RTEMS_TOO_MANY,
-    "rtems_io_register_driver"
-  );
-  puts( "TA1 - rtems_io_register_driver - RTEMS_TOO_MANY - no slots" );
-
-  /* there should be a driver at major 1 -- clock, console, or stub */
-  status = rtems_io_register_driver( 1, &GoodDriver, &registered );
-  fatal_directive_status(
-    status,
-    RTEMS_RESOURCE_IN_USE,
-    "rtems_io_register_driver"
-  );
-  puts(
-    "TA1 - rtems_io_register_driver - RTEMS_RESOURCE_IN_USE - major in use"
-  );
-
-  /* this should unregister the device driver we registered above */
-  status = rtems_io_unregister_driver( registered_worked );
-  directive_failed( status, "rtems_io_unregister_driver" );
-  puts( "TA1 - rtems_io_unregister_driver - RTEMS_SUCCESSFUL" );
-
-  puts( "*** END OF TEST 21 ***" );
-  rtems_test_exit( 0 );
-}
