[rtems commit] librtems++: Remove from RTEMS.

Chris Johns chrisj at rtems.org
Thu Aug 11 07:26:37 UTC 2016


Module:    rtems
Branch:    master
Commit:    03c1038edbe9b01a72d4775dcb6ffc1a03193a0c
Changeset: http://git.rtems.org/rtems/commit/?id=03c1038edbe9b01a72d4775dcb6ffc1a03193a0c

Author:    Chris Johns <chrisj at rtems.org>
Date:      Wed Aug 10 13:28:50 2016 +1000

librtems++: Remove from RTEMS.

This is old and there are better design patterns for threading and C++.
We recommend you use the new C++ standards based support.

Closes #2777.

---

 c/src/configure.ac                                 |   6 -
 c/src/librtems++/Makefile.am                       |  23 -
 c/src/librtems++/README                            | 262 ---------
 c/src/librtems++/configure.ac                      |  35 --
 c/src/librtems++/include/rtems++/rtemsEvent.h      | 120 ----
 c/src/librtems++/include/rtems++/rtemsInterrupt.h  |  98 ----
 .../librtems++/include/rtems++/rtemsMessageQueue.h | 170 ------
 c/src/librtems++/include/rtems++/rtemsSemaphore.h  | 144 -----
 c/src/librtems++/include/rtems++/rtemsStatusCode.h |  55 --
 c/src/librtems++/include/rtems++/rtemsTask.h       | 160 ------
 c/src/librtems++/include/rtems++/rtemsTaskMode.h   | 204 -------
 c/src/librtems++/include/rtems++/rtemsTimer.h      | 135 -----
 c/src/librtems++/preinstall.am                     |  67 ---
 c/src/librtems++/src/rtemsEvent.cc                 |  73 ---
 c/src/librtems++/src/rtemsInterrupt.cc             | 126 ----
 c/src/librtems++/src/rtemsMessageQueue.cc          | 163 ------
 c/src/librtems++/src/rtemsSemaphore.cc             | 173 ------
 c/src/librtems++/src/rtemsStatusCode.cc            |  75 ---
 c/src/librtems++/src/rtemsTask.cc                  | 274 ---------
 c/src/librtems++/src/rtemsTimer.cc                 |  99 ----
 testsuites/libtests/Makefile.am                    |   2 +-
 testsuites/libtests/configure.ac                   |   1 -
 testsuites/libtests/rtems++/Init.cc                |  66 ---
 testsuites/libtests/rtems++/Makefile.am            |  27 -
 testsuites/libtests/rtems++/System.h               | 135 -----
 testsuites/libtests/rtems++/Task1.cc               | 631 ---------------------
 testsuites/libtests/rtems++/Task2.cc               |  82 ---
 testsuites/libtests/rtems++/Task3.cc               |  82 ---
 testsuites/libtests/rtems++/rtems++.doc            |  26 -
 testsuites/libtests/rtems++/rtems++.scn            | 149 -----
 30 files changed, 1 insertion(+), 3662 deletions(-)

diff --git a/c/src/configure.ac b/c/src/configure.ac
index 6b34eb5..1543b5d 100644
--- a/c/src/configure.ac
+++ b/c/src/configure.ac
@@ -140,12 +140,6 @@ AC_SUBST(libbsp_cpu_subdir,$RTEMS_CPU)
 
 BSP_SUBDIRS="$BSP_SUBDIRS lib"
 BSP_SUBDIRS="$BSP_SUBDIRS libchip"
-
-AS_IF([test "$RTEMS_HAS_CPLUSPLUS" = "yes"],[
-  AC_CONFIG_SUBDIRS([librtems++])
-  BSP_SUBDIRS="$BSP_SUBDIRS librtems++"
-])
-
 BSP_SUBDIRS="$BSP_SUBDIRS support"
 BSP_SUBDIRS="$BSP_SUBDIRS ada"
 BSP_SUBDIRS="$BSP_SUBDIRS wrapup"
diff --git a/c/src/librtems++/Makefile.am b/c/src/librtems++/Makefile.am
deleted file mode 100644
index ffc369c..0000000
--- a/c/src/librtems++/Makefile.am
+++ /dev/null
@@ -1,23 +0,0 @@
-ACLOCAL_AMFLAGS = -I ../aclocal
-
-include $(top_srcdir)/../automake/compile.am
-
-if HAS_CXX
-include_rtems__dir = $(includedir)/rtems++
-
-include_rtems___HEADERS = include/rtems++/rtemsEvent.h \
-    include/rtems++/rtemsInterrupt.h include/rtems++/rtemsMessageQueue.h \
-    include/rtems++/rtemsSemaphore.h include/rtems++/rtemsStatusCode.h \
-    include/rtems++/rtemsTask.h include/rtems++/rtemsTaskMode.h \
-    include/rtems++/rtemsTimer.h
-
-project_lib_LIBRARIES = librtems++.a
-
-librtems___a_SOURCES = src/rtemsEvent.cc src/rtemsInterrupt.cc \
-    src/rtemsMessageQueue.cc src/rtemsSemaphore.cc src/rtemsStatusCode.cc \
-    src/rtemsTask.cc src/rtemsTimer.cc
-librtems___a_CPPFLAGS = $(AM_CPPFLAGS)
-endif
-
-include $(srcdir)/preinstall.am
-include $(top_srcdir)/../automake/local.am
diff --git a/c/src/librtems++/README b/c/src/librtems++/README
deleted file mode 100644
index 93080d7..0000000
--- a/c/src/librtems++/README
+++ /dev/null
@@ -1,262 +0,0 @@
-RTEMS C++ Library
-=================
-
-The RTEMS C++ Library or librtems++ is a wrapper for the RTEMS API.
-The classes provide as close a match to the RTEMS C API, for
-performance, to share the existing C documentation as much as
-possible, and to allow easy tracking of any changes to the RTEMS C
-API.
-
-The C++ interface only uses RTEMS API calls.  No external references
-or internal interfaces are used.  This allows the classes to be used
-in separately compiled modules or applications which link to the RTEMS
-trap interface.
-
-(This is the goal, which has not quite been reached. The TOD macro for
-micro-seconds to ticks is used, and this uses an internal global RTEMS
-variable)
-
-The C++ interface does not deal with RTEMS initialisation or the
-device driver interface.  The current view is these parts of a system
-are best handled in the current manner.  This means BSP for
-initialisation and the C API for drivers.
-
-RTEMS C++ Classes
-=================
-
-The classes map to the managers of RTEMS.
-
-The methods have default values selected which try to fit most cases
-or follow the documented RTEMS default values.  Moving from left to
-right the parameters become less used, allowing the defaults to be
-selected. An example is the scope parameter for most classes.  This
-can be local or global.  I assume that most RTEMS objects are local,
-therefore it has been made the last parameter.
-
-Inline methods have been used for methods which are commonly used in
-applications.  This tries to add the minimum of overhead.  For
-example, the methods to send or receive events are inline, while all
-methods for control of a task are not.
-
-The RTEMS types, enumerations, and defines are used.  If a new type,
-enumeration or define is made it will map directly to the RTEMS
-equivalent.  For example the enumeration Scope is defined for various
-classes which can be local or global. The elements of the enumeration
-are forced to the same value as the RTEMS values.  An enumeration is
-used in this case to allow the compiler to type check a little
-better. It saves having to check only RTEMS_LOCAL or RTEMS_GLOBAL is
-passed as a parameter (I am not convinced this is really needed as the
-goal was to not define anything and to only use what RTEMS provided).
-
-Where possible the various parts of an option bit set, or mode can be
-controlled separately or controlled as a group.  An example is the
-task mode.  The RTEMS C API allows a set of modes to be modified at
-once.  The TaskMode class allows this to occur, while also providing
-methods to control a single mode item.
-
-The name of an object is always passed as a string.  The classes turn
-the string into a rtems_name variable.  The string does not have to be
-nul character terminated.
-
-The RTEMS C API uses 'delete' to remove or kill an RTEMS object.  This
-is a reserved word in C++, so the word 'destroy' is used instead.
-
-Calling the classes from interrupts follows the rules of RTEMS.  An
-exception introduced by the class library is the last status code.
-There is only one last status code for each instance of the library's
-classes and it is not protected.  This needs to be watched for.  Maybe
-a better solution needs to be found, such as interrupt calls do not set
-the last status code.
-
-RTEMS objects created by the C++ library can be operated on by C code
-just as any other RTEMS object. If limitations exist they should be
-documented in under the class.
-
-RTEMS Object Ownership
-======================
-
-The concept of ownership of an object is not defined as part of the
-RTEMS C API.  A piece of code executing as part a task can create a
-message queue.  Another piece of code running as part of a different
-task can destroy the message queue.  Correct behavior between the code
-that creates the message queue and the code which destroy's the
-message queue must be provided by the programmer.
-
-The librtems++ supports the concept of ownership of an RTEMS object.
-Only the C++ object that creates the RTEMS object can destroy it.  A
-C++ object can connect to an existing RTEMS object and control it,
-how-ever it can not destroy it.
-
-Copy constructors and assignment operators are provided to in-force
-this rule.
-
-Ownership only applies to classes that create RTEMS objects.  These
-classes contain a flag which signals ownership of the id.
-
-Timeouts
-========
-
-The timeout value is specified in micro-seconds.  The classes turn the
-micro-second timeout value into ticks required by the RTEMS C API.
-
-This causes a problem for timeout values which are less than one tick.
-This case is tested for and the timeout value is set to one tick.  All
-other cases round down to the nearest tick.
-
-Status Codes
-============
-
-All classes which form the C++ API are derived from the StatusCode
-class.  This class provides a common method for handling the status
-code returned by RTEMS.
-
-The last returned status code is held in the StatusCode object.  It
-can be queried directly, or as a boolean.  You can also obtain an
-error string for the status code.
-
-The setting of a status code is restricted to derived classes.
-
-The last status code attribute of the class is only ever set to an
-RTEMS defined status code.
-
-Event Class
-===========
-
-The event class allows users to send and receive events to and from
-tasks.
-
-Events objects are by default connected the RTEMS_SELF task.  A send
-or receive will operate on the task currently executing.
-
-An Event object can be connected to a task using the connect method.
-The name is the name of the task.  Connection can also be achieved by
-using the copy constructor or assignment operator.
-
-Events can be sent to a task by specifying an RTEMS task id, or by
-passing a reference to a Task object.
-
-Interrupt Class
-===============
-
-The interrupt class allows a protected virtual method of a derived
-class to be an interrupt handler.
-
-You derive from this class and provide the handler method.  The next
-interrupt after the vector is caught will cause the handler method to
-be entered.
-
-You can chain the interrupt by calling the chain method.  If the old
-handler is not an instance of this class the chain is passed as "void
-(*)(void)".  If it is an instance of this class, the handler method is
-directly called. (Chaining has not been tested)
-
-This class implements a table of pointers to the last instance to
-catch the interrupt.  A static method of the class catches the
-interrupt and re-directs the interrupt to the instance in the table.
-The re-direct adds a additional virtual function call and return to
-the overhead of the interrupt.  For a i386 type processor this is
-about 12 instructions including the function call entry.
-
-Message Queue Class
-===================
-
-The MessageQueue class allows message queue's to be created, or
-connected too.  Only the creator can destroy a message queue.
-
-The class implements, sending, urgent sending, broadcast, flushing,
-and receiving.
-
-Semaphore Class
-===============
-
-The Semaphore class allows semaphores to be created, or connected
-too.  Only the creator can destroy a semaphore.
-
-All types of semaphores can be created.
-
-(Not tested in the test code)
-
-Task Class
-==========
-
-The Task class allows tasks to be created, or connected too.  Only the
-creator can destroy a task.
-
-If creating a task, derive from the Task class and provide the body
-method.  The body method is the entry point for a task.  When
-connecting to an existing task, no body method is required to be
-provided.  It is how-ever required if you create a task.  This is not
-enforced by the compiler, how-ever the default body will be entered,
-and it contains no code.  The RTEMS default behaviour for a task that
-returns occurs.
-
-The mode of a task is controlled using the TaskMode class.
-
-The Task class allows you to start, restart, suspend, and resume a
-task.  You can control the priority, and access the note-pad
-registers.  The task can also be slept using the wake_after and
-wake_when methods.
-
-Currently the task argument is used to pass the 'this' pointer to the
-libraries default task body. The actual argument is held in the class
-instance and passed to the virtual body method. This means of passing
-the 'this' pointer through RTEMS to the default task body requires the
-actual task object to perform a restart call. This is not really the
-best solution to the problem. Another solution is to remove a notpad
-register, say 31 from the task and use it. This would mean any Task
-object could stop and restart a task how-ever a notpad register is
-lost. Any other ideas are welcome.
-
-Task Mode Class
-===============
-
-The TaskMode class allows you to query or change the mode of a task.
-The object only operates on the currently executing task.
-
-The standard flags defined in RTEMS are used.
-
-Methods are provided to operate on a group of modes which are required
-to be changed in a single operation.  The mode and mask is specified
-by ORing the required flags as documented in the RTEMS manual.
-
-Methods are provided for accessing and controlling a specific mode.
-The returned value will only contain the requested mode's flags, and
-only the that mode will be changed when setting a mode.
-
-Timer Class
-===========
-
-The Timer class allows timers to be created.  You cannot connect to an
-existing timer.
-
-You derive from the Timer class and provide the trigger method.  This
-method is called when the timer triggers or times out.
-
-You can request a single shot timer using the fire_after or fire_when
-methods, or a periodic timer by calling the repeat_file_at method.
-
-You cannot copy timer objects.
-
-Contact
-=======
-Send any question to me Chris Johns at cjohns at plessey.com.au, or the RTEMS
-mailing list.
-
-To Do
-=====
-
-1) Develop a complete test suite (under way, cjohns at plessey.com.au).
-
-2) Complete wrapping the remaining RTEMS C API.
-
-3) Provide light weight cout/cerr/clog classes based on printf for
-embedded systems.
-
-4) Provide a memory serial class which maps the <</>> operators onto
-raw memory in network byte order independent of CPU byte order.
-
-5) Fix the Task class so any Task object can restart a task.
-
-6) Provide some frame work classes which allow actor type objects that
-start in an ordered manner.
-
diff --git a/c/src/librtems++/configure.ac b/c/src/librtems++/configure.ac
deleted file mode 100644
index 085bb6a..0000000
--- a/c/src/librtems++/configure.ac
+++ /dev/null
@@ -1,35 +0,0 @@
-## Process this file with autoconf to produce a configure script.
-##
-
-AC_PREREQ([2.69])
-AC_INIT([rtems-c-src-librtems++],[_RTEMS_VERSION],[https://devel.rtems.org/newticket],[rtems-c-src-librtems++])
-AC_CONFIG_SRCDIR([include/rtems++])
-RTEMS_TOP(../../..)
-
-RTEMS_CANONICAL_TARGET_CPU
-
-AM_INIT_AUTOMAKE([no-define foreign subdir-objects 1.12.2])
-AM_MAINTAINER_MODE
-
-RTEMS_ENABLE_CXX
-
-RTEMS_ENV_RTEMSBSP
-
-RTEMS_CHECK_CXX(RTEMS_BSP)
-## check for g++
-RTEMS_PROG_CXX_FOR_TARGET
-RTEMS_CANONICALIZE_TOOLS
-
-AM_CONDITIONAL(HAS_CXX,test "$HAS_CPLUSPLUS" = "yes")
-
-AC_LANG_PUSH(C++)
-AC_CHECK_HEADER([cstring],[],[AC_MSG_ERROR([Required header cstring not found])])
-AC_CHECK_HEADER([cstdlib],[],[AC_MSG_ERROR([Required header cstdlib not found])])
-AC_LANG_POP
-
-RTEMS_PROJECT_ROOT
-RTEMS_AMPOLISH3
-
-# Explicitly list all Makefiles here
-AC_CONFIG_FILES([Makefile])
-AC_OUTPUT
diff --git a/c/src/librtems++/include/rtems++/rtemsEvent.h b/c/src/librtems++/include/rtems++/rtemsEvent.h
deleted file mode 100644
index c8f6cd4..0000000
--- a/c/src/librtems++/include/rtems++/rtemsEvent.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
-  ------------------------------------------------------------------------
-
-  COPYRIGHT (c) 1997
-  Objective Design Systems Ltd Pty (ODS)
-  All rights reserved (R) Objective Design Systems Ltd Pty
-
-  The license and distribution terms for this file may be found in the
-  file LICENSE in this distribution or at
-  http://www.rtems.org/license/LICENSE.
-
-  ------------------------------------------------------------------------
-
-  rtemsEvent class.
-
-  This class allows the user to send and receive RTEMS events to a task.
-
-  ------------------------------------------------------------------------ */
-
-#if !defined(_rtemsEvent_h_)
-#define _rtemsEvent_h_
-
-#include <rtems++/rtemsStatusCode.h>
-#include <rtems++/rtemsTask.h>
-
-/* ----
-    rtemsEvent
-*/
-
-class rtemsEvent
-  : public rtemsStatusCode
-{
-public:
-  // attribute a task can have
-
-  enum WaitMode { wait = RTEMS_WAIT,
-                  no_wait = RTEMS_NO_WAIT};
-  enum Condition { any = RTEMS_EVENT_ANY,
-                   all = RTEMS_EVENT_ALL};
-
-  // only the first 4 characters of the name are taken
-
-  // connect to a task
-  rtemsEvent(const char* name, uint32_t node = RTEMS_SEARCH_ALL_NODES);
-
-  // copy and default constructors
-  rtemsEvent(const rtemsEvent& event);
-  rtemsEvent();
-
-  virtual ~rtemsEvent();
-
-  // connect to an existing task object, will not be the owner
-  const rtemsEvent& operator=(const rtemsEvent& event);
-  virtual const rtems_status_code connect(const char *name,
-                                          const uint32_t node = RTEMS_SEARCH_ALL_NODES);
-
-  // send an event
-  inline const rtems_status_code send(const rtems_id task,
-                                      const rtems_event_set events);
-  inline const rtems_status_code send(const rtemsTask& task,
-                                      const rtems_event_set events) ;
-  inline const rtems_status_code send(const rtems_event_set events);
-
-  // receive an event, can block a task if no events waiting
-  inline const rtems_status_code receive(const rtems_event_set event_in,
-                                         rtems_event_set& event_out,
-                                         const rtems_interval micro_secs = 0,
-                                         const WaitMode wait = wait,
-                                         const Condition condition = any);
-
-  // object id, and name
-  const rtems_id task_id_is() const { return id; }
-  const rtems_name task_name_is() const { return name; }
-
-private:
-  // task name
-  rtems_name name;
-
-  // the rtems task id, object handle
-  rtems_id id;
-
-};
-
-const rtems_status_code rtemsEvent::send(const rtems_id task,
-                                         const rtems_event_set events)
-{
-  set_status_code(rtems_event_send(task, events));
-  return last_status_code();
-}
-
-const rtems_status_code rtemsEvent::send(const rtemsTask& task,
-                                         const rtems_event_set events)
-{
-  set_status_code(rtems_event_send(task.id_is(), events));
-  return last_status_code();
-}
-
-const rtems_status_code rtemsEvent::send(const rtems_event_set events)
-{
-  set_status_code(rtems_event_send(id, events));
-  return last_status_code();
-}
-
-const rtems_status_code rtemsEvent::receive(const rtems_event_set event_in,
-                                            rtems_event_set& event_out,
-                                            const rtems_interval micro_secs,
-                                            const WaitMode wait,
-                                            const Condition condition)
-{
-  rtems_interval usecs = micro_secs &&
-    (micro_secs < rtems_configuration_get_microseconds_per_tick()) ?
-    rtems_configuration_get_microseconds_per_tick() : micro_secs;
-  set_status_code(rtems_event_receive(event_in,
-                                      wait | condition,
-                                      RTEMS_MICROSECONDS_TO_TICKS(usecs),
-                                      &event_out));
-  return last_status_code();
-}
-
-#endif  // _rtemsEvent_h_
diff --git a/c/src/librtems++/include/rtems++/rtemsInterrupt.h b/c/src/librtems++/include/rtems++/rtemsInterrupt.h
deleted file mode 100644
index 75bc71f..0000000
--- a/c/src/librtems++/include/rtems++/rtemsInterrupt.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
-  ------------------------------------------------------------------------
-
-  COPYRIGHT (c) 1997
-  Objective Design Systems Ltd Pty (ODS)
-  All rights reserved (R) Objective Design Systems Ltd Pty
-
-  The license and distribution terms for this file may be found in the
-  file LICENSE in this distribution or at
-  http://www.rtems.org/license/LICENSE.
-
-  ------------------------------------------------------------------------
-
-  rtemsInterrupt class.
-
-  This class catches an interrupt and passes control to the user's
-  derived class throught the handler method.
-
-  The interrupt is released back to the previous handler when this
-  object destructs.
-
-  The old handler can be chained to after the interrupt is
-  caught. Watch the stack usage!
-
-  More than one instance of this class can catch the same vector. The
-  application will have to chain to the other objects if required. If
-  the old handler is not an instance of this class the chain is passed
-  as "void (*)(void)". If it is an instance of this class, the handler
-  method is directly called.
-
-  The isr catch extends the documented return codes with :
-
-    RTEMS_RESOURCE_IN_USE = interrupt already caught
-
-  ------------------------------------------------------------------------ */
-
-#if !defined(_rtemsInterrupt_h_)
-#define _rtemsInterrupt_h_
-
-#include <rtems++/rtemsStatusCode.h>
-
-/* ----
-    rtemsInterrupt
-*/
-
-class rtemsInterrupt
-  : public rtemsStatusCode
-{
-public:
-  rtemsInterrupt();
-  virtual ~rtemsInterrupt();
-
-  // catch the interrupt
-  virtual const rtems_status_code isr_catch(const rtems_vector_number vector);
-
-  // release the interrupt back to the previous handle
-  virtual const rtems_status_code release();
-
-  // the old handler
-  const rtems_isr_entry old_isr_handler() const { return old_handler; }
-
-protected:
-
-  // called after the interrupt is caught and it goes off
-  virtual void handler() = 0;
-
-  // chain to the previous handler,
-  inline void chain() const;
-
-private:
-  const rtemsInterrupt& operator=(const rtemsInterrupt& );
-  rtemsInterrupt(const rtemsInterrupt& );
-
-  // the vector caught
-  rtems_vector_number vector;
-
-  // true when the interrupt is caught
-  bool caught;
-
-  // returned when catching the interrupt
-  rtems_isr_entry old_handler;
-
-  // old interrupt table entry
-  rtemsInterrupt *old_interrupt;
-
-  // common handler to redirect the interrupts
-  static void redirector(rtems_vector_number vector);
-};
-
-void rtemsInterrupt::chain() const
-{
-  if (old_interrupt)
-    old_interrupt->handler();
-  else if (old_handler)
-    ((void(*)()) old_handler)();
-}
-
-#endif  // _rtemsInterrupt_h_
diff --git a/c/src/librtems++/include/rtems++/rtemsMessageQueue.h b/c/src/librtems++/include/rtems++/rtemsMessageQueue.h
deleted file mode 100644
index 6fc483e..0000000
--- a/c/src/librtems++/include/rtems++/rtemsMessageQueue.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
-  ------------------------------------------------------------------------
-
-  COPYRIGHT (c) 1997
-  Objective Design Systems Ltd Pty (ODS)
-  All rights reserved (R) Objective Design Systems Ltd Pty
-
-  The license and distribution terms for this file may be found in the
-  file LICENSE in this distribution or at
-  http://www.rtems.org/license/LICENSE.
-
-  ------------------------------------------------------------------------
-
-  rtemsMessageQueue class.
-
-  This class allows the user to create a RTEMS message queue, or to
-  access and manage an already existing message queue.
-
-  The first constructor with the message queue parameters creates a
-  RTEMS message queue object. The destructor of this object also
-  deletes the message queue object. The last status code should be
-  checked after construction to see if the create completed
-  successfully.
-
-  The second constructor connects to an existing message queue
-  object. The last status code should be checked after construction to
-  see if the message queue existed.
-
-  The third constructor is a copy constructor. Connects to an existing
-  object which is in scope.
-
-  The fourth constructor allows for the message queue to be created
-  after construction, or to connect to a message queue later.
-
-  ------------------------------------------------------------------------ */
-
-#if !defined(_rtemsMessageQueue_h_)
-#define _rtemsMessageQueue_h_
-
-#include <rtems++/rtemsStatusCode.h>
-
-/* ----
-    rtemsMessageQueue
-*/
-
-class rtemsMessageQueue
-  : public rtemsStatusCode
-{
-public:
-  // attribute a message queue can have
-  enum WaitMode { wait_by_fifo = RTEMS_FIFO,
-                  wait_by_priority = RTEMS_PRIORITY };
-  enum Scope { local = RTEMS_LOCAL,
-               global = RTEMS_GLOBAL };
-
-  // only the first 4 characters of the name are taken
-
-  // creates a message queue
-  rtemsMessageQueue(const char* name,
-                    const uint32_t count,
-                    const size_t max_message_size,
-                    const WaitMode wait_mode = wait_by_fifo,
-                    const Scope scope = local);
-
-  // connects to a message queue
-  rtemsMessageQueue(const char *name, const uint32_t node = RTEMS_SEARCH_ALL_NODES);
-
-  // copy and default constructors
-  rtemsMessageQueue(const rtemsMessageQueue& message_queue);
-  rtemsMessageQueue();
-
-  // only the creator's destructor will delete the actual object
-  virtual ~rtemsMessageQueue();
-
-  // create or destroy (delete) the message queue
-  virtual const rtems_status_code create(const char* name,
-                                         const uint32_t count,
-                                         const size_t max_message_size,
-                                         const WaitMode wait_mode = wait_by_fifo,
-                                         const Scope scope = local);
-  virtual const rtems_status_code destroy();
-
-  // connect to an existing message queue object, will not be the owner
-  const rtemsMessageQueue& operator=(const rtemsMessageQueue& message_queue);
-  virtual const rtems_status_code connect(const char *name,
-                                          const uint32_t node = RTEMS_SEARCH_ALL_NODES);
-
-  // send a message of size from the buffer
-  inline const rtems_status_code send(const void *buffer,
-                                      const size_t size);
-  inline const rtems_status_code urgent(const void *buffer,
-                                        const size_t size);
-  inline const rtems_status_code broadcast(const void *buffer,
-                                           const size_t size,
-                                           uint32_t& count);
-
-  // receive a message of size, the timeout is in micro-secs
-  inline const rtems_status_code receive(const void *buffer,
-                                         size_t& size,
-                                         rtems_interval micro_secs = RTEMS_NO_TIMEOUT,
-                                         bool wait = true);
-
-  // flush a message queue, returning the number of messages dropped
-  inline const rtems_status_code flush(uint32_t& size);
-
-  // object id, and name
-  const rtems_id id_is() const { return id; }
-  const rtems_name name_is() const { return name; }
-  const char *name_string() const { return name_str; }
-
-private:
-
-  // make this object reference an invalid RTEMS object
-  void make_invalid();
-
-  // message queue name
-  rtems_name name;
-  char name_str[5];
-
-  // owner, true if this object owns the message queue
-  // will delete the message queue when it destructs
-  bool owner;
-
-  // the rtems id, object handle
-  rtems_id id;
-};
-
-const rtems_status_code rtemsMessageQueue::send(const void *buffer,
-                                                const size_t size)
-{
-  return set_status_code(rtems_message_queue_send(id, (void*) buffer, size));
-}
-
-const rtems_status_code rtemsMessageQueue::urgent(const void *buffer,
-                                                  const size_t size)
-{
-  return set_status_code(rtems_message_queue_urgent(id, (void*) buffer, size));
-}
-
-const rtems_status_code rtemsMessageQueue::broadcast(const void *buffer,
-                                                     const size_t size,
-                                                     uint32_t& count)
-{
-  return set_status_code(rtems_message_queue_broadcast(id,
-                                                       (void*) buffer,
-                                                       size,
-                                                       &count));
-}
-
-const rtems_status_code rtemsMessageQueue::receive(const void *buffer,
-                                                   size_t& size,
-                                                   rtems_interval micro_secs,
-                                                   bool wait)
-{
-  rtems_interval usecs = micro_secs &&
-    (micro_secs < rtems_configuration_get_microseconds_per_tick()) ?
-    rtems_configuration_get_microseconds_per_tick() : micro_secs;
-  return set_status_code(rtems_message_queue_receive(id,
-                                                     (void*) buffer,
-                                                     &size,
-                                                     wait ? RTEMS_WAIT : RTEMS_NO_WAIT,
-                                                     RTEMS_MICROSECONDS_TO_TICKS(usecs)));
-}
-
-const rtems_status_code rtemsMessageQueue::flush(uint32_t& count)
-{
-  return set_status_code(rtems_message_queue_flush(id, &count));
-}
-
-#endif  // _rtemsMessageQueue_h_
diff --git a/c/src/librtems++/include/rtems++/rtemsSemaphore.h b/c/src/librtems++/include/rtems++/rtemsSemaphore.h
deleted file mode 100644
index 5ec38a6..0000000
--- a/c/src/librtems++/include/rtems++/rtemsSemaphore.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
-  ------------------------------------------------------------------------
-
-  COPYRIGHT (c) 1997
-  Objective Design Systems Ltd Pty (ODS)
-  All rights reserved (R) Objective Design Systems Ltd Pty
-
-  The license and distribution terms for this file may be found in the
-  file LICENSE in this distribution or at
-  http://www.rtems.org/license/LICENSE.
-
-  ------------------------------------------------------------------------
-
-  rtemsSemaphore class.
-
-  This class allows the user to create a RTEMS semaphore, or to use an
-  already existing semaphore. The type of semaphore is decitated by
-  the constructor used.
-
-  The first constructor with the semaphore parameters creates a RTEMS
-  semaphore object. The destructor of this object also deletes the
-  semaphore object. The last status code should be checked after
-  construction to see if the semaphore create was successfull.
-
-  The second constructor connects to an existing. The last status code
-  should be checked after construction to see if the semaphore
-  existed.
-
-  The third constructor is a copy constructor. Connects to an existing
-  object which is in scope.
-
-  ------------------------------------------------------------------------ */
-
-#if !defined(_rtemsSemaphore_h_)
-#define _rtemsSemaphore_h_
-
-#include <rtems++/rtemsStatusCode.h>
-
-/* ----
-    rtemsSemaphore
-*/
-
-class rtemsSemaphore
-  : public rtemsStatusCode
-{
-public:
-  // attribute a semaphore can have
-  enum WaitMode { wait_by_fifo = RTEMS_FIFO,
-                  wait_by_priority = RTEMS_PRIORITY };
-  enum Type { binary = RTEMS_BINARY_SEMAPHORE,
-              counting = RTEMS_COUNTING_SEMAPHORE };
-  enum Priority { no_priority_inherit = RTEMS_NO_INHERIT_PRIORITY,
-                  inherit_priority = RTEMS_INHERIT_PRIORITY };
-  enum Ceiling { no_priority_ceiling = RTEMS_NO_PRIORITY_CEILING,
-                 priority_ceiling = RTEMS_PRIORITY_CEILING };
-  enum Scope { local = RTEMS_LOCAL,
-               global = RTEMS_GLOBAL };
-
-  // only the first 4 characters of the name are taken,
-  // the counter must be set to 1 for binary semaphores
-
-  // create a semaphore object
-  rtemsSemaphore(const char* name,
-                 const Scope scope = local,
-                 const uint32_t counter = 1,
-                 const WaitMode wait_mode = wait_by_fifo,
-                 const Type type = binary,
-                 const Priority priority = no_priority_inherit,
-                 const Ceiling ceiling = no_priority_ceiling,
-                 const rtems_task_priority priority_ceiling = 0);
-
-  // connect to an existing semaphore object by name
-  rtemsSemaphore(const char *name, const uint32_t node);
-
-  // attach this object to an other objects semaphore
-  rtemsSemaphore(const rtemsSemaphore& semaphore);
-  rtemsSemaphore();
-
-  // only the creator's destructor will delete the actual object
-  virtual ~rtemsSemaphore();
-
-  // create or destroy (delete) a semaphore
-  virtual const rtems_status_code create(const char* name,
-                                         const Scope scope = local,
-                                         const uint32_t counter = 1,
-                                         const WaitMode wait_mode = wait_by_fifo,
-                                         const Type type = binary,
-                                         const Priority priority = no_priority_inherit,
-                                         const Ceiling ceiling = no_priority_ceiling,
-                                         const rtems_task_priority priority_ceiling = 0);
-  virtual const rtems_status_code destroy();
-
-  // connect to an existing semaphore object, will not be the owner
-  const rtemsSemaphore& operator=(const rtemsSemaphore& semaphore);
-  virtual const rtems_status_code connect(const char *name, uint32_t node);
-
-  // obtain the semaphore, timeout is in micro-seconds
-  inline const rtems_status_code obtain(bool wait = true,
-                                        const uint32_t micro_secs = RTEMS_NO_TIMEOUT);
-
-  // release the semaphore, blocks threads eligble
-  inline const rtems_status_code release();
-
-  // object id, and name
-  const rtems_id id_is() const { return id; }
-  const rtems_name name_is() const { return name; }
-  const char *name_string() const { return name_str; }
-
-private:
-
-  // make the object reference no valid RTEMS object
-  void make_invalid();
-
-  // semaphore name
-  rtems_name name;
-  char name_str[5];
-
-  // owner, true if this object owns the semaphore
-  // will delete the semaphore when it destructs
-  bool owner;
-
-  // the rtems id, object handle
-  rtems_id id;
-};
-
-const rtems_status_code rtemsSemaphore::obtain(const bool wait,
-                                               const uint32_t micro_secs)
-{
-  rtems_interval usecs = micro_secs &&
-    (micro_secs < rtems_configuration_get_microseconds_per_tick()) ?
-    rtems_configuration_get_microseconds_per_tick() : micro_secs;
-
-  return
-    set_status_code(rtems_semaphore_obtain(id,
-                                           wait ? RTEMS_WAIT : RTEMS_NO_WAIT,
-                                           RTEMS_MICROSECONDS_TO_TICKS(usecs)));
-}
-
-const rtems_status_code rtemsSemaphore::release(void)
-{
-  return set_status_code(rtems_semaphore_release(id));
-}
-
-#endif  // _rtemsSemaphore_h_
diff --git a/c/src/librtems++/include/rtems++/rtemsStatusCode.h b/c/src/librtems++/include/rtems++/rtemsStatusCode.h
deleted file mode 100644
index 8bc0609..0000000
--- a/c/src/librtems++/include/rtems++/rtemsStatusCode.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
-  ------------------------------------------------------------------------
-
-  COPYRIGHT (c) 1997
-  Objective Design Systems Ltd Pty (ODS)
-  All rights reserved (R) Objective Design Systems Ltd Pty
-
-  The license and distribution terms for this file may be found in the
-  file LICENSE in this distribution or at
-  http://www.rtems.org/license/LICENSE.
-
-  ------------------------------------------------------------------------
-
-  rtemsStatusCode controls and manages status codes from the RTEMS kernel.
-
-  ------------------------------------------------------------------------
-*/
-
-#if !defined(_rtemsStatusCode_h_)
-#define _rtemsStatusCode_h_
-
-#include <rtems.h>
-
-/* ----
-    rtemsStatusCode
-*/
-
-class rtemsStatusCode
-{
-public:
-
-  rtemsStatusCode() { last_status = RTEMS_NOT_CONFIGURED; }
-
-  const bool successful() { return last_status == RTEMS_SUCCESSFUL; }
-  const bool unsuccessful() { return last_status != RTEMS_SUCCESSFUL; }
-
-  // return the last status code
-  const rtems_status_code last_status_code() { return last_status; }
-
-  // return the last status as a string
-  const char *last_status_string();
-
-  const char *status_string(rtems_status_code status_code);
-
-protected:
-  const rtems_status_code set_status_code(const rtems_status_code status)
-  { return (last_status = status); }
-
-private:
-
-  // public at the moment, this might change
-  rtems_status_code last_status;
-};
-
-#endif  // _rtemsStatusCode_h_
diff --git a/c/src/librtems++/include/rtems++/rtemsTask.h b/c/src/librtems++/include/rtems++/rtemsTask.h
deleted file mode 100644
index 7d151c2..0000000
--- a/c/src/librtems++/include/rtems++/rtemsTask.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
-  ------------------------------------------------------------------------
-
-  COPYRIGHT (c) 1997
-  Objective Design Systems Ltd Pty (ODS)
-  All rights reserved (R) Objective Design Systems Ltd Pty
-
-  The license and distribution terms for this file may be found in the
-  file LICENSE in this distribution or at
-  http://www.rtems.org/license/LICENSE.
-
-  ------------------------------------------------------------------------
-
-  rtemsTask class.
-
-  This class allows the user to create a RTEMS task, or to access and
-  manage an already existing task.
-
-  The first constructor with the task parameters creates a RTEMS task
-  object. The destructor of this object also deletes the task
-  object. The last status code should be checked after construction to
-  see if the create completed successfully.
-
-  The second constructor connects to an existing task object. The last
-  status code should be checked after construction to see if the
-  task existed.
-
-  The third constructor is a copy constructor. Connects to an existing
-  object which is in scope.
-
-  The RTEMS id is set to self in the default construction.
-
-  The creation of the task object can be defered until after
-  construction. This allows for static task objects to be created.
-
-  RTEMS should be initialised before static constructors run, how-ever
-  threads will will not. You need to watch the start-order.
-
-  A task object can change state from an owner of a task to being
-  connected to a task.
-
-  Task objects connected to another task do not receive notification
-  when the task connected to changes state.
-
-  The sleep methods operate on the current thread not the task
-  reference by this object.
-
-  Mode control is through the rtemsTaskMode class.
-
-  ------------------------------------------------------------------------ */
-
-#if !defined(_rtemsTask_h_)
-#define _rtemsTask_h_
-
-#include <rtems++/rtemsStatusCode.h>
-
-/* ----
-    rtemsTask
-*/
-
-class rtemsTask
-  : public rtemsStatusCode
-{
-public:
-  enum FloatingPoint { fpoff = RTEMS_NO_FLOATING_POINT,
-                       fpon = RTEMS_FLOATING_POINT };
-  enum Scope { local = RTEMS_LOCAL,
-               global = RTEMS_GLOBAL };
-
-  // only the first 4 characters of the name are taken
-
-  // creates a task
-  rtemsTask(const char* name,
-            const rtems_task_priority initial_priority,
-            const uint32_t stack_size,
-            const rtems_mode preemption = RTEMS_NO_PREEMPT,
-            const rtems_mode timeslice = RTEMS_NO_TIMESLICE,
-            const rtems_mode asr = RTEMS_NO_ASR,
-            const rtems_interrupt_level interrupt_level = 0,
-            const FloatingPoint floating_point = fpoff,
-            const Scope scope = local);
-
-  // connects to a task
-  rtemsTask(const char *name, const uint32_t node = RTEMS_SEARCH_ALL_NODES);
-
-  // copy and default constructors
-  rtemsTask(const rtemsTask& task);
-  rtemsTask();
-
-  // only the creator's destructor will delete the actual object
-  virtual ~rtemsTask();
-
-  // create or destroy (delete) the task
-  virtual const rtems_status_code create(const char* name,
-                                         const rtems_task_priority initial_priority,
-                                         const uint32_t stack_size,
-                                         const rtems_mode preemption = RTEMS_NO_PREEMPT,
-                                         const rtems_mode timeslice = RTEMS_NO_TIMESLICE,
-                                         const rtems_mode asr = RTEMS_NO_ASR,
-                                         const rtems_interrupt_level interrupt_level = 0,
-                                         const FloatingPoint floating_point = fpoff,
-                                         const Scope scope = local);
-  virtual const rtems_status_code destroy();
-
-  // connect to an existing task object, will not be the owner
-  const rtemsTask& operator=(const rtemsTask& task);
-  virtual const rtems_status_code connect(const char *name,
-                                          const uint32_t node = RTEMS_SEARCH_ALL_NODES);
-
-  // run control
-  virtual const rtems_status_code start(const rtems_task_argument argument);
-  virtual const rtems_status_code restart(const rtems_task_argument argument);
-  virtual const rtems_status_code suspend();
-  virtual const rtems_status_code resume();
-
-  // sleep control, the timeout is in micro-seconds
-  virtual const rtems_status_code wake_after(const rtems_interval micro_secs);
-  virtual const rtems_status_code wake_when(const rtems_time_of_day& tod);
-
-  // priority control
-  const rtems_status_code get_priority(rtems_task_priority& priority);
-  const rtems_status_code set_priority(const rtems_task_priority priority);
-  const rtems_status_code set_priority(const rtems_task_priority priority,
-                                       rtems_task_priority& old_priority);
-
-  // object id, and name
-  const rtems_id id_is() const { return id; }
-  const rtems_name name_is() const { return name; }
-  const char *name_string() const { return name_str; }
-
-protected:
-
-  // task entry point
-  virtual void body(rtems_task_argument argument);
-
-private:
-
-  // make the object to point to RTEMS_SELF
-  void make_self();
-
-  // task name
-  rtems_name name;
-  char name_str[5];
-
-  // owner, true if this object owns the task
-  // will delete the task when it destructs
-  bool owner;
-
-  // the rtems id, object handle
-  rtems_id id;
-
-  // the argument for the task, this class uses the actual argument
-  // passed to RTEMS
-  rtems_task_argument argument;
-
-  // common entry point to the task
-  static rtems_task origin(rtems_task_argument argument);
-};
-
-#endif  // _rtemsTask_h_
diff --git a/c/src/librtems++/include/rtems++/rtemsTaskMode.h b/c/src/librtems++/include/rtems++/rtemsTaskMode.h
deleted file mode 100644
index a62c588..0000000
--- a/c/src/librtems++/include/rtems++/rtemsTaskMode.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
-  ------------------------------------------------------------------------
-
-  COPYRIGHT (c) 1997
-  Objective Design Systems Ltd Pty (ODS)
-  All rights reserved (R) Objective Design Systems Ltd Pty
-
-  The license and distribution terms for this file may be found in the
-  file LICENSE in this distribution or at
-  http://www.rtems.org/license/LICENSE.
-
-  ------------------------------------------------------------------------
-
-  rtemsTaskMode class.
-
-  This class allows the user to query or change the mode of an RTEMS
-  task.
-
-  This object only operates on the currently executing task.
-
-  The standard flags defined in RTEMS are used.
-
-  Methods are provided to operate on a group of modes which are
-  required to be changed in a single operation. The mode and mask is
-  specified by ORing the required flags.
-
-  Methods are provided for accessing and controlling a specific
-  mode. The returned value will only contain the requested mode's flags,
-  and only the that mode will be changed when setting a mode.
-
-  ------------------------------------------------------------------------ */
-
-#if !defined(_rtemsTaskMode_h_)
-#define _rtemsTaskMode_h_
-
-#include <rtems++/rtemsStatusCode.h>
-
-/* ----
-    rtemsTaskMode
-*/
-
-class rtemsTaskMode
-  : public rtemsStatusCode
-{
-public:
-
-  rtemsTaskMode() {};
-
-  // group mode control, OR the values together
-  inline const rtems_status_code get_mode(rtems_mode& mode);
-  inline const rtems_status_code set_mode(const rtems_mode mode,
-                                          const rtems_mode mask);
-  inline const rtems_status_code set_mode(const rtems_mode mode,
-                                          const rtems_mode mask,
-                                          rtems_mode& old_mode);
-
-  // preemption control
-  inline const rtems_status_code get_preemption_state(rtems_mode& preemption);
-  inline const rtems_status_code set_preemption_state(const rtems_mode preemption);
-  inline const rtems_status_code set_preemption_state(const rtems_mode preemption,
-                                                      rtems_mode& old_preemption);
-  inline const bool preemption_set(const rtems_mode preemption);
-
-  // timeslice control
-  inline const rtems_status_code get_timeslice_state(rtems_mode& timeslice);
-  inline const rtems_status_code set_timeslice_state(const rtems_mode timeslice);
-  inline const rtems_status_code set_timeslice_state(const rtems_mode timeslice,
-                                                     rtems_mode& old_timeslice);
-  inline const bool timeslice_set(const rtems_mode preemption);
-
-  // async-sub-routine control
-  inline const rtems_status_code get_asr_state(rtems_mode& asr);
-  inline const rtems_status_code set_asr_state(const rtems_mode asr);
-  inline const rtems_status_code set_asr_state(const rtems_mode asr,
-                                               rtems_mode& old_asr);
-  inline const bool asr_set(const rtems_mode preemption);
-
-  // interrupt mask control
-  inline const rtems_status_code get_interrupt_level(rtems_interrupt_level& level);
-  inline const rtems_status_code set_interrupt_level(const rtems_interrupt_level level);
-  inline const rtems_status_code set_interrupt_level(const rtems_interrupt_level level,
-                                                     rtems_interrupt_level& old_level);
-};
-
-const rtems_status_code rtemsTaskMode::get_mode(rtems_mode& mode)
-{
-  return set_status_code(rtems_task_mode(0, RTEMS_CURRENT_MODE, &mode));
-}
-
-const rtems_status_code rtemsTaskMode::set_mode(const rtems_mode mode,
-                                                const rtems_mode mask)
-{
-  rtems_mode old_mode;
-  return set_status_code(rtems_task_mode(mode, mask, &old_mode));
-}
-
-const rtems_status_code rtemsTaskMode::set_mode(const rtems_mode mode,
-                                                const rtems_mode mask,
-                                                rtems_mode& old_mode)
-{
-  return set_status_code(rtems_task_mode(mode, mask, &old_mode));
-}
-
-const rtems_status_code rtemsTaskMode::get_preemption_state(rtems_mode& preemption)
-{
-  set_status_code(rtems_task_mode(0, RTEMS_CURRENT_MODE, &preemption));
-  preemption &= RTEMS_PREEMPT_MASK;
-  return last_status_code();
-}
-
-const rtems_status_code rtemsTaskMode::set_preemption_state(const rtems_mode preemption)
-{
-  rtems_mode old_mode;
-  return set_status_code(rtems_task_mode(preemption, RTEMS_PREEMPT_MASK, &old_mode));
-}
-
-const rtems_status_code rtemsTaskMode::set_preemption_state(const rtems_mode preemption,
-                                                       rtems_mode& old_preemption)
-{
-  set_status_code(rtems_task_mode(preemption, RTEMS_PREEMPT_MASK, &old_preemption));
-  old_preemption &= RTEMS_PREEMPT_MASK;
-  return last_status_code();
-}
-
-const bool rtemsTaskMode::preemption_set(const rtems_mode preemption)
-{
-  return (preemption & RTEMS_PREEMPT_MASK) ? false : true;
-}
-
-const rtems_status_code rtemsTaskMode::get_timeslice_state(rtems_mode& timeslice)
-{
-  set_status_code(rtems_task_mode(0, RTEMS_CURRENT_MODE, &timeslice));
-  timeslice &= RTEMS_TIMESLICE_MASK;
-  return last_status_code();
-}
-
-const rtems_status_code rtemsTaskMode::set_timeslice_state(const rtems_mode timeslice)
-{
-  rtems_mode old_mode;
-  return set_status_code(rtems_task_mode(timeslice, RTEMS_TIMESLICE_MASK, &old_mode));
-}
-
-const rtems_status_code rtemsTaskMode::set_timeslice_state(const rtems_mode timeslice,
-                                                           rtems_mode& old_timeslice)
-{
-  set_status_code(rtems_task_mode(timeslice, RTEMS_TIMESLICE_MASK, &old_timeslice));
-  old_timeslice &= RTEMS_TIMESLICE_MASK;
-  return last_status_code();
-}
-
-const bool rtemsTaskMode::timeslice_set(const rtems_mode timeslice)
-{
-  return (timeslice & RTEMS_TIMESLICE_MASK) ? true : false;
-}
-
-const rtems_status_code rtemsTaskMode::get_asr_state(rtems_mode& asr)
-{
-  set_status_code(rtems_task_mode(0, RTEMS_CURRENT_MODE, &asr));
-  asr &= RTEMS_ASR_MASK;
-  return last_status_code();
-}
-
-const rtems_status_code rtemsTaskMode::set_asr_state(const rtems_mode asr)
-{
-  rtems_mode old_mode;
-  return set_status_code(rtems_task_mode(asr, RTEMS_ASR_MASK, &old_mode));
-}
-
-const rtems_status_code rtemsTaskMode::set_asr_state(const rtems_mode asr,
-                                                     rtems_mode& old_asr)
-{
-  set_status_code(rtems_task_mode(asr, RTEMS_ASR_MASK, &old_asr));
-  old_asr &= RTEMS_ASR_MASK;
-  return last_status_code();
-}
-
-const bool rtemsTaskMode::asr_set(const rtems_mode asr)
-{
-  return (asr & RTEMS_ASR_MASK) ? true : false;
-}
-
-const rtems_status_code rtemsTaskMode::get_interrupt_level(rtems_interrupt_level& level)
-{
-  rtems_mode mode;
-  set_status_code(rtems_task_mode(0, RTEMS_CURRENT_MODE, &mode));
-  level = mode & RTEMS_INTERRUPT_MASK;
-  return last_status_code();
-}
-
-const rtems_status_code rtemsTaskMode::set_interrupt_level(const rtems_interrupt_level level)
-{
-  rtems_mode old_mode;
-  return set_status_code(rtems_task_mode(level, RTEMS_INTERRUPT_MASK, &old_mode));
-}
-
-const rtems_status_code rtemsTaskMode::set_interrupt_level(rtems_interrupt_level level,
-                                                           rtems_interrupt_level& old_level)
-{
-  set_status_code(rtems_task_mode(level, RTEMS_INTERRUPT_MASK, &old_level));
-  old_level = old_level & RTEMS_INTERRUPT_MASK;
-  return last_status_code();
-}
-
-#endif  // _rtemsTaskMode_h_
diff --git a/c/src/librtems++/include/rtems++/rtemsTimer.h b/c/src/librtems++/include/rtems++/rtemsTimer.h
deleted file mode 100644
index c7d451b..0000000
--- a/c/src/librtems++/include/rtems++/rtemsTimer.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
-  ------------------------------------------------------------------------
-
-  COPYRIGHT (c) 1997
-  Objective Design Systems Ltd Pty (ODS)
-  All rights reserved (R) Objective Design Systems Ltd Pty
-
-  The license and distribution terms for this file may be found in the
-  file LICENSE in this distribution or at
-  http://www.rtems.org/license/LICENSE.
-
-  ------------------------------------------------------------------------
-
-  rtemsTimer class.
-
-  This class allows the user to create a RTEMS timer.
-
-  The trigger method is called when the timer expires. The method is
-  called using the thread which calls the RTEMS 'rtems_clock_tick'
-  method.
-
-  Timers are always local to a node.
-
-  ------------------------------------------------------------------------ */
-
-#if !defined(_rtemsTimer_h_)
-#define _rtemsTimer_h_
-
-#include <rtems++/rtemsStatusCode.h>
-
-/* ----
-    rtemsTimer
-*/
-
-class rtemsTimer
-  : public rtemsStatusCode
-{
-public:
-  // only the first 4 characters of the name are taken,
-
-  // create a timer object
-  rtemsTimer(const char* name);
-  rtemsTimer();
-
-  // destroies the actual object
-  virtual ~rtemsTimer();
-
-  // create or destroy (delete) the timer
-  virtual const rtems_status_code create(const char* name);
-  virtual const rtems_status_code destroy();
-
-  // timer control
-  inline const rtems_status_code fire_after(const rtems_interval micro_secs);
-  inline const rtems_status_code repeat_fire_at(const rtems_interval micro_secs);
-  inline const rtems_status_code fire_when(const rtems_time_of_day& when);
-
-  inline const rtems_status_code cancel();
-  inline const rtems_status_code reset();
-
-  // object id, and name
-  const rtems_id id_is() const { return id; }
-  const rtems_name name_is() const { return name; }
-  const char *name_string() const { return name_str; }
-
-protected:
-
-  // triggered method is called when the timer fires
-  virtual void triggered() = 0;
-
-private:
-  // not permitted
-  rtemsTimer(const rtemsTimer& timer);
-  rtemsTimer& operator=(const rtemsTimer& timer);
-
-  // make this object reference an invalid RTEMS object
-  void make_invalid();
-
-  // semaphore name
-  rtems_name name;
-  char name_str[5];
-
-  // repeat true restart the timer when it fires
-  bool repeat;
-
-  // the rtems id, object handle
-  rtems_id id;
-
-  // common timer handler
-  static void common_handler(rtems_id id, void *user_data);
-};
-
-const rtems_status_code rtemsTimer::fire_after(const rtems_interval micro_secs)
-{
-  repeat = false;
-  rtems_interval usecs = micro_secs &&
-    (micro_secs < rtems_configuration_get_microseconds_per_tick()) ?
-    rtems_configuration_get_microseconds_per_tick()  : micro_secs;
-  return set_status_code(rtems_timer_fire_after(id,
-                                                RTEMS_MICROSECONDS_TO_TICKS(usecs),
-                                                common_handler,
-                                                this));
-}
-
-const rtems_status_code rtemsTimer::repeat_fire_at(const rtems_interval micro_secs)
-{
-  repeat = true;
-  rtems_interval usecs = micro_secs &&
-    (micro_secs < rtems_configuration_get_microseconds_per_tick()) ?
-    rtems_configuration_get_microseconds_per_tick()  : micro_secs;
-  return set_status_code(rtems_timer_fire_after(id,
-                                                RTEMS_MICROSECONDS_TO_TICKS(usecs),
-                                                common_handler,
-                                                this));
-}
-
-const rtems_status_code rtemsTimer::fire_when(const rtems_time_of_day& when)
-{
-  return set_status_code(rtems_timer_fire_when(id,
-                                               (rtems_time_of_day*) &when,
-                                               common_handler,
-                                               this));
-}
-
-const rtems_status_code rtemsTimer::cancel()
-{
-  repeat = false;
-  return set_status_code(rtems_timer_cancel(id));
-}
-
-const rtems_status_code rtemsTimer::reset()
-{
-  return set_status_code(rtems_timer_reset(id));
-}
-
-#endif  // _rtemsTimer_h_
diff --git a/c/src/librtems++/preinstall.am b/c/src/librtems++/preinstall.am
deleted file mode 100644
index 2111689..0000000
--- a/c/src/librtems++/preinstall.am
+++ /dev/null
@@ -1,67 +0,0 @@
-## Automatically generated by ampolish3 - Do not edit
-
-if AMPOLISH3
-$(srcdir)/preinstall.am: Makefile.am
-	$(AMPOLISH3) $(srcdir)/Makefile.am > $(srcdir)/preinstall.am
-endif
-
-PREINSTALL_DIRS =
-DISTCLEANFILES = $(PREINSTALL_DIRS)
-
-all-am: $(PREINSTALL_FILES)
-
-PREINSTALL_FILES =
-CLEANFILES = $(PREINSTALL_FILES)
-
-all-local: $(TMPINSTALL_FILES)
-
-TMPINSTALL_FILES =
-CLEANFILES += $(TMPINSTALL_FILES)
-
-$(PROJECT_LIB)/$(dirstamp):
-	@$(MKDIR_P) $(PROJECT_LIB)
-	@: > $(PROJECT_LIB)/$(dirstamp)
-PREINSTALL_DIRS += $(PROJECT_LIB)/$(dirstamp)
-
-if HAS_CXX
-$(PROJECT_INCLUDE)/rtems++/$(dirstamp):
-	@$(MKDIR_P) $(PROJECT_INCLUDE)/rtems++
-	@: > $(PROJECT_INCLUDE)/rtems++/$(dirstamp)
-PREINSTALL_DIRS += $(PROJECT_INCLUDE)/rtems++/$(dirstamp)
-
-$(PROJECT_INCLUDE)/rtems++/rtemsEvent.h: include/rtems++/rtemsEvent.h $(PROJECT_INCLUDE)/rtems++/$(dirstamp)
-	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems++/rtemsEvent.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems++/rtemsEvent.h
-
-$(PROJECT_INCLUDE)/rtems++/rtemsInterrupt.h: include/rtems++/rtemsInterrupt.h $(PROJECT_INCLUDE)/rtems++/$(dirstamp)
-	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems++/rtemsInterrupt.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems++/rtemsInterrupt.h
-
-$(PROJECT_INCLUDE)/rtems++/rtemsMessageQueue.h: include/rtems++/rtemsMessageQueue.h $(PROJECT_INCLUDE)/rtems++/$(dirstamp)
-	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems++/rtemsMessageQueue.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems++/rtemsMessageQueue.h
-
-$(PROJECT_INCLUDE)/rtems++/rtemsSemaphore.h: include/rtems++/rtemsSemaphore.h $(PROJECT_INCLUDE)/rtems++/$(dirstamp)
-	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems++/rtemsSemaphore.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems++/rtemsSemaphore.h
-
-$(PROJECT_INCLUDE)/rtems++/rtemsStatusCode.h: include/rtems++/rtemsStatusCode.h $(PROJECT_INCLUDE)/rtems++/$(dirstamp)
-	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems++/rtemsStatusCode.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems++/rtemsStatusCode.h
-
-$(PROJECT_INCLUDE)/rtems++/rtemsTask.h: include/rtems++/rtemsTask.h $(PROJECT_INCLUDE)/rtems++/$(dirstamp)
-	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems++/rtemsTask.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems++/rtemsTask.h
-
-$(PROJECT_INCLUDE)/rtems++/rtemsTaskMode.h: include/rtems++/rtemsTaskMode.h $(PROJECT_INCLUDE)/rtems++/$(dirstamp)
-	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems++/rtemsTaskMode.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems++/rtemsTaskMode.h
-
-$(PROJECT_INCLUDE)/rtems++/rtemsTimer.h: include/rtems++/rtemsTimer.h $(PROJECT_INCLUDE)/rtems++/$(dirstamp)
-	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems++/rtemsTimer.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems++/rtemsTimer.h
-
-$(PROJECT_LIB)/librtems++.a: librtems++.a $(PROJECT_LIB)/$(dirstamp)
-	$(INSTALL_DATA) $< $(PROJECT_LIB)/librtems++.a
-TMPINSTALL_FILES += $(PROJECT_LIB)/librtems++.a
-endif
diff --git a/c/src/librtems++/src/rtemsEvent.cc b/c/src/librtems++/src/rtemsEvent.cc
deleted file mode 100644
index c121e16..0000000
--- a/c/src/librtems++/src/rtemsEvent.cc
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
-  ------------------------------------------------------------------------
-
-  COPYRIGHT (c) 1997
-  Objective Design Systems Ltd Pty (ODS)
-  All rights reserved (R) Objective Design Systems Ltd Pty
-  
-  The license and distribution terms for this file may be found in the
-  file LICENSE in this distribution or at
-  http://www.rtems.org/license/LICENSE.
-
-  ------------------------------------------------------------------------
-
-  See header file.
-
-  ------------------------------------------------------------------------
-*/
-
-#include <rtems++/rtemsEvent.h>
-
-/* ----
-    rtemsEvent
-*/
-
-rtemsEvent::rtemsEvent(const char *name_str, uint32_t node)
-  : name(rtems_build_name('S', 'E', 'L', 'F')),
-    id(RTEMS_SELF)
-{
-  connect(name_str, node);
-}
-
-rtemsEvent::rtemsEvent(const rtemsEvent& event)
-{
-  name = event.name;
-  id = event.id;
-}
-
-rtemsEvent::rtemsEvent()
-  : name(rtems_build_name('S', 'E', 'L', 'F')),
-    id(RTEMS_SELF)
-{
-}
-
-rtemsEvent::~rtemsEvent()
-{
-}
-
-const rtemsEvent& rtemsEvent::operator=(const rtemsEvent& event)
-{
-  name = event.name;
-  id = event.id;
-
-  return *this;
-}
-
-const rtems_status_code rtemsEvent::connect(const char *name_str,
-                                            const uint32_t node)
-{
-  name = rtems_build_name(name_str[0],
-                          name_str[1],
-                          name_str[2],
-                          name_str[3]);
-  
-  set_status_code(rtems_task_ident(name, node, &id));
-
-  if (unsuccessful())
-  {
-    name = rtems_build_name('S', 'E', 'L', 'F');
-    id = RTEMS_SELF;
-  }
-  
-  return last_status_code();
-}
diff --git a/c/src/librtems++/src/rtemsInterrupt.cc b/c/src/librtems++/src/rtemsInterrupt.cc
deleted file mode 100644
index fee91bd..0000000
--- a/c/src/librtems++/src/rtemsInterrupt.cc
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
-  ------------------------------------------------------------------------
-
-  COPYRIGHT (c) 1997
-  Objective Design Systems Ltd Pty (ODS)
-  All rights reserved (R) Objective Design Systems Ltd Pty
-  
-  The license and distribution terms for this file may be found in the
-  file LICENSE in this distribution or at
-  http://www.rtems.org/license/LICENSE.
-
-  ------------------------------------------------------------------------
-
-  See header file.
-
-  ------------------------------------------------------------------------
-*/
-
-#include <rtems++/rtemsInterrupt.h>
-
-#if (CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE)
-
-/* ----
-   Interrupt Table
-
-   This table is used to re-direct the call from RTEMS to a user
-   object
-*/
-
-static rtemsInterrupt **interrupt_table;
-
-// has the table been initialised
-static bool initialised = false;
-
-/* ----
-   rtemsInterrupt
-*/
-
-#include <cstdlib>
-
-rtemsInterrupt::rtemsInterrupt()
-  : vector(0),
-    caught(false),
-    old_handler(0),
-    old_interrupt(0)
-{
-  if (!initialised)
-  {
-    interrupt_table = (rtemsInterrupt **)
-        malloc(sizeof(rtemsInterrupt *) * CPU_INTERRUPT_NUMBER_OF_VECTORS);
-    for (rtems_vector_number vec = 0;
-         vec < CPU_INTERRUPT_NUMBER_OF_VECTORS;
-         vec++)
-    {
-      interrupt_table[vec] = 0;
-    }
-    initialised = true;
-  }
-}
-
-rtemsInterrupt::~rtemsInterrupt()
-{
-  release();
-}
-
-const rtems_status_code rtemsInterrupt::isr_catch(const rtems_vector_number vec)
-{
-  if (vec >= CPU_INTERRUPT_NUMBER_OF_VECTORS)
-    return set_status_code(RTEMS_INVALID_NUMBER);
-  
-  if (caught)
-    return set_status_code(RTEMS_RESOURCE_IN_USE);
-
-  old_interrupt = interrupt_table[vec];
-  interrupt_table[vec] = this;
-  vector = vec;
-  
-#if (CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE)
-  set_status_code(rtems_interrupt_catch(redirector,
-                                        vector,
-                                        &old_handler));
-#else
-  set_status_code(RTEMS_NOT_DEFINED);
-#endif
-  if (successful())
-    caught = true;
-  else
-  {
-    interrupt_table[vector] = old_interrupt;
-    old_interrupt = 0;
-    old_handler = 0;
-    vector = 0;
-  }
-  
-  return last_status_code();
-}
-
-const rtems_status_code rtemsInterrupt::release(void)
-{
-  if (caught)
-  {
-#if (CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE)
-    set_status_code(rtems_interrupt_catch(old_handler,
-                                          vector,
-                                          &old_handler));
-#else
-  set_status_code(RTEMS_NOT_DEFINED);
-#endif
-    interrupt_table[vector] = old_interrupt;
-    old_interrupt = 0;
-    old_handler = 0;
-    vector = 0;
-    caught = false;
-  }
-  else
-    set_status_code(RTEMS_SUCCESSFUL);
-  
-  return last_status_code();
-}
-
-void rtemsInterrupt::redirector(rtems_vector_number vector)
-{
-  if (interrupt_table[vector])
-    interrupt_table[vector]->handler();
-}
-#endif
diff --git a/c/src/librtems++/src/rtemsMessageQueue.cc b/c/src/librtems++/src/rtemsMessageQueue.cc
deleted file mode 100644
index 0fe8aa5..0000000
--- a/c/src/librtems++/src/rtemsMessageQueue.cc
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
-  ------------------------------------------------------------------------
-
-  COPYRIGHT (c) 1997
-  Objective Design Systems Ltd Pty (ODS)
-  All rights reserved (R) Objective Design Systems Ltd Pty
-  
-  The license and distribution terms for this file may be found in the
-  file LICENSE in this distribution or at
-  http://www.rtems.org/license/LICENSE.
-
-  ------------------------------------------------------------------------
-
-  See header file.
-
-  ------------------------------------------------------------------------
-*/
-
-#include <cstring>
-#include <rtems++/rtemsMessageQueue.h>
-
-/* ----
-   rtemsMessageQueue
-*/
-
-rtemsMessageQueue::rtemsMessageQueue(const char* mqname,
-                                     const uint32_t count,
-                                     const size_t max_message_size,
-                                     const WaitMode wait_mode,
-                                     const Scope scope)
-  : name(0),
-    owner(true),
-    id(0)
-{
-  strcpy(name_str, "NOID");
-  create(mqname, count, max_message_size, wait_mode, scope);
-}
-
-rtemsMessageQueue::rtemsMessageQueue(const char *mqname,
-                                     const uint32_t node)
-  : name(0),
-    owner(false),
-    id(0)
-{
-  strcpy(name_str, "NOID");
-  connect(mqname, node);
-}
-
-rtemsMessageQueue::rtemsMessageQueue(const rtemsMessageQueue& message_queue)
-  : name(0),
-    owner(false),
-    id(0)
-{
-  name = message_queue.name;
-  strcpy(name_str, message_queue.name_str);
-  id = message_queue.id;
-}
-
-rtemsMessageQueue::rtemsMessageQueue()
-  : name(0),
-    owner(false),
-    id(0)
-{
-  strcpy(name_str, "NOID");
-}
-
-rtemsMessageQueue::~rtemsMessageQueue()
-{
-  destroy();
-}
-
-void rtemsMessageQueue::make_invalid()
-{
-  strcpy(name_str, "NOID");
-  name = 0;
-  id = 0;
-  owner = false;
-}
-
-const rtems_status_code rtemsMessageQueue::create(const char* mqname,
-                                                  const uint32_t count,
-                                                  const size_t max_message_size,
-                                                  const WaitMode wait_mode,
-                                                  const Scope scope)
-{
-  if (id)
-    return set_status_code(RTEMS_ILLEGAL_ON_SELF);
-
-  owner = true;
-  
-  strcpy(name_str, "    ");
-  for (int c = 0; (c < 4) && (mqname[c] != '\0'); c++)
-    name_str[c] = mqname[c];
-  name = rtems_build_name(name_str[0],
-                          name_str[1],
-                          name_str[2],
-                          name_str[3]);
-  
-  set_status_code(rtems_message_queue_create(name,
-                                             count,
-                                             max_message_size,
-                                             scope | wait_mode,
-                                             &id));
-
-  if (unsuccessful())
-  {
-    make_invalid();
-  }
-  
-  return last_status_code();
-}
-
-const rtems_status_code rtemsMessageQueue::destroy()
-{
-  if (id && owner)
-  {
-    set_status_code(rtems_message_queue_delete(id));
-    make_invalid();
-  }
-  else
-    set_status_code(RTEMS_NOT_OWNER_OF_RESOURCE);
-  
-  return last_status_code();
-}
-
-const rtemsMessageQueue& rtemsMessageQueue::operator=(const rtemsMessageQueue& message_queue)
-{
-  if (!owner)
-  {
-    name = message_queue.name;
-    strcpy(name_str, message_queue.name_str);
-    id = message_queue.id;
-  }
-
-  return *this;
-}
-  
-const rtems_status_code rtemsMessageQueue::connect(const char *mqname,
-                                                   const uint32_t node)
-{
-  if (id && owner)
-    return set_status_code(RTEMS_UNSATISFIED);
-
-  // change state to not owner
-  owner = false;
-  
-  strcpy(name_str, "    ");
-  for (int c = 0; (c < 4) && (mqname[c] != '\0'); c++)
-    name_str[c] = mqname[c];
-  name = rtems_build_name(name_str[0],
-                          name_str[1],
-                          name_str[2],
-                          name_str[3]);
-  
-  set_status_code(rtems_message_queue_ident(name, node, &id));
-
-  if (unsuccessful())
-  {
-    make_invalid();
-  }
-  
-  return last_status_code();
-}
diff --git a/c/src/librtems++/src/rtemsSemaphore.cc b/c/src/librtems++/src/rtemsSemaphore.cc
deleted file mode 100644
index 04827b3..0000000
--- a/c/src/librtems++/src/rtemsSemaphore.cc
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
-  ------------------------------------------------------------------------
-
-  COPYRIGHT (c) 1997
-  Objective Design Systems Ltd Pty (ODS)
-  All rights reserved (R) Objective Design Systems Ltd Pty
-  
-  The license and distribution terms for this file may be found in the
-  file LICENSE in this distribution or at
-  http://www.rtems.org/license/LICENSE.
-
-  ------------------------------------------------------------------------
-
-  See header file.
-
-  ------------------------------------------------------------------------
-*/
-
-#include <cstring>
-#include <rtems++/rtemsSemaphore.h>
-
-/* ----
-    rtemsSemaphore
-*/
-
-rtemsSemaphore::rtemsSemaphore(const char* sname,
-                               const Scope scope,
-                               const uint32_t counter,
-                               const WaitMode wait_mode,
-                               const Type type,
-                               const Priority priority,
-                               const Ceiling ceiling,
-                               const rtems_task_priority priority_ceiling)
-  : name(0),
-    owner(true),
-    id(0)
-{
-  strcpy(name_str, "NOID");
-  create(sname,
-         scope,
-         counter,
-         wait_mode,
-         type,
-         priority,
-         ceiling,
-         priority_ceiling);  
-}
-
-rtemsSemaphore::rtemsSemaphore(const char *sname, const uint32_t node)
-  : name(0),
-    owner(false),
-    id(0)
-{
-  strcpy(name_str, "NOID");
-  connect(sname, node);
-}
-
-rtemsSemaphore::rtemsSemaphore(const rtemsSemaphore& semaphore)
-  : name(0),
-    owner(false),
-    id(0)
-{
-  name = semaphore.name;
-  strcpy(name_str, semaphore.name_str);
-  id = semaphore.id;
-}
-
-rtemsSemaphore::rtemsSemaphore()
-  : name(0),
-    owner(false),
-    id(0)
-{
-  strcpy(name_str, "NOID");
-}
-
-rtemsSemaphore::~rtemsSemaphore()
-{
-  destroy();
-}
-
-void rtemsSemaphore::make_invalid()
-{
-  strcpy(name_str, "NOID");
-  name = 0;
-  id = 0;
-  owner = false;
-}
-
-const rtems_status_code rtemsSemaphore::create(const char* sname,
-                                               const Scope scope,
-                                               const uint32_t counter,
-                                               const WaitMode wait_mode,
-                                               const Type type,
-                                               const Priority priority,
-                                               const Ceiling ceiling,
-                                               const rtems_task_priority priority_ceiling)
-{
-  if (id)
-    return set_status_code(RTEMS_ILLEGAL_ON_SELF);
-
-  owner = true;
-  
-  strcpy(name_str, "    ");
-  for (int c = 0; (c < 4) && (sname[c] != '\0'); c++)
-    name_str[c] = sname[c];
-  name = rtems_build_name(name_str[0],
-                          name_str[1],
-                          name_str[2],
-                          name_str[3]);
-  
-  set_status_code(rtems_semaphore_create(name,
-                                         counter,
-                                         scope | wait_mode | type | priority | ceiling,
-                                         priority_ceiling,
-                                         &id));
-
-  if (unsuccessful())
-  {
-    make_invalid();
-  }
-  
-  return last_status_code();
-}
-
-const rtems_status_code rtemsSemaphore::destroy()
-{
-  if (id && owner)
-  {
-    set_status_code(rtems_semaphore_delete(id));
-    make_invalid();
-  }
-  else
-    set_status_code(RTEMS_NOT_OWNER_OF_RESOURCE);
-  
-  return last_status_code();
-}
-
-const rtemsSemaphore& rtemsSemaphore::operator=(const rtemsSemaphore& semaphore)
-{
-  if (!owner)
-  {
-    name = semaphore.name;
-    id = semaphore.id;
-  }
-  return *this;
-}
-
-const rtems_status_code rtemsSemaphore::connect(const char *sname,
-                                                const uint32_t node)
-{
-  if (id && owner)
-    return set_status_code(RTEMS_UNSATISFIED);
-
-  // change state to not owner
-  owner = false;
-  
-  strcpy(name_str, "    ");
-  for (int c = 0; (c < 4) && (sname[c] != '\0'); c++)
-    name_str[c] = sname[c];
-  name = rtems_build_name(name_str[0],
-                          name_str[1],
-                          name_str[2],
-                          name_str[3]);
-  
-  set_status_code(rtems_semaphore_ident(name, node, &id));
-
-  if (unsuccessful())
-  {
-    make_invalid();
-  }
-  
-  return last_status_code();
-}
diff --git a/c/src/librtems++/src/rtemsStatusCode.cc b/c/src/librtems++/src/rtemsStatusCode.cc
deleted file mode 100644
index 476110b..0000000
--- a/c/src/librtems++/src/rtemsStatusCode.cc
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
-  ------------------------------------------------------------------------
-
-  COPYRIGHT (c) 1997
-  Objective Design Systems Ltd Pty (ODS)
-  All rights reserved (R) Objective Design Systems Ltd Pty
-  
-  The license and distribution terms for this file may be found in the
-  file LICENSE in this distribution or at
-  http://www.rtems.org/license/LICENSE.
-
-  ------------------------------------------------------------------------
-
-  See header file.
-
-  ------------------------------------------------------------------------
-*/
-
-#include <rtems++/rtemsStatusCode.h>
-
-/* ----
-    Status Code string table
-*/
-
-static const char *status_strings[RTEMS_STATUS_CODES_LAST + 1] =
-{
-  "RTEMS[00] successful completion",
-  "RTEMS[01] task exitted, returned from a thread",
-  "RTEMS[02] multiprocessing not configured",
-  "RTEMS[03] invalid object name",
-  "RTEMS[04] invalid object id",
-  "RTEMS[05] too many",
-  "RTEMS[06] timed out waiting",
-  "RTEMS[07] object deleted while waiting",
-  "RTEMS[08] specified size was invalid",
-  "RTEMS[09] address specified is invalid",
-  "RTEMS[10] number was invalid",
-  "RTEMS[11] item has not been initialized",
-  "RTEMS[12] resources still outstanding",
-  "RTEMS[13] request not satisfied",
-  "RTEMS[14] thread is in wrong state",
-  "RTEMS[15] thread already in state",
-  "RTEMS[16] illegal on calling thread",
-  "RTEMS[17] illegal for remote object",
-  "RTEMS[18] called from wrong environment",
-  "RTEMS[19] invalid thread priority",
-  "RTEMS[20] invalid date/time",
-  "RTEMS[21] invalid node id",
-  "RTEMS[22] directive not configured",
-  "RTEMS[23] not owner of resource",
-  "RTEMS[24] directive not implemented",
-  "RTEMS[25] RTEMS inconsistency detected",
-  "RTEMS[26] could not get enough memory"
-};
-
-/* ----
-    StatusCode
-*/
-
-const char *rtemsStatusCode::last_status_string()
-{
-  return status_string(last_status);
-}
-
-const char *rtemsStatusCode::status_string(rtems_status_code status_code)
-{
-  // mapped from "rtems/rtems/status.h"
-  if (status_code <= RTEMS_STATUS_CODES_LAST)
-  {
-    return status_strings[status_code];
-  }
-
-  return "unknown status code";
-}
-
diff --git a/c/src/librtems++/src/rtemsTask.cc b/c/src/librtems++/src/rtemsTask.cc
deleted file mode 100644
index c8607d2..0000000
--- a/c/src/librtems++/src/rtemsTask.cc
+++ /dev/null
@@ -1,274 +0,0 @@
-/*
-  ------------------------------------------------------------------------
-
-  COPYRIGHT (c) 1997
-  Objective Design Systems Ltd Pty (ODS)
-  All rights reserved (R) Objective Design Systems Ltd Pty
-  
-  The license and distribution terms for this file may be found in the
-  file LICENSE in this distribution or at
-  http://www.rtems.org/license/LICENSE.
-
-  ------------------------------------------------------------------------
-
-  See header file.
-
-  ------------------------------------------------------------------------
-*/
-
-#include <cstring>
-#include <rtems++/rtemsTask.h>
-// include to allow it to be compiled
-#include <rtems++/rtemsTaskMode.h>
-
-/* ----
-    rtemsTask
-*/
-
-rtemsTask::rtemsTask(const char* tname,
-                     const rtems_task_priority initial_priority,
-                     const uint32_t stack_size,
-                     const rtems_mode preemption,
-                     const rtems_mode timeslice,
-                     const rtems_mode asr,
-                     const rtems_interrupt_level interrupt_level,
-                     const FloatingPoint floating_point,
-                     const Scope scope)
-  : name(rtems_build_name('S', 'E', 'L', 'F')),
-    owner(true),
-    id(RTEMS_SELF),
-    argument(0)
-{
-  strcpy(name_str, "SELF");
-  create(tname,
-         initial_priority,
-         stack_size,
-         preemption,
-         timeslice,
-         asr,
-         interrupt_level,
-         floating_point,
-         scope);
-}
-
-rtemsTask::rtemsTask(const char *tname, uint32_t node)
-  : name(rtems_build_name('S', 'E', 'L', 'F')),
-    owner(false),
-    id(RTEMS_SELF),
-    argument(0)
-{
-  strcpy(name_str, "SELF");
-  connect(tname, node);
-}
-
-rtemsTask::rtemsTask(const rtemsTask& task)
-  : name(rtems_build_name('S', 'E', 'L', 'F')),
-    owner(false),
-    id(RTEMS_SELF),
-    argument(0)
-{
-  name = task.name;
-  strcpy(name_str, task.name_str);
-  argument = task.argument;
-  id = task.id;
-}
-
-rtemsTask::rtemsTask()
-  : name(rtems_build_name('S', 'E', 'L', 'F')),
-    owner(false),
-    id(RTEMS_SELF),
-    argument(0)
-{
-  strcpy(name_str, "SELF");
-}
-
-rtemsTask::~rtemsTask()
-{
-  destroy();
-}
-
-void rtemsTask::make_self()
-{
-  strcpy(name_str, "SELF");
-  name = rtems_build_name('S', 'E', 'L', 'F');
-  id = RTEMS_SELF;
-  owner = false;
-}
-
-const rtems_status_code rtemsTask::create(const char* tname,
-                                          const rtems_task_priority initial_priority,
-                                          const uint32_t stack_size,
-                                          const rtems_mode preemption,
-                                          const rtems_mode timeslice,
-                                          const rtems_mode asr,
-                                          const rtems_interrupt_level interrupt_level,
-                                          const FloatingPoint floating_point,
-                                          const Scope scope)
-{
-  if (id)
-    return set_status_code(RTEMS_ILLEGAL_ON_SELF);
-
-  owner = true;
-
-  strcpy(name_str, "    ");
-  for (int c = 0; (c < 4) && (tname[c] != '\0'); c++)
-    name_str[c] = tname[c];
-  name = rtems_build_name(name_str[0],
-                          name_str[1],
-                          name_str[2],
-                          name_str[3]);
-
-  // protect the values that be set as the parameters are not enums
-  set_status_code(rtems_task_create(name,
-                                    initial_priority,
-                                    stack_size,
-                                    (preemption & RTEMS_PREEMPT_MASK) |
-                                    (timeslice & RTEMS_TIMESLICE_MASK) |
-                                    (asr & RTEMS_ASR_MASK) |
-                                    (interrupt_level & RTEMS_INTERRUPT_MASK),
-                                    floating_point | scope,
-                                    &id));
-
-  if (unsuccessful())
-  {
-    make_self();
-  }
-  
-  return last_status_code();
-}
-
-const rtems_status_code rtemsTask::destroy()
-{
-  if (id && owner)
-  {
-    set_status_code(rtems_task_delete(id));
-    make_self();
-  }
-  else
-    set_status_code(RTEMS_NOT_OWNER_OF_RESOURCE);
-  
-  return last_status_code();
-}
-  
-const rtemsTask& rtemsTask::operator=(const rtemsTask& task)
-{
-  if (!owner)
-  {
-    name = task.name;
-    strcpy(name_str, task.name_str);
-    argument = task.argument;
-    id = task.id;
-  }
-  return *this;
-}
-
-const rtems_status_code rtemsTask::connect(const char *sname,
-                                           const uint32_t node)
-{
-  if (id && owner)
-    return set_status_code(RTEMS_UNSATISFIED);
-
-  // change state to not owner
-  owner = false;
-  
-  strcpy(name_str, "    ");
-  for (int c = 0; (c < 4) && (sname[c] != '\0'); c++)
-    name_str[c] = sname[c];
-  name = rtems_build_name(name_str[0],
-                          name_str[1],
-                          name_str[2],
-                          name_str[3]);
-  
-  set_status_code(rtems_task_ident(name, node, &id));
-
-  if (unsuccessful())
-  {
-    make_self();
-  }
-  
-  return last_status_code();
-}
-
-const rtems_status_code rtemsTask::start(const rtems_task_argument arg)
-{
-  if (owner)
-  {
-    argument = arg;
-    // pass the this pointer as the argument
-    set_status_code(rtems_task_start(id,
-                                     origin,
-                                     (rtems_task_argument) this));
-  }
-  else
-    set_status_code(RTEMS_NOT_OWNER_OF_RESOURCE);
-  return last_status_code();
-}
-      
-const rtems_status_code rtemsTask::restart(const rtems_task_argument arg)
-{
-  if (owner)
-  {
-    argument = arg;
-    set_status_code(rtems_task_restart(id, (rtems_task_argument) this));
-  }
-  else
-    set_status_code(RTEMS_NOT_OWNER_OF_RESOURCE);
-  
-  return last_status_code();
-}
-  
-const rtems_status_code rtemsTask::suspend()
-{
-  return set_status_code(rtems_task_suspend(id));
-}
-
-const rtems_status_code rtemsTask::resume()
-{
-  return set_status_code(rtems_task_resume(id));
-}
-
-const rtems_status_code rtemsTask::wake_after(const rtems_interval micro_secs)
-{
-  rtems_interval usecs =
-    (micro_secs < rtems_configuration_get_microseconds_per_tick()) ?
-    rtems_configuration_get_microseconds_per_tick() : micro_secs;
-  return set_status_code(rtems_task_wake_after(RTEMS_MICROSECONDS_TO_TICKS(usecs)));
-}
-
-const rtems_status_code rtemsTask::wake_when(const rtems_time_of_day& tod)
-{
-  return set_status_code(rtems_task_wake_when((rtems_time_of_day*) &tod));
-}
-
-const rtems_status_code rtemsTask::get_priority(rtems_task_priority& priority)
-{
-  return set_status_code(rtems_task_set_priority(id,
-                                                 RTEMS_CURRENT_PRIORITY,
-                                                 &priority));
-}
-
-const rtems_status_code rtemsTask::set_priority(const rtems_task_priority priority)
-{
-  rtems_task_priority old_priority;
-  return set_status_code(rtems_task_set_priority(id,
-                                                 priority,
-                                                 &old_priority));
-}
-
-const rtems_status_code rtemsTask::set_priority(const rtems_task_priority priority,
-                                                rtems_task_priority& old_priority)
-{
-  return set_status_code(rtems_task_set_priority(id,
-                                                 priority,
-                                                 &old_priority));
-}
-
-void rtemsTask::body(rtems_task_argument )
-{
-}
-
-rtems_task rtemsTask::origin(rtems_task_argument argument)
-{
-  rtemsTask *task = (rtemsTask*) argument;
-  task->body(task->argument);
-}
diff --git a/c/src/librtems++/src/rtemsTimer.cc b/c/src/librtems++/src/rtemsTimer.cc
deleted file mode 100644
index 899c3f6..0000000
--- a/c/src/librtems++/src/rtemsTimer.cc
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
-  ------------------------------------------------------------------------
-
-  COPYRIGHT (c) 1997
-  Objective Design Systems Ltd Pty (ODS)
-  All rights reserved (R) Objective Design Systems Ltd Pty
-  
-  The license and distribution terms for this file may be found in the
-  file LICENSE in this distribution or at
-  http://www.rtems.org/license/LICENSE.
-
-  ------------------------------------------------------------------------
-
-  See header file.
-
-  ------------------------------------------------------------------------
-*/
-
-#include <cstring>
-#include <rtems++/rtemsTimer.h>
-
-/* ----
-    rtemsTimer
-*/
-
-rtemsTimer::rtemsTimer(const char* tname)
-  : name(0),
-    repeat(false),
-    id(0)
-{
-  strcpy(name_str, "    ");
-  create(tname);
-}
-
-rtemsTimer::rtemsTimer()
-  : name(0),
-    repeat(false),
-    id(0)
-{
-  strcpy(name_str, "    ");
-}
-
-rtemsTimer::~rtemsTimer()
-{
-  destroy();
-}
-
-void rtemsTimer::make_invalid()
-{
-  strcpy(name_str, "    ");
-  name = 0;
-  id = 0;
-  repeat = false;
-}
-const rtems_status_code rtemsTimer::create(const char* tname)
-{
-  if (id)
-    return set_status_code(RTEMS_ILLEGAL_ON_SELF);
-
-  strcpy(name_str, "    ");
-  for (int c = 0; (c < 4) && (tname[c] != '\0'); c++)
-    name_str[c] = tname[c];
-  name = rtems_build_name(name_str[0],
-                          name_str[1],
-                          name_str[2],
-                          name_str[3]);
-  
-  set_status_code(rtems_timer_create(name, &id));
-
-  if (unsuccessful())
-  {
-    make_invalid();
-  }
-  
-  return last_status_code();
-}
-
-const rtems_status_code rtemsTimer::destroy()
-{
-  if (id)
-  {
-    set_status_code(rtems_timer_delete(id));
-    make_invalid();
-  }
-  else
-    set_status_code(RTEMS_NOT_OWNER_OF_RESOURCE);
-  
-  return last_status_code();
-}
-  
-void rtemsTimer::common_handler(rtems_id , void *user_data)
-{
-  rtemsTimer *timer = (rtemsTimer*) user_data;
-  
-  if (timer->repeat)
-    timer->reset();
-
-  timer->triggered();
-}
diff --git a/testsuites/libtests/Makefile.am b/testsuites/libtests/Makefile.am
index 4eae14e..ed5eb07 100644
--- a/testsuites/libtests/Makefile.am
+++ b/testsuites/libtests/Makefile.am
@@ -30,7 +30,7 @@ _SUBDIRS += bspcmdline01 cpuuse devfs01 devfs02 devfs03 devfs04 \
     putenvtest monitor monitor02 rtmonuse stackchk stackchk01 \
     termios termios01 termios02 termios03 termios04 termios05 \
     termios06 termios07 termios08 \
-    rtems++ tztest block01 block02 block03 block04 block05 block06 block07 \
+    tztest block01 block02 block03 block04 block05 block06 block07 \
     block08 block09 block10 block11 block12 stringto01 \
     tar01 tar02 tar03 \
     math mathf mathl complex \
diff --git a/testsuites/libtests/configure.ac b/testsuites/libtests/configure.ac
index 82f2d80..88dd58f 100644
--- a/testsuites/libtests/configure.ac
+++ b/testsuites/libtests/configure.ac
@@ -139,7 +139,6 @@ monitor02/Makefile
 mouse01/Makefile
 uid01/Makefile
 putenvtest/Makefile
-rtems++/Makefile
 rtmonuse/Makefile
 stackchk/Makefile
 stackchk01/Makefile
diff --git a/testsuites/libtests/rtems++/Init.cc b/testsuites/libtests/rtems++/Init.cc
deleted file mode 100644
index 88bb3bb..0000000
--- a/testsuites/libtests/rtems++/Init.cc
+++ /dev/null
@@ -1,66 +0,0 @@
-/*  Init
- *
- *  This routine is the initialization task for this test program.
- *
- *  Input parameters:
- *    argument - task argument
- *
- *  Output parameters:  NONE
- *
- *  COPYRIGHT (c) 1997
- *  Objective Design Systems Ltd Pty (ODS)
- *  All rights reserved (R) Objective Design Systems Ltd Pty
- *
- *  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.org/license/LICENSE.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#define CONFIGURE_INIT
-#include "System.h"
-
-const char rtems_test_name[] = "RTEMS++";
-
-// make global so it lasts past the Init task's stack's life time
-Task1 task_1;
-
-rtems_task Init(rtems_task_argument )
-{
-  TEST_BEGIN();
-
-  printf( "INIT - Task.create() - " );
-  task_1.create("TA1 ", 0, RTEMS_MINIMUM_STACK_SIZE);
-  printf("%s\n", task_1.last_status_string());
-
-  printf( "INIT - Task.create() - " );
-  task_1.create("TA1 ", 10, RTEMS_MINIMUM_STACK_SIZE * 6);
-  printf("%s\n", task_1.last_status_string());
-
-  printf( "INIT - Task.create() - " );
-  task_1.create("TA1 ", 10, RTEMS_MINIMUM_STACK_SIZE * 6);
-  printf("%s\n", task_1.last_status_string());
-
-  printf( "INIT - Task.restart() - " );
-  task_1.restart(0);
-  printf("%s\n", task_1.last_status_string());
-
-  printf( "INIT - Task.start(0xDEADDEAD) - " );
-  task_1.start(0xDEADDEAD);
-  printf("%s\n", task_1.last_status_string());
-
-  printf("INIT - Destroy it's self\n");
-
-  // needs to be in C, no C++ object owns the Init task
-  rtems_status_code status  = rtems_task_delete( RTEMS_SELF );
-  directive_failed( status, "rtems_task_delete of RTEMS_SELF" );
-}
-
-
-
diff --git a/testsuites/libtests/rtems++/Makefile.am b/testsuites/libtests/rtems++/Makefile.am
deleted file mode 100644
index f1a230a..0000000
--- a/testsuites/libtests/rtems++/Makefile.am
+++ /dev/null
@@ -1,27 +0,0 @@
-
-if HAS_CXX
-rtems_tests_PROGRAMS = rtems++
-rtems___SOURCES = Init.cc Task1.cc Task2.cc Task3.cc System.h
-endif
-
-dist_rtems_tests_DATA = rtems++.scn
-dist_rtems_tests_DATA += rtems++.doc
-
-include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP at .cfg
-include $(top_srcdir)/../automake/compile.am
-include $(top_srcdir)/../automake/leaf.am
-
-if HAS_CXX
-rtems___LDLIBS = -lrtems++
-AM_CPPFLAGS += -I$(top_srcdir)/../support/include
-
-
-LINK_OBJS = $(rtems___OBJECTS)
-LINK_LIBS = $(rtems___LDLIBS)
-
-rtems++$(EXEEXT): $(rtems___OBJECTS) $(rtems___DEPENDENCIES)
-	@rm -f rtems++$(EXEEXT)
-	$(make-cxx-exe)
-endif
-
-include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/libtests/rtems++/System.h b/testsuites/libtests/rtems++/System.h
deleted file mode 100644
index e787fe2..0000000
--- a/testsuites/libtests/rtems++/System.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/*  system.h
- *
- *  This include file contains information that is included in every
- *  function in the test set.
- *
- *  COPYRIGHT (c) 1989-2008.
- *  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.org/license/LICENSE.
- */
-
-#include <tmacros.h>
-#include <rtems++/rtemsEvent.h>
-#include <rtems++/rtemsMessageQueue.h>
-#include <rtems++/rtemsTask.h>
-#include <rtems++/rtemsTaskMode.h>
-
-/* functions */
-
-extern "C"
-{
-  rtems_task Init(
-    rtems_task_argument argument
-    );
-}
-
-rtems_timer_service_routine Delayed_routine(
-  rtems_id  ignored_id,
-  void     *ignored_address
-);
-
-class Task1
-  : public rtemsTask
-{
-  void print_mode(rtems_mode mode, rtems_mode mask);
-
-  void screen1(void);
-  void screen2(void);
-  void screen3(void);
-  void screen4(void);
-  void screen5(void);
-  void screen6(void);
-
-protected:
-  virtual void body(rtems_task_argument argument);
-
-public:
-};
-
-class Task2
-  : public rtemsTask
-{
-  void screen4(void);
-
-protected:
-  virtual void body(rtems_task_argument argument);
-
-public:
-  Task2(const char* name,
-        const rtems_task_priority initial_priority,
-        const uint32_t   stack_size);
-};
-
-class Task3
-  : public rtemsTask
-{
-  void screen6(void);
-
-protected:
-  virtual void body(rtems_task_argument argument);
-
-public:
-  Task3(const char* name,
-        const rtems_task_priority initial_priority,
-        const uint32_t   stack_size);
-};
-
-class EndTask
-  : public rtemsTask
-{
-protected:
-  virtual void body(rtems_task_argument argument);
-
-public:
-  EndTask(const char* name,
-          const rtems_task_priority initial_priority,
-          const uint32_t   stack_size);
-};
-
-#if 0
-
-//
-// Not sure this can be tested in a generic manner, any ideas anyone !!
-//
-
-class Service_routine
-  : public rtemsInterrupt
-{
-};
-
-class Io_during_interrupt
-  : pubic rtemsTimer
-{
-
-};
-
-#endif
-
-/* configuration information */
-
-#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
-#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
-
-#define CONFIGURE_MAXIMUM_TASKS               8
-#define CONFIGURE_MAXIMUM_TIMERS              1
-#define CONFIGURE_MAXIMUM_SEMAPHORES          2
-#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES      1
-#define CONFIGURE_MAXIMUM_PARTITIONS          1
-#define CONFIGURE_MAXIMUM_REGIONS             1
-#define CONFIGURE_MAXIMUM_PERIODS             1
-#define CONFIGURE_MAXIMUM_USER_EXTENSIONS     0
-#define CONFIGURE_TICKS_PER_TIMESLICE       100
-
-#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
-
-#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
-#define CONFIGURE_INIT_TASK_STACK_SIZE      (4 * RTEMS_MINIMUM_STACK_SIZE)
-
-#define CONFIGURE_EXTRA_TASK_STACKS         (13 * RTEMS_MINIMUM_STACK_SIZE)
-
-#include <rtems/confdefs.h>
-
-/* end of include file */
diff --git a/testsuites/libtests/rtems++/Task1.cc b/testsuites/libtests/rtems++/Task1.cc
deleted file mode 100644
index 02c1746..0000000
--- a/testsuites/libtests/rtems++/Task1.cc
+++ /dev/null
@@ -1,631 +0,0 @@
-/*  Task1
- *
- *  This task is the main line for the test. It creates other
- *  tasks which can create
- *
- *  Input parameters:
- *    argument - task argument
- *
- *  Output parameters:  NONE
- *
- *  COPYRIGHT (c) 1997
- *  Objective Design Systems Ltd Pty (ODS)
- *  All rights reserved (R) Objective Design Systems Ltd Pty
- *
- *  COPYRIGHT (c) 1989-2007.
- *  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.org/license/LICENSE.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include "System.h"
-
-/* c.f. cpukit/score/include/rtems/score/priority.h */
-#define PRIiPriority_Control PRIi32
-/* rtems_task_priority is a typedef to Priority_Control */
-#define PRIirtems_task_priority PRIiPriority_Control
-
-/* c.f. cpukit/rtems/include/rtems/rtems/modes.h */
-#define PRIXModes_Control PRIX32
-#define PRIiModes_Control PRIi32
-/* rtems_mode is a typedef to Modes_Control */
-#define PRIXrtems_mode PRIXModes_Control
-#define PRIirtems_mode PRIiModes_Control
-
-/* c.f. cpukit/score/include/rtems/score/isr.h */
-#define PRIiISR_Level PRIi32
-/* rtems_interrupt_level is a typedef to ISR_Level */
-#define PRIirtems_interrupt_level PRIiISR_Level
-
-void Task1::body(rtems_task_argument argument)
-{
-  rtems_test_pause_and_screen_number(1);
-
-  printf(" START Task Class test\n");
-
-  printf("%s - test argument - ", name_string());
-  if (argument != 0xDEADDEAD)
-    printf("argument is not 0xDEADDEAD\n");
-  else
-    printf("argument matched\n");
-
-  screen1();
-  rtems_test_pause_and_screen_number(2);
-
-  screen2();
-  rtems_test_pause_and_screen_number(3);
-
-  screen3();
-  rtems_test_pause_and_screen_number(4);
-
-  screen4();
-  rtems_test_pause_and_screen_number(5);
-
-  screen5();
-  rtems_test_pause_and_screen_number(6);
-
-  screen6();
-
-  // do not call exit(0) from this thread as this object is static
-  // the static destructor call delete the task which is calling exit
-  // so exit never completes
-
-  EndTask end_task("ENDT", (rtems_task_priority) 1, RTEMS_MINIMUM_STACK_SIZE * 6);
-  end_task.start(0);
-
-  rtemsEvent block_me;
-  rtems_event_set out;
-
-  block_me.receive(RTEMS_SIGNAL_0, out);
-
-  printf("**** TASK 1 did not block ????\n");
-}
-
-void Task1::screen1(void)
-{
-  // create two local task objects to connect to this task
-  rtemsTask local_task_1 = *this;
-  rtemsTask local_task_2;
-
-  local_task_2 = *this;
-
-  // check the copy constructor works
-  printf("%s - copy constructor - ", name_string());
-  if (local_task_1.id_is() == id_is())
-    printf("local and this id's match\n");
-  else
-    printf("local and this id's do not match\n");
-
-  printf("%s - copy constructor - ", name_string());
-  if (local_task_1.name_is() == name_is())
-    printf("local and this name's match\n");
-  else
-    printf("local and this name's do not match\n");
-
-  // check the copy operator works
-  printf("%s - copy operator - ", name_string());
-  if (local_task_2.id_is() == id_is())
-    printf("local and this id's match\n");
-  else
-    printf("local and this id's do not match\n");
-  printf("%s - copy operator - ", name_string());
-  if (local_task_2.name_is() == name_is())
-    printf("local and this name's match\n");
-  else
-    printf("local and this name's do not match\n");
-
-  // check that the owner of the id cannot delete this task
-  printf("%s - not owner destroy's task - ", local_task_1.name_string());
-  local_task_1.destroy();
-  printf("%s\n", local_task_1.last_status_string());
-
-  // connect to a valid task
-  printf("%s - connect to a local valid task name - ", local_task_2.name_string());
-  local_task_2.connect("TA1 ", RTEMS_SEARCH_ALL_NODES);
-  printf("%s\n", local_task_2.last_status_string());
-
-  // connect to an invalid task
-  printf("%s - connect to an invalid task name - ", local_task_2.name_string());
-  local_task_2.connect("BADT", RTEMS_SEARCH_ALL_NODES);
-  printf("%s\n", local_task_2.last_status_string());
-
-  // connect to a task an invalid node
-  printf("%s - connect to a task on an invalid node - ", local_task_2.name_string());
-  local_task_2.connect("BADT", 10);
-  printf("%s\n", local_task_2.last_status_string());
-
-  // restart this task
-  printf("%s - restart from a non-owner - ", name_string());
-  local_task_1.restart(0);
-  printf("%s\n", local_task_1.last_status_string());
-}
-
-void Task1::screen2(void)
-{
-  // wake after using this object
-
-  printf("%s - wake after 0 secs - ", name_string());
-  wake_after(0);
-  printf("%s\n", last_status_string());
-
-  printf("%s - wake after 500 msecs - ", name_string());
-  wake_after(500000);
-  printf("%s\n", last_status_string());
-
-  printf("%s - wake after 5 secs - ", name_string());
-  wake_after(5000000);
-  printf("%s\n", last_status_string());
-
-  printf("%s - wake when - to do\n", name_string());
-
-  rtemsTask task_1 = *this;
-
-  // wake after using a connected object
-
-  printf("%s - connected object wake after 0 secs - ", task_1.name_string());
-  task_1.wake_after(0);
-  printf("%s\n", task_1.last_status_string());
-
-  printf("%s - connected object wake after 500 msecs - ", task_1.name_string());
-  task_1.wake_after(500000);
-  printf("%s\n", task_1.last_status_string());
-
-  printf("%s - connected object wake after 5 secs - ", task_1.name_string());
-  task_1.wake_after(5000000);
-  printf("%s\n", task_1.last_status_string());
-
-  printf("%s - connected object wake when - to do\n", task_1.name_string());
-
-  rtemsTask task_2;
-
-  // wake after using a self object
-
-  printf("%s - self object wake after 0 secs - ", task_2.name_string());
-  task_2.wake_after(0);
-  printf("%s\n", task_2.last_status_string());
-
-  printf("%s - self object wake after 500 msecs - ", task_2.name_string());
-  task_2.wake_after(500000);
-  printf("%s\n", task_2.last_status_string());
-
-  printf("%s - self object wake after 5 secs - ", task_2.name_string());
-  task_2.wake_after(5000000);
-  printf("%s\n", task_2.last_status_string());
-
-  printf("%s - self object wake when - to do\n", task_2.name_string());
-
-  rtems_task_priority current_priority;
-  rtems_task_priority priority;
-
-  // priorities with this object
-
-  printf("%s - get priority - ", name_string());
-  get_priority(current_priority);
-  printf("%s, priority is %" PRIirtems_task_priority "\n", last_status_string(), current_priority);
-
-  printf("%s - set priority to 512 - ", name_string());
-  set_priority(512);
-  printf("%s\n", last_status_string());
-
-  printf("%s - set priority to 25 - ", name_string());
-  set_priority(25);
-  printf("%s\n", last_status_string());
-
-  printf("%s - set priority to original - ", name_string());
-  set_priority(current_priority, priority);
-  printf("%s, priority was %" PRIirtems_task_priority "\n", last_status_string(), priority);
-
-  // priorities with connected object
-
-  printf("%s - connected object get priority - ", task_1.name_string());
-  task_1.get_priority(current_priority);
-  printf("%s, priority is %" PRIirtems_task_priority "\n", task_1.last_status_string(), current_priority);
-
-  printf("%s - connected object set priority to 512 - ", task_1.name_string());
-  task_1.set_priority(512);
-  printf("%s\n", task_1.last_status_string());
-
-  printf("%s - connected object set priority to 25 - ", task_1.name_string());
-  task_1.set_priority(25);
-  printf("%s\n", task_1.last_status_string());
-
-  printf("%s - connected object set priority to original - ", task_1.name_string());
-  task_1.set_priority(current_priority, priority);
-  printf("%s, priority was %" PRIirtems_task_priority "\n", task_1.last_status_string(), priority);
-
-  // priorities with self object
-
-  printf("%s - self object get priority - ", task_2.name_string());
-  task_2.get_priority(current_priority);
-  printf("%s, priority is %" PRIirtems_task_priority "\n", task_2.last_status_string(), current_priority);
-
-  printf("%s - self object set priority to 512 - ", task_2.name_string());
-  task_2.set_priority(512);
-  printf("%s\n", task_2.last_status_string());
-
-  printf("%s - self object set priority to 25 - ", task_2.name_string());
-  task_2.set_priority(25);
-  printf("%s\n", task_2.last_status_string());
-
-  printf("%s - self object set priority to original - ", task_2.name_string());
-  task_2.set_priority(current_priority, priority);
-  printf("%s, priority was %" PRIirtems_task_priority "\n", task_2.last_status_string(), priority);
-
-  printf(" END Task Class test\n");
-}
-
-#define RTEMS_ALL_MODES (RTEMS_PREEMPT_MASK | \
-                         RTEMS_TIMESLICE_MASK | \
-                         RTEMS_ASR_MASK | \
-                         RTEMS_INTERRUPT_MASK)
-
-void Task1::screen3(void)
-{
-  printf(" START TaskMode Class test\n");
-
-  rtemsTask self;
-  rtemsTaskMode task_mode;
-  rtems_mode current_mode;
-  rtems_mode mode;
-
-  printf("%s - get mode - ", self.name_string());
-  task_mode.get_mode(current_mode);
-  printf("%s,\n\t mode is 0x%08" PRIXrtems_mode ", ", task_mode.last_status_string(), current_mode);
-  print_mode(current_mode, RTEMS_ALL_MODES);
-  printf("\n");
-
-  // PREEMPTION mode control
-
-  printf("%s - get preemption state - ", self.name_string());
-  task_mode.get_preemption_state(mode);
-  printf("%s,\n\t mode is 0x%08" PRIXrtems_mode ", ", task_mode.last_status_string(), mode);
-  print_mode(mode, RTEMS_PREEMPT_MASK);
-  printf("\n");
-
-  printf("%s - set preemption state to RTEMS_PREEMPT - ", self.name_string());
-  task_mode.set_preemption_state(RTEMS_PREEMPT);
-  task_mode.get_mode(mode);
-  printf("%s,\n\t mode is 0x%08" PRIXrtems_mode ", ", task_mode.last_status_string(), mode);
-  print_mode(mode, RTEMS_ALL_MODES);
-  printf("\n");
-
-  printf("%s - set preemption state to RTEMS_NO_PREEMPT - ", self.name_string());
-  task_mode.set_preemption_state(RTEMS_NO_PREEMPT);
-  task_mode.get_mode(mode);
-  printf("%s,\n\t mode is 0x%08" PRIXrtems_mode ", ", task_mode.last_status_string(), mode);
-  print_mode(mode, RTEMS_ALL_MODES);
-  printf("\n");
-
-  // TIMESLICE mode control
-
-  printf("%s - get timeslice state - ", self.name_string());
-  task_mode.get_timeslice_state(mode);
-  printf("%s,\n\t mode is 0x%08" PRIXrtems_mode ", ", task_mode.last_status_string(), mode);
-  print_mode(mode, RTEMS_TIMESLICE_MASK);
-  printf("\n");
-
-  printf("%s - set timeslice state to RTEMS_TIMESLICE - ", self.name_string());
-  task_mode.set_timeslice_state(RTEMS_TIMESLICE);
-  task_mode.get_mode(mode);
-  printf("%s,\n\t mode is 0x%08" PRIXrtems_mode ", ", task_mode.last_status_string(), mode);
-  print_mode(mode, RTEMS_ALL_MODES);
-  printf("\n");
-
-  printf("%s - set timeslice state to RTEMS_NO_TIMESLICE - ", self.name_string());
-  task_mode.set_timeslice_state(RTEMS_NO_TIMESLICE);
-  task_mode.get_mode(mode);
-  printf("%s,\n\t mode is 0x%08" PRIXrtems_mode ", ", task_mode.last_status_string(), mode);
-  print_mode(mode, RTEMS_ALL_MODES);
-  printf("\n");
-
-  // ASR mode control
-
-  printf("%s - get asr state - ", self.name_string());
-  task_mode.get_asr_state(mode);
-  printf("%s,\n\t mode is 0x%08" PRIXrtems_mode ", ", task_mode.last_status_string(), mode);
-  print_mode(mode, RTEMS_ASR_MASK);
-  printf("\n");
-
-  printf("%s - set asr state to RTEMS_ASR - ", self.name_string());
-  task_mode.set_asr_state(RTEMS_ASR);
-  task_mode.get_mode(mode);
-  printf("%s,\n\t mode is 0x%08" PRIXrtems_mode ", ", task_mode.last_status_string(), mode);
-  print_mode(mode, RTEMS_ALL_MODES);
-  printf("\n");
-
-  printf("%s - set asr state to RTEMS_NO_ASR - ", self.name_string());
-  task_mode.set_asr_state(RTEMS_NO_ASR);
-  task_mode.get_mode(mode);
-  printf("%s,\n\t mode is 0x%08" PRIXrtems_mode ", ", task_mode.last_status_string(), mode);
-  print_mode(mode, RTEMS_ALL_MODES);
-  printf("\n");
-
-  // interrupt level control
-
-  rtems_interrupt_level current_level;
-  rtems_interrupt_level level;
-
-  printf("%s - get current interrupt level - ", self.name_string());
-  task_mode.get_interrupt_level(current_level);
-  printf("%s, level is %" PRIirtems_interrupt_level "\n", task_mode.last_status_string(), current_level);
-
-  printf("%s - set interrupt level to 102 - ", self.name_string());
-  task_mode.set_interrupt_level(102);
-  printf("%s\n", task_mode.last_status_string());
-
-  printf("%s - set interrupt level to original level - ", self.name_string());
-  task_mode.set_interrupt_level(current_level, level);
-  printf("%s, level was %" PRIirtems_interrupt_level "\n", task_mode.last_status_string(), level);
-
-  printf("%s - set mode to original mode - ", self.name_string());
-  task_mode.set_mode(current_mode,
-                     RTEMS_PREEMPT_MASK | RTEMS_TIMESLICE_MASK |
-                     RTEMS_ASR_MASK | RTEMS_INTERRUPT_MASK);
-  task_mode.get_mode(mode);
-  printf("%s,\n\t mode is 0x%08" PRIXrtems_mode ", ", task_mode.last_status_string(), mode);
-  print_mode(mode, RTEMS_ALL_MODES);
-  printf("\n");
-
-  printf(" END TaskMode Class test\n");
-}
-
-void Task1::screen4(void)
-{
-  printf(" START Event Class test\n");
-
-  printf("%s - create task 2 - ", name_string());
-  Task2 task_2("TA2", (rtems_task_priority) 9, RTEMS_MINIMUM_STACK_SIZE * 6);
-  printf("%s\n", task_2.last_status_string());
-
-  printf("%s - start task 2 - ", name_string());
-  task_2.start(0);
-  printf("%s\n", task_2.last_status_string());
-
-  printf("%s - construct event connecting to task 2 - ", name_string());
-  rtemsEvent event_2("TA2 ");
-  printf("%s\n", event_2.last_status_string());
-
-  // wait for task 2 to complete its timeout tests
-  wake_after(7000000);
-
-  printf("%s - send event signal 0 using the task id - ", name_string());
-  event_2.send(task_2.id_is(), RTEMS_SIGNAL_0);
-  printf("%s\n", event_2.last_status_string());
-
-  wake_after(1000000);
-
-  printf("%s - send event signal 0 using the task object reference - ", name_string());
-  event_2.send(task_2, RTEMS_SIGNAL_0);
-  printf("%s\n", event_2.last_status_string());
-
-  wake_after(1000000);
-
-  printf("%s - send event signal 31 using connected id - ", name_string());
-  event_2.send(RTEMS_SIGNAL_31);
-  printf("%s\n", event_2.last_status_string());
-
-  wake_after(1000000);
-
-  rtemsEvent event_2_2;
-
-  event_2_2.connect("TA2");
-
-  printf("%s - send event signal 0 and 31 - ", name_string());
-  event_2_2.send(task_2, RTEMS_SIGNAL_0 | RTEMS_SIGNAL_31);
-  printf("%s\n", event_2_2.last_status_string());
-
-  printf("%s - waiting 5 secs for TA2 to finish\n", name_string());
-  wake_after(500000);
-
-  printf(" END Event Class test\n");
-}
-
-void Task1::screen5(void)
-{
-  printf(" START Interrupt Class test\n");
-
-  printf(" do not know a portable BSP type interrupt test\n");
-
-  printf(" END Interrupt Class test\n");
-}
-
-void Task1::screen6(void)
-{
-  printf(" START MessageQueue Class test\n");
-
-  printf("%s - construct message queue 1 with no memory error - ", name_string());
-  rtemsMessageQueue mq_1("MQ1", 1000000, 1000);
-  printf("%s\n", mq_1.last_status_string());
-
-  printf("%s - construct/create message queue 2 - ", name_string());
-  rtemsMessageQueue mq_2("MQ2", 4, 50);
-  printf("%s\n", mq_2.last_status_string());
-
-  const char *u1 = "normal send";
-  const char *u2 = "urgent send";
-  char in[100];
-  size_t  size;
-  uint32_t count;
-
-  printf("%s - send u1 to mq_2 - ", name_string());
-  mq_2.send(u1, strlen(u1) + 1);
-  printf("%s\n", mq_2.last_status_string());
-
-  printf("%s - urgent send u2 to mq_2 - ", name_string());
-  mq_2.urgent(u2, strlen(u2) + 1);
-  printf("%s\n", mq_2.last_status_string());
-
-  printf("%s - create task 3_1 - ", name_string());
-  Task3 task_3_1("TA31", 9, RTEMS_MINIMUM_STACK_SIZE * 6);
-  printf("%s\n", task_3_1.last_status_string());
-
-  printf("%s - start task 3_1 - ", name_string());
-  task_3_1.start(0);
-  printf("%s\n", task_3_1.last_status_string());
-
-  printf("%s - create task 3_2 - ", name_string());
-  Task3 task_3_2("TA32", 9, RTEMS_MINIMUM_STACK_SIZE * 6);
-  printf("%s\n", task_3_2.last_status_string());
-
-  printf("%s - start task 3_2 - ", name_string());
-  task_3_2.start(0);
-  printf("%s\n", task_3_1.last_status_string());
-
-  wake_after(1000000);
-
-  printf("%s - receive u2 on mq_2 ...\n", name_string()); fflush(stdout);
-  mq_2.receive(in, size, 5000000);
-  printf("%s - %s\n", name_string(), mq_2.last_status_string());
-
-  if (size == (strlen(u2) + 5))
-  {
-    if ((strncmp(in, task_3_1.name_string(), 4) == 0) &&
-        (strcmp(in + 4, u2) == 0))
-    {
-      printf("%s - message u2 received correctly\n", name_string());
-    }
-    else
-    {
-      printf("%s - message u2 received incorrectly, message='%s', size=%zu\n",
-             name_string(), in, size);
-    }
-  }
-  else
-    printf("%s - message u2 size incorrect, size=%zu\n", name_string(), size);
-
-  printf("%s - receive u1 on mq_2 ...\n", name_string()); fflush(stdout);
-  mq_2.receive(in, size, 5000000);
-  printf("%s - %s\n", name_string(), mq_2.last_status_string());
-
-  if (size == (strlen(u1) + 5))
-  {
-    if ((strncmp(in, task_3_2.name_string(), 4) == 0) &&
-        (strcmp(in + 4, u1) == 0))
-    {
-      printf("%s - message u1 received correctly\n", name_string());
-    }
-    else
-    {
-      printf("%s - message u1 received incorrectly, message='%s', size=%zu\n",
-             name_string(), in, size);
-    }
-  }
-  else
-    printf("%s - message u1 size incorrect, size=%zu\n", name_string(), size);
-
-  wake_after(3000000);
-
-  const char *b1 = "broadcast message";
-
-  printf("%s - broadcast send b1 ...\n", name_string());
-  mq_2.broadcast(b1, strlen(b1) + 1, count);
-  printf("%s - mq_2 broadcast send - %s, count=%" PRIi32 "\n",
-         name_string(), mq_2.last_status_string(), count);
-
-  wake_after(1000000);
-
-  printf("%s - receive message b1 on mq_2 from %s...\n",
-         name_string(), task_3_1.name_string()); fflush(stdout);
-  mq_2.receive(in, size, 5000000);
-  printf("%s - %s\n", name_string(), mq_2.last_status_string());
-
-  if (size == (strlen(b1) + 5))
-  {
-    if ((strncmp(in, task_3_1.name_string(), 4) == 0) &&
-        (strcmp(in + 4, b1) == 0))
-    {
-      printf("%s - message b1 received correctly\n", name_string());
-    }
-    else
-    {
-      printf("%s - message b1 received incorrectly, message='%s'\n",
-             name_string(), in);
-    }
-  }
-  else
-    printf("%s - message b1 size incorrect, size=%zu\n", name_string(), size);
-
-  printf("%s - receive message b1 on mq_2 from %s...\n",
-         name_string(), task_3_1.name_string()); fflush(stdout);
-  mq_2.receive(in, size, 5000000);
-  printf("%s - %s\n", name_string(), mq_2.last_status_string());
-
-  if (size == (strlen(b1) + 5))
-  {
-    if ((strncmp(in, task_3_2.name_string(), 4) == 0) &&
-        (strcmp(in + 4, b1) == 0))
-    {
-      printf("%s - message b1 received correctly\n", name_string());
-    }
-    else
-    {
-      printf("%s - message b1 received incorrectly, message='%s', size=%zu\n",
-             name_string(), in, size);
-    }
-  }
-  else
-    printf("%s - message b1 size incorrect, size=%zu\n", name_string(), size);
-
-  // wait for task 3_1, and 3_2 to complete their timeout tests, will
-  // start these after getting the broadcast message
-  wake_after(7000000);
-
-  const char *f1 = "flush message";
-
-  printf("%s - send f1 to mq_2 - ", name_string());
-  mq_2.send(f1, strlen(f1) + 1);
-  printf("%s\n", mq_2.last_status_string());
-
-  printf("%s - send f1 to mq_2 - ", name_string());
-  mq_2.send(f1, strlen(f1) + 1);
-  printf("%s\n", mq_2.last_status_string());
-
-  printf("%s - send f1 to mq_2 - ", name_string());
-  mq_2.send(f1, strlen(f1) + 1);
-  printf("%s\n", mq_2.last_status_string());
-
-  printf("%s - flush mq_2 - ", name_string());
-  mq_2.flush(count);
-  printf("%s, flushed=%" PRIi32 "\n", mq_2.last_status_string(), count);
-
-  printf(" END MessageQueue Class test\n");
-}
-
-void Task1::print_mode(rtems_mode mode, rtems_mode mask)
-{
-  rtemsTaskMode task_mode;
-  if (mask & RTEMS_PREEMPT_MASK)
-    printf("RTEMS_%sPREEMPT ",
-           task_mode.preemption_set(mode) ? "" : "NO_");
-  if (mask & RTEMS_TIMESLICE_MASK)
-    printf("RTEMS_%sTIMESLICE ",
-           task_mode.preemption_set(mode) ? "" : "NO_");
-  if (mask & RTEMS_ASR_MASK)
-    printf("RTEMS_%sASR ",
-           task_mode.asr_set(mode) ? "" : "NO_");
-  if (mask & RTEMS_INTERRUPT_MASK)
-    printf("INTMASK=%" PRIirtems_mode,
-           mode & RTEMS_INTERRUPT_MASK);
-}
-
-EndTask::EndTask(const char* name,
-                 const rtems_task_priority initial_priority,
-                 const uint32_t   stack_size)
-  : rtemsTask(name, initial_priority, stack_size, RTEMS_NO_PREEMPT)
-{
-}
-
-void EndTask::body(rtems_task_argument)
-{
- TEST_END();
- exit(0);
-}
-
diff --git a/testsuites/libtests/rtems++/Task2.cc b/testsuites/libtests/rtems++/Task2.cc
deleted file mode 100644
index a08a57d..0000000
--- a/testsuites/libtests/rtems++/Task2.cc
+++ /dev/null
@@ -1,82 +0,0 @@
-/*  Task_2
- *
- *  This routine serves as a test task.  Its only purpose is to generate the
- *  error where a semaphore is deleted while a task is waiting for it.
- *
- *  Input parameters:
- *    argument - task argument
- *
- *  Output parameters:  NONE
- *
- *  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.org/license/LICENSE.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "System.h"
-
-Task2::Task2(const char* name,
-             const rtems_task_priority initial_priority,
-             const uint32_t   stack_size)
-  : rtemsTask(name, initial_priority, stack_size, RTEMS_NO_PREEMPT)
-{
-}
-  
-void Task2::body(rtems_task_argument )
-{
-  screen4();
-
-  printf("%s - destroy itself\n", name_string());
-  destroy();
-}
-
-void Task2::screen4()
-{
-  rtemsEvent event;
-
-  // block waiting for any event
-  rtems_event_set out;
-  
-  printf("%s - event no wait - ", name_string());
-  event.receive(RTEMS_SIGNAL_0, out, 0, rtemsEvent::no_wait);
-  printf("%s\n", event.last_status_string());
-  
-  printf("%s - event 5 secs timeout - ", name_string()); fflush(stdout);
-  event.receive(RTEMS_SIGNAL_0, out, 5000000);
-  printf("%s\n", event.last_status_string());
-
-  // send using task id
-  printf("%s - event wait forever for signal 0 from TA1 ....\n", name_string());
-  event.receive(RTEMS_SIGNAL_0, out);
-  printf("%s - %s, signals out are 0x%08" PRIX32 "\n", name_string(), event.last_status_string(), out);
-
-  // send using task object reference
-  printf("%s - event wait forever for signal 0 from TA1 ....\n", name_string());
-  event.receive(RTEMS_SIGNAL_0, out);
-  printf("%s - %s, signals out are 0x%08" PRIX32 "\n", name_string(), event.last_status_string(), out);
-  
-  printf("%s - event wait forever for signal 31 from TA1 ....\n", name_string());
-  event.receive(RTEMS_SIGNAL_31, out);
-  printf("%s - %s, signals out are 0x%08" PRIX32 "\n", name_string(), event.last_status_string(), out);
-  
-  printf("%s - event wait forever for signal 0 and 31 from TA1 ....\n", name_string());
-  event.receive(RTEMS_SIGNAL_0 | RTEMS_SIGNAL_31, out, 0, rtemsEvent::wait, rtemsEvent::all);
-  printf("%s - %s, signals out are 0x%08" PRIX32 "\n", name_string(), event.last_status_string(), out);
-
-  printf("%s - send event signal 1 - ", name_string());
-  event.send(RTEMS_SIGNAL_1);
-  printf("%s\n", event.last_status_string());
-  
-  printf("%s - event wait forever for signal 1 from TA2 - ", name_string());
-  event.receive(RTEMS_SIGNAL_1, out, 0, rtemsEvent::wait, rtemsEvent::all);
-  printf("%s, signals out are 0x%08" PRIX32 "\n", event.last_status_string(), out);  
-}
-
-
diff --git a/testsuites/libtests/rtems++/Task3.cc b/testsuites/libtests/rtems++/Task3.cc
deleted file mode 100644
index ec453df..0000000
--- a/testsuites/libtests/rtems++/Task3.cc
+++ /dev/null
@@ -1,82 +0,0 @@
-/*  Task_3
- *
- *  This routine serves as a test task. Loopback the messages and test
- *  timeouts
- *
- *  Input parameters:
- *    argument - task argument
- *
- *  Output parameters:  NONE
- *
- *  COPYRIGHT (c) 1989-2007.
- *  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.org/license/LICENSE.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "System.h"
-
-Task3::Task3(const char* name,
-             const rtems_task_priority initial_priority,
-             const uint32_t   stack_size)
-  : rtemsTask(name, initial_priority, stack_size, RTEMS_NO_PREEMPT)
-{
-}
-  
-void Task3::body(rtems_task_argument )
-{
-  screen6();
-
-  printf("%s - destroy itself\n", name_string());
-  destroy();
-}
-
-void Task3::screen6()
-{
-  rtemsMessageQueue mq_2("MQ2");
-  printf("%s - construction connect mq_2 - %s\n", name_string(), mq_2.last_status_string());
-
-  if (mq_2.successful())
-  {
-    char in[100];
-    char out[100];
-    size_t   size;
-    bool loopback = true;
-  
-    while (loopback)
-    {
-    printf("%s - loopback from mq_2 to mq_2 ...\n", name_string()); fflush(stdout);
-
-    mq_2.receive(in, size);
-      printf("%s - mq_2 receive - %s, size=%zu, message string size=%zu\n",
-             name_string(), mq_2.last_status_string(), size, strlen(in));
-      if (mq_2.successful())
-      {
-        if (size > (100 - 5))
-          printf("%s - size to large\n", name_string());
-        else
-        {
-          strcpy(out, name_string());
-          strcpy(out + 4, in);
-      
-          printf("%s - loopback to mq_2 - ", name_string());
-          mq_2.send(out, strlen(out) + 1);
-          printf("%s\n", mq_2.last_status_string());
-        }
-
-        if (strcmp(in, "broadcast message") == 0)
-          loopback = false;
-        else
-          wake_after(1500000);
-      }
-    }
-  }
-}
-
-
diff --git a/testsuites/libtests/rtems++/rtems++.doc b/testsuites/libtests/rtems++/rtems++.doc
deleted file mode 100644
index c90cfbb..0000000
--- a/testsuites/libtests/rtems++/rtems++.doc
+++ /dev/null
@@ -1,26 +0,0 @@
-# COPYRIGHT (c) 1997
-# Objective Design Systems Ltd Pty (ODS)
-# All rights reserved (R) Objective Design Systems Ltd Pty
-# 
-# The license and distribution terms for this file may be found in the
-# file LICENSE in this distribution or at
-# http://www.rtems.org/license/LICENSE.
-#
-
-The file describes the directives and concepts tested by this test set.
-
-test set name: rtems++
-
-classes:
-  rtemsTask, rtemsTaskMode, rtemsEvent, rtemsMessageQueue
-
-concepts:
-
-  a. Verify each class tested can be constructed using each of the constructors.
-
-  b. Verify each class can be an owner of an object id if capable.
-
-  c. Verify each class can connect to an existing object id if capable.
-
-  d. Verify the operation of each method of each class.
-
diff --git a/testsuites/libtests/rtems++/rtems++.scn b/testsuites/libtests/rtems++/rtems++.scn
deleted file mode 100644
index 0ac7c9c..0000000
--- a/testsuites/libtests/rtems++/rtems++.scn
+++ /dev/null
@@ -1,149 +0,0 @@
-
-
-*** RTEMS++ TEST ***
-INIT - Task.create() - RTEMS[19] invalid thread priority
-INIT - Task.create() - RTEMS[00] successful completion
-INIT - Task.create() - RTEMS[16] illegal on calling thread
-INIT - Task.restart() - RTEMS[14] thread is in wrong state
-INIT - Task.start(0xDEADDEAD) - RTEMS[00] successful completion
-INIT - Destroy it's self
-<pause - screen 1>
- START Task Class test
-TA1  - test argument - argument matched
-TA1  - copy constructor - local and this id's match
-TA1  - copy constructor - local and this name's match
-TA1  - copy operator - local and this id's match
-TA1  - copy operator - local and this name's match
-TA1  - not owner destroy's task - RTEMS[23] not owner of resource
-TA1  - connect to a local valid task name - RTEMS[00] successful completion
-TA1  - connect to an invalid task name - RTEMS[03] invalid object name
-SELF - connect to a task on an invalid node - RTEMS[03] invalid object name
-TA1  - restart from a non-owner - RTEMS[23] not owner of resource
-<pause - screen 2>
-TA1  - wake after 0 secs - RTEMS[00] successful completion
-TA1  - wake after 500 msecs - RTEMS[00] successful completion
-TA1  - wake after 5 secs - RTEMS[00] successful completion
-TA1  - wake when - to do
-TA1  - connected object wake after 0 secs - RTEMS[00] successful completion
-TA1  - connected object wake after 500 msecs - RTEMS[00] successful completion
-TA1  - connected object wake after 5 secs - RTEMS[00] successful completion
-TA1  - connected object wake when - to do
-SELF - self object wake after 0 secs - RTEMS[00] successful completion
-SELF - self object wake after 500 msecs - RTEMS[00] successful completion
-SELF - self object wake after 5 secs - RTEMS[00] successful completion
-SELF - self object wake when - to do
-TA1  - get priority - RTEMS[00] successful completion, priority is 10
-TA1  - set priority to 512 - RTEMS[19] invalid thread priority
-TA1  - set priority to 25 - RTEMS[00] successful completion
-TA1  - set priority to original - RTEMS[00] successful completion, priority was 25
-TA1  - connected object get priority - RTEMS[00] successful completion, priority is 10
-TA1  - connected object set priority to 512 - RTEMS[19] invalid thread priority
-TA1  - connected object set priority to 25 - RTEMS[00] successful completion
-TA1  - connected object set priority to original - RTEMS[00] successful completion, priority was 25
-SELF - self object get priority - RTEMS[00] successful completion, priority is 10
-SELF - self object set priority to 512 - RTEMS[19] invalid thread priority
-SELF - self object set priority to 25 - RTEMS[00] successful completion
-SELF - self object set priority to original - RTEMS[00] successful completion, priority was 25
- END Task Class test
-<pause - screen 3>
- START TaskMode Class test
-SELF - get mode - RTEMS[00] successful completion,
-         mode is 0x00000500, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_ASR INTMASK=0
-SELF - get preemption state - RTEMS[00] successful completion,
-         mode is 0x00000100, RTEMS_NO_PREEMPT
-SELF - set preemption state to RTEMS_PREEMPT - RTEMS[00] successful completion,
-         mode is 0x00000400, RTEMS_PREEMPT RTEMS_TIMESLICE RTEMS_ASR INTMASK=0
-SELF - set preemption state to RTEMS_NO_PREEMPT - RTEMS[00] successful completion,
-         mode is 0x00000500, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_ASR INTMASK=0
-SELF - get timeslice state - RTEMS[00] successful completion,
-         mode is 0x00000000, RTEMS_TIMESLICE
-SELF - set timeslice state to RTEMS_TIMESLICE - RTEMS[00] successful completion,
-         mode is 0x00000700, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_ASR INTMASK=0
-SELF - set timeslice state to RTEMS_NO_TIMESLICE - RTEMS[00] successful completion,
-         mode is 0x00000500, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_ASR INTMASK=0
-SELF - get asr state - RTEMS[00] successful completion,
-         mode is 0x00000400, RTEMS_ASR
-SELF - set asr state to RTEMS_ASR - RTEMS[00] successful completion,
-         mode is 0x00000100, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_NO_ASR INTMASK=0
-SELF - set asr state to RTEMS_NO_ASR - RTEMS[00] successful completion,
-         mode is 0x00000500, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_ASR INTMASK=0
-SELF - get current interrupt level - RTEMS[00] successful completion, level is 0
-SELF - set interrupt level to 102 - RTEMS[00] successful completion
-SELF - set interrupt level to original level - RTEMS[00] successful completion, level was 6
-SELF - set mode to original mode - RTEMS[00] successful completion,
-         mode is 0x00000500, RTEMS_NO_PREEMPT RTEMS_NO_TIMESLICE RTEMS_ASR INTMASK=0
- END TaskMode Class test
-<pause - screen 4>
- START Event Class test
-TA1  - create task 2 - RTEMS[00] successful completion
-TA1  - start task 2 - RTEMS[00] successful completion
-TA1  - construct event connecting to task 2 - RTEMS[00] successful completion
-TA2  - event no wait - RTEMS[13] request not satisfied
-TA2  - event 5 secs timeout - RTEMS[06] timed out waiting
-TA2  - event wait forever for signal 0 from TA1 ....
-TA1  - send event signal 0 using the task id - RTEMS[00] successful completion
-TA2  - RTEMS[00] successful completion, signals out are 0x00000001
-TA2  - event wait forever for signal 0 from TA1 ....
-TA1  - send event signal 0 using the task object reference - RTEMS[00] successful completion
-TA2  - RTEMS[00] successful completion, signals out are 0x00000001
-TA2  - event wait forever for signal 31 from TA1 ....
-TA1  - send event signal 31 using connected id - RTEMS[00] successful completion
-TA2  - RTEMS[00] successful completion, signals out are 0x80000000
-TA2  - event wait forever for signal 0 and 31 from TA1 ....
-TA1  - send event signal 0 and 31 - RTEMS[00] successful completion
-TA1  - waiting 5 secs for TA2 to finish
-TA2  - RTEMS[00] successful completion, signals out are 0x80000001
-TA2  - send event signal 1 - RTEMS[00] successful completion
-TA2  - event wait forever for signal 1 from TA2 - RTEMS[00] successful completion, signals out are 0x00000002
-TA2  - destroy itself
- END Event Class test
-<pause - screen 5>
- START Interrupt Class test
- do not know a portable BSP type interrupt test
- END Interrupt Class test
-<pause - screen 6>
- START MessageQueue Class test
-TA1  - construct message queue 1 with no memory error - RTEMS[13] request not satisfied
-TA1  - construct/create message queue 2 - RTEMS[00] successful completion
-TA1  - send u1 to mq_2 - RTEMS[00] successful completion
-TA1  - urgent send u2 to mq_2 - RTEMS[00] successful completion
-TA1  - create task 3_1 - RTEMS[00] successful completion
-TA1  - start task 3_1 - RTEMS[00] successful completion
-TA1  - create task 3_2 - RTEMS[00] successful completion
-TA1  - start task 3_2 - RTEMS[00] successful completion
-TA31 - construction connect mq_2 - RTEMS[00] successful completion
-TA31 - loopback from mq_2 to mq_2 ...
-TA31 - mq_2 receive - RTEMS[00] successful completion, size=12, message string size=11
-TA31 - loopback to mq_2 - RTEMS[00] successful completion
-TA32 - construction connect mq_2 - RTEMS[00] successful completion
-TA32 - loopback from mq_2 to mq_2 ...
-TA32 - mq_2 receive - RTEMS[00] successful completion, size=12, message string size=11
-TA32 - loopback to mq_2 - RTEMS[00] successful completion
-TA1  - receive u2 on mq_2 ...
-TA1  - RTEMS[00] successful completion
-TA1  - message u2 received correctly
-TA1  - receive u1 on mq_2 ...
-TA1  - RTEMS[00] successful completion
-TA1  - message u1 received correctly
-TA31 - loopback from mq_2 to mq_2 ...
-TA32 - loopback from mq_2 to mq_2 ...
-TA1  - broadcast send b1 ...
-TA1  - mq_2 broadcast send - RTEMS[00] successful completion, count=2
-TA31 - mq_2 receive - RTEMS[00] successful completion, size=18, message string size=17
-TA31 - loopback to mq_2 - RTEMS[00] successful completion
-TA31 - destroy itself
-TA32 - mq_2 receive - RTEMS[00] successful completion, size=18, message string size=17
-TA32 - loopback to mq_2 - RTEMS[00] successful completion
-TA32 - destroy itself
-TA1  - receive message b1 on mq_2 from TA31...
-TA1  - RTEMS[00] successful completion
-TA1  - message b1 received correctly
-TA1  - receive message b1 on mq_2 from TA31...
-TA1  - RTEMS[00] successful completion
-TA1  - message b1 received correctly
-TA1  - send f1 to mq_2 - RTEMS[00] successful completion
-TA1  - send f1 to mq_2 - RTEMS[00] successful completion
-TA1  - send f1 to mq_2 - RTEMS[00] successful completion
-TA1  - flush mq_2 - RTEMS[00] successful completion, flushed=3
- END MessageQueue Class test
-*** END OF RTEMS++ TEST ***




More information about the vc mailing list