summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--c/src/Makefile.am2
-rw-r--r--c/src/Makefile.in2
-rw-r--r--c/src/configure6
-rw-r--r--c/src/configure.in1
-rw-r--r--c/src/lib/Makefile.in4
-rw-r--r--c/src/lib/aclocal.m499
-rw-r--r--c/src/lib/configure318
-rw-r--r--c/src/lib/configure.in11
-rw-r--r--c/src/lib/include/Makefile.in12
-rw-r--r--c/src/lib/include/rtems++/rtemsEvent.h127
-rw-r--r--c/src/lib/include/rtems++/rtemsInterrupt.h105
-rw-r--r--c/src/lib/include/rtems++/rtemsMessageQueue.h176
-rw-r--r--c/src/lib/include/rtems++/rtemsSemaphore.h145
-rw-r--r--c/src/lib/include/rtems++/rtemsStatusCode.h57
-rw-r--r--c/src/lib/include/rtems++/rtemsTask.h171
-rw-r--r--c/src/lib/include/rtems++/rtemsTaskMode.h210
-rw-r--r--c/src/lib/include/rtems++/rtemsTimer.h145
-rw-r--r--c/src/lib/librtems++/Makefile.in59
-rw-r--r--c/src/lib/librtems++/README266
-rw-r--r--c/src/lib/librtems++/rtemsEvent.cc75
-rw-r--r--c/src/lib/librtems++/rtemsInterrupt.cc115
-rw-r--r--c/src/lib/librtems++/rtemsMessageQueue.cc165
-rw-r--r--c/src/lib/librtems++/rtemsSemaphore.cc175
-rw-r--r--c/src/lib/librtems++/rtemsStatusCode.cc77
-rw-r--r--c/src/lib/librtems++/rtemsTask.cc288
-rw-r--r--c/src/lib/librtems++/rtemsTimer.cc101
-rw-r--r--c/src/librtems++/src/Makefile.in2
27 files changed, 60 insertions, 2854 deletions
diff --git a/c/src/Makefile.am b/c/src/Makefile.am
index f5adbccd40..b31a0a9db9 100644
--- a/c/src/Makefile.am
+++ b/c/src/Makefile.am
@@ -5,7 +5,7 @@
AUTOMAKE_OPTIONS = foreign 1.4
ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal
-SUBDIRS= make exec lib tests
+SUBDIRS= make exec lib librtems++ tests
rtems_bspdir=$(prefix)/@RTEMS_BSP@
diff --git a/c/src/Makefile.in b/c/src/Makefile.in
index 455bae76e7..7a937d211f 100644
--- a/c/src/Makefile.in
+++ b/c/src/Makefile.in
@@ -85,7 +85,7 @@ VERSION = @VERSION@
AUTOMAKE_OPTIONS = foreign 1.4
ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal
-SUBDIRS = make exec lib tests
+SUBDIRS = make exec lib librtems++ tests
rtems_bspdir = $(prefix)/@RTEMS_BSP@
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
diff --git a/c/src/configure b/c/src/configure
index cb3ec2ae10..ddc00eaefb 100644
--- a/c/src/configure
+++ b/c/src/configure
@@ -1016,7 +1016,9 @@ subdirs="make exec"
subdirs="make exec lib"
-subdirs="make exec lib tests"
+subdirs="make exec lib librtems++"
+
+subdirs="make exec lib librtems++ tests"
trap '' 1 2 15
@@ -1341,7 +1343,7 @@ if test "$no_recursion" != yes; then
esac
done
- for ac_config_dir in make exec lib tests; do
+ for ac_config_dir in make exec lib librtems++ tests; do
# Do not complain, so a configure script can configure whichever
# parts of a large source tree are present.
diff --git a/c/src/configure.in b/c/src/configure.in
index fc239b1a3f..f94b5e04ba 100644
--- a/c/src/configure.in
+++ b/c/src/configure.in
@@ -23,6 +23,7 @@ RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP)
AC_CONFIG_SUBDIRS(make)
AC_CONFIG_SUBDIRS(exec)
AC_CONFIG_SUBDIRS(lib)
+AC_CONFIG_SUBDIRS(librtems++)
AC_CONFIG_SUBDIRS(tests)
AC_OUTPUT(
diff --git a/c/src/lib/Makefile.in b/c/src/lib/Makefile.in
index 9d86472f0c..9ef58e6769 100644
--- a/c/src/lib/Makefile.in
+++ b/c/src/lib/Makefile.in
@@ -34,10 +34,6 @@ LIBRPC = $(LIBRPC_$(HAS_NETWORKING)_V)
LIBRDBG_yes_yes_V = librdbg
LIBRDBG = $(LIBRDBG_$(HAS_NETWORKING)_$(HAS_RDBG)_V)
-# We only build the rtems++ library if HAS_CPLUSPLUS was defined
-LIBRTEMSCPLUSPLUS_yes_V = librtems++
-LIBRTEMSCPLUSPLUS = $(LIBRTEMSCPLUSPLUS_$(HAS_CPLUSPLUS)_V)
-
# General Hardware API library
LIBHWAPI = $(wildcard libhwapi)
diff --git a/c/src/lib/aclocal.m4 b/c/src/lib/aclocal.m4
index 51eae57574..8a3fc923bf 100644
--- a/c/src/lib/aclocal.m4
+++ b/c/src/lib/aclocal.m4
@@ -504,84 +504,6 @@ fi
dnl
dnl $Id$
-dnl
-dnl Check for target g++
-dnl
-dnl 98/05/20 Ralf Corsepius (corsepiu@faw.uni-ulm.de)
-dnl Completely reworked
-
-AC_DEFUN(RTEMS_PROG_CXX,
-[
-AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
-AC_BEFORE([$0], [AC_PROG_CXX])dnl
-AC_REQUIRE([RTEMS_TOOL_PREFIX])dnl
-
-dnl Only accept g++ and c++
-dnl NOTE: This might be too restrictive for native compilation
-AC_PATH_PROGS(CXX_FOR_TARGET, "$program_prefix"g++ "$program_prefix"c++)
-test -z "$CXX_FOR_TARGET" \
- && AC_MSG_ERROR([no acceptable c++ found in \$PATH])
-
-dnl backup
-rtems_save_CXX=$CXX
-rtems_save_CXXFLAGS=$CXXFLAGS
-
-dnl temporarily set CXX
-CXX=$CXX_FOR_TARGET
-
-AC_PROG_CXX_WORKS
-AC_PROG_CXX_GNU
-
-if test $ac_cv_prog_gxx = yes; then
- GXX=yes
-dnl Check whether -g works, even if CXXFLAGS is set, in case the package
-dnl plays around with CXXFLAGS (such as to build both debugging and
-dnl normal versions of a library), tasteless as that idea is.
- ac_test_CXXFLAGS="${CXXFLAGS+set}"
- ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS=
- AC_PROG_CXX_G
- if test "$ac_test_CXXFLAGS" = set; then
- CXXFLAGS="$ac_save_CXXFLAGS"
- elif test $ac_cv_prog_cxx_g = yes; then
- CXXFLAGS="-g -O2"
- else
- CXXFLAGS="-O2"
- fi
-else
- GXX=
- test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
-fi
-
-rtems_cv_prog_gxx=$ac_cv_prog_gxx
-rtems_cv_prog_cxx_g=$ac_cv_prog_cxx_g
-rtems_cv_prog_cxx_works=$ac_cv_prog_cxx_works
-rtems_cv_prog_cxx_cross=$ac_cv_prog_cxx_cross
-
-CXX=$rtems_save_CXX
-CXXFLAGS=$rtems_save_CXXFLAGS
-
-dnl restore initial values
-unset ac_cv_prog_gxx
-unset ac_cv_prog_cc_g
-unset ac_cv_prog_cxx_works
-unset ac_cv_prog_cxx_cross
-])
-
-AC_DEFUN(RTEMS_PROG_CXX_FOR_TARGET,
-[
- RTEMS_PROG_CXX
- if test "$rtems_cv_prog_cc_cross" != "$rtems_cv_prog_cxx_cross"; then
- AC_MSG_ERROR([***]
- [Inconsistency in compiler configuration:]
- [Target C compiler and Target C++ compiler]
- [must both either be cross compilers or native compilers]
- [Hint: If building a posix bsp: LD_LIBRARY_PATH?] )
- fi
-])
-
-dnl
-dnl $Id$
dnl
dnl Set target tools
dnl
@@ -811,27 +733,6 @@ AC_SUBST(HAS_MP)
dnl $Id$
dnl
-AC_DEFUN(RTEMS_CHECK_CXX,
-[dnl
-AC_REQUIRE([RTEMS_CHECK_CPU])dnl
-AC_REQUIRE([RTEMS_PROG_CXX_FOR_TARGET])dnl
-AC_CACHE_CHECK([whether to build rtems++],
- rtems_cv_HAS_CPLUSPLUS,
- [ if test "$RTEMS_HAS_CPLUSPLUS" = "yes"; then
- if test -n "$CXX_FOR_TARGET"; then
- rtems_cv_HAS_CPLUSPLUS="yes"
- else
- rtems_cv_HAS_CPLUSPLUS="no"
- fi
- else
- rtems_cv_HAS_CPLUSPLUS="no"
- fi])
-HAS_CPLUSPLUS="$rtems_cv_HAS_CPLUSPLUS";
-AC_SUBST(HAS_CPLUSPLUS)dnl
-])
-
-dnl $Id$
-dnl
AC_DEFUN(RTEMS_CHECK_NETWORKING,
[dnl
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
diff --git a/c/src/lib/configure b/c/src/lib/configure
index 2e5b2ca8c5..c66bb9e198 100644
--- a/c/src/lib/configure
+++ b/c/src/lib/configure
@@ -1245,184 +1245,10 @@ esac
-if test "$RTEMS_HAS_CPLUSPLUS" = "yes"; then
-
-
-
-for ac_prog in "$program_prefix"g++ "$program_prefix"c++
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1258: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_CXX_FOR_TARGET'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$CXX_FOR_TARGET" in
- /*)
- ac_cv_path_CXX_FOR_TARGET="$CXX_FOR_TARGET" # Let the user override the test with a path.
- ;;
- ?:/*)
- ac_cv_path_CXX_FOR_TARGET="$CXX_FOR_TARGET" # Let the user override the test with a dos path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_path_CXX_FOR_TARGET="$ac_dir/$ac_word"
- break
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac
-fi
-CXX_FOR_TARGET="$ac_cv_path_CXX_FOR_TARGET"
-if test -n "$CXX_FOR_TARGET"; then
- echo "$ac_t""$CXX_FOR_TARGET" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$CXX_FOR_TARGET" && break
-done
-
-test -z "$CXX_FOR_TARGET" \
- && { echo "configure: error: no acceptable c++ found in \$PATH" 1>&2; exit 1; }
-
-rtems_save_CXX=$CXX
-rtems_save_CXXFLAGS=$CXXFLAGS
-
-CXX=$CXX_FOR_TARGET
-
-echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1302: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
-
-ac_ext=C
-# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cxx_cross
-
-cat > conftest.$ac_ext << EOF
-
-#line 1313 "configure"
-#include "confdefs.h"
-
-int main(){return(0);}
-EOF
-if { (eval echo configure:1318: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- ac_cv_prog_cxx_works=yes
- # If we can't run a trivial program, we are probably using a cross compiler.
- if (./conftest; exit) 2>/dev/null; then
- ac_cv_prog_cxx_cross=no
- else
- ac_cv_prog_cxx_cross=yes
- fi
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_prog_cxx_works=no
-fi
-rm -fr conftest*
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo "$ac_t""$ac_cv_prog_cxx_works" 1>&6
-if test $ac_cv_prog_cxx_works = no; then
- { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; }
-fi
-echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1344: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
-echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
-cross_compiling=$ac_cv_prog_cxx_cross
-
-echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
-echo "configure:1349: checking whether we are using GNU C++" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.C <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1358: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
- ac_cv_prog_gxx=yes
-else
- ac_cv_prog_gxx=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gxx" 1>&6
-
-if test $ac_cv_prog_gxx = yes; then
- GXX=yes
- ac_test_CXXFLAGS="${CXXFLAGS+set}"
- ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS=
- echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
-echo "configure:1373: checking whether ${CXX-g++} accepts -g" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- echo 'void f(){}' > conftest.cc
-if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then
- ac_cv_prog_cxx_g=yes
-else
- ac_cv_prog_cxx_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6
- if test "$ac_test_CXXFLAGS" = set; then
- CXXFLAGS="$ac_save_CXXFLAGS"
- elif test $ac_cv_prog_cxx_g = yes; then
- CXXFLAGS="-g -O2"
- else
- CXXFLAGS="-O2"
- fi
-else
- GXX=
- test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
-fi
-
-rtems_cv_prog_gxx=$ac_cv_prog_gxx
-rtems_cv_prog_cxx_g=$ac_cv_prog_cxx_g
-rtems_cv_prog_cxx_works=$ac_cv_prog_cxx_works
-rtems_cv_prog_cxx_cross=$ac_cv_prog_cxx_cross
-
-CXX=$rtems_save_CXX
-CXXFLAGS=$rtems_save_CXXFLAGS
-
-unset ac_cv_prog_gxx
-unset ac_cv_prog_cc_g
-unset ac_cv_prog_cxx_works
-unset ac_cv_prog_cxx_cross
-
- if test "$rtems_cv_prog_cc_cross" != "$rtems_cv_prog_cxx_cross"; then
- { echo "configure: error: ***
- Inconsistency in compiler configuration:
- Target C compiler and Target C++ compiler
- must both either be cross compilers or native compilers
- Hint: If building a posix bsp: LD_LIBRARY_PATH? " 1>&2; exit 1; }
- fi
-
-fi
-
echo $ac_n "checking target's ar""... $ac_c" 1>&6
-echo "configure:1426: checking target's ar" >&5
+echo "configure:1252: checking target's ar" >&5
if eval "test \"`echo '$''{'ac_cv_path_AR_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1455,7 +1281,7 @@ else
# will override the environment variable, which isn't what the user
# intends
echo $ac_n "checking whether environment variable AR_FOR_TARGET is an absolute path""... $ac_c" 1>&6
-echo "configure:1459: checking whether environment variable AR_FOR_TARGET is an absolute path" >&5
+echo "configure:1285: checking whether environment variable AR_FOR_TARGET is an absolute path" >&5
case "$AR_FOR_TARGET" in
/*) # valid
echo "$ac_t"""yes"" 1>&6
@@ -1472,7 +1298,7 @@ echo "configure:1459: checking whether environment variable AR_FOR_TARGET is an
# Extract the first word of ""$program_prefix"ar", so it can be a program name with args.
set dummy "$program_prefix"ar; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1476: checking for $ac_word" >&5
+echo "configure:1302: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_AR_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1509,7 +1335,7 @@ fi
echo $ac_n "checking target's as""... $ac_c" 1>&6
-echo "configure:1513: checking target's as" >&5
+echo "configure:1339: checking target's as" >&5
if eval "test \"`echo '$''{'ac_cv_path_AS_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1542,7 +1368,7 @@ else
# will override the environment variable, which isn't what the user
# intends
echo $ac_n "checking whether environment variable AS_FOR_TARGET is an absolute path""... $ac_c" 1>&6
-echo "configure:1546: checking whether environment variable AS_FOR_TARGET is an absolute path" >&5
+echo "configure:1372: checking whether environment variable AS_FOR_TARGET is an absolute path" >&5
case "$AS_FOR_TARGET" in
/*) # valid
echo "$ac_t"""yes"" 1>&6
@@ -1559,7 +1385,7 @@ echo "configure:1546: checking whether environment variable AS_FOR_TARGET is an
# Extract the first word of ""$program_prefix"as", so it can be a program name with args.
set dummy "$program_prefix"as; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1563: checking for $ac_word" >&5
+echo "configure:1389: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_AS_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1596,7 +1422,7 @@ fi
echo $ac_n "checking target's ld""... $ac_c" 1>&6
-echo "configure:1600: checking target's ld" >&5
+echo "configure:1426: checking target's ld" >&5
if eval "test \"`echo '$''{'ac_cv_path_LD_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1629,7 +1455,7 @@ else
# will override the environment variable, which isn't what the user
# intends
echo $ac_n "checking whether environment variable LD_FOR_TARGET is an absolute path""... $ac_c" 1>&6
-echo "configure:1633: checking whether environment variable LD_FOR_TARGET is an absolute path" >&5
+echo "configure:1459: checking whether environment variable LD_FOR_TARGET is an absolute path" >&5
case "$LD_FOR_TARGET" in
/*) # valid
echo "$ac_t"""yes"" 1>&6
@@ -1646,7 +1472,7 @@ echo "configure:1633: checking whether environment variable LD_FOR_TARGET is an
# Extract the first word of ""$program_prefix"ld", so it can be a program name with args.
set dummy "$program_prefix"ld; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1650: checking for $ac_word" >&5
+echo "configure:1476: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_LD_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1683,7 +1509,7 @@ fi
echo $ac_n "checking target's nm""... $ac_c" 1>&6
-echo "configure:1687: checking target's nm" >&5
+echo "configure:1513: checking target's nm" >&5
if eval "test \"`echo '$''{'ac_cv_path_NM_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1716,7 +1542,7 @@ else
# will override the environment variable, which isn't what the user
# intends
echo $ac_n "checking whether environment variable NM_FOR_TARGET is an absolute path""... $ac_c" 1>&6
-echo "configure:1720: checking whether environment variable NM_FOR_TARGET is an absolute path" >&5
+echo "configure:1546: checking whether environment variable NM_FOR_TARGET is an absolute path" >&5
case "$NM_FOR_TARGET" in
/*) # valid
echo "$ac_t"""yes"" 1>&6
@@ -1733,7 +1559,7 @@ echo "configure:1720: checking whether environment variable NM_FOR_TARGET is an
# Extract the first word of ""$program_prefix"nm", so it can be a program name with args.
set dummy "$program_prefix"nm; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1737: checking for $ac_word" >&5
+echo "configure:1563: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_NM_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1771,7 +1597,7 @@ fi
echo $ac_n "checking target's ranlib""... $ac_c" 1>&6
-echo "configure:1775: checking target's ranlib" >&5
+echo "configure:1601: checking target's ranlib" >&5
if eval "test \"`echo '$''{'ac_cv_path_RANLIB_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1804,7 +1630,7 @@ else
# will override the environment variable, which isn't what the user
# intends
echo $ac_n "checking whether environment variable RANLIB_FOR_TARGET is an absolute path""... $ac_c" 1>&6
-echo "configure:1808: checking whether environment variable RANLIB_FOR_TARGET is an absolute path" >&5
+echo "configure:1634: checking whether environment variable RANLIB_FOR_TARGET is an absolute path" >&5
case "$RANLIB_FOR_TARGET" in
/*) # valid
echo "$ac_t"""yes"" 1>&6
@@ -1821,7 +1647,7 @@ echo "configure:1808: checking whether environment variable RANLIB_FOR_TARGET is
# Extract the first word of ""$program_prefix"ranlib", so it can be a program name with args.
set dummy "$program_prefix"ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1825: checking for $ac_word" >&5
+echo "configure:1651: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_RANLIB_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1860,7 +1686,7 @@ fi
# ranlib wasn't found; check if ar -s is available
echo $ac_n "checking whether $AR_FOR_TARGET -s works""... $ac_c" 1>&6
-echo "configure:1864: checking whether $AR_FOR_TARGET -s works" >&5
+echo "configure:1690: checking whether $AR_FOR_TARGET -s works" >&5
if eval "test \"`echo '$''{'rtems_cv_AR_FOR_TARGET_S'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1869,8 +1695,8 @@ cat > conftest.$ac_ext <<EOF
int foo( int b )
{ return b; }
EOF
-if { ac_try='$CC_FOR_TARGET -o conftest.o -c conftest.$ac_ext'; { (eval echo configure:1873: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } \
- && { ac_try='$AR_FOR_TARGET -sr conftest.a conftest.o'; { (eval echo configure:1874: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } \
+if { ac_try='$CC_FOR_TARGET -o conftest.o -c conftest.$ac_ext'; { (eval echo configure:1699: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } \
+ && { ac_try='$AR_FOR_TARGET -sr conftest.a conftest.o'; { (eval echo configure:1700: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } \
&& test -s conftest.a ; \
then
rtems_cv_AR_FOR_TARGET_S="yes"
@@ -1895,7 +1721,7 @@ echo "$ac_t""$rtems_cv_AR_FOR_TARGET_S" 1>&6
echo $ac_n "checking target's objcopy""... $ac_c" 1>&6
-echo "configure:1899: checking target's objcopy" >&5
+echo "configure:1725: checking target's objcopy" >&5
if eval "test \"`echo '$''{'ac_cv_path_OBJCOPY_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1928,7 +1754,7 @@ else
# will override the environment variable, which isn't what the user
# intends
echo $ac_n "checking whether environment variable OBJCOPY_FOR_TARGET is an absolute path""... $ac_c" 1>&6
-echo "configure:1932: checking whether environment variable OBJCOPY_FOR_TARGET is an absolute path" >&5
+echo "configure:1758: checking whether environment variable OBJCOPY_FOR_TARGET is an absolute path" >&5
case "$OBJCOPY_FOR_TARGET" in
/*) # valid
echo "$ac_t"""yes"" 1>&6
@@ -1945,7 +1771,7 @@ echo "configure:1932: checking whether environment variable OBJCOPY_FOR_TARGET i
# Extract the first word of ""$program_prefix"objcopy", so it can be a program name with args.
set dummy "$program_prefix"objcopy; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1949: checking for $ac_word" >&5
+echo "configure:1775: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_OBJCOPY_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1982,7 +1808,7 @@ fi
echo $ac_n "checking target's size""... $ac_c" 1>&6
-echo "configure:1986: checking target's size" >&5
+echo "configure:1812: checking target's size" >&5
if eval "test \"`echo '$''{'ac_cv_path_SIZE_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2015,7 +1841,7 @@ else
# will override the environment variable, which isn't what the user
# intends
echo $ac_n "checking whether environment variable SIZE_FOR_TARGET is an absolute path""... $ac_c" 1>&6
-echo "configure:2019: checking whether environment variable SIZE_FOR_TARGET is an absolute path" >&5
+echo "configure:1845: checking whether environment variable SIZE_FOR_TARGET is an absolute path" >&5
case "$SIZE_FOR_TARGET" in
/*) # valid
echo "$ac_t"""yes"" 1>&6
@@ -2032,7 +1858,7 @@ echo "configure:2019: checking whether environment variable SIZE_FOR_TARGET is a
# Extract the first word of ""$program_prefix"size", so it can be a program name with args.
set dummy "$program_prefix"size; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2036: checking for $ac_word" >&5
+echo "configure:1862: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_SIZE_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2069,7 +1895,7 @@ fi
echo $ac_n "checking target's strip""... $ac_c" 1>&6
-echo "configure:2073: checking target's strip" >&5
+echo "configure:1899: checking target's strip" >&5
if eval "test \"`echo '$''{'ac_cv_path_STRIP_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2102,7 +1928,7 @@ else
# will override the environment variable, which isn't what the user
# intends
echo $ac_n "checking whether environment variable STRIP_FOR_TARGET is an absolute path""... $ac_c" 1>&6
-echo "configure:2106: checking whether environment variable STRIP_FOR_TARGET is an absolute path" >&5
+echo "configure:1932: checking whether environment variable STRIP_FOR_TARGET is an absolute path" >&5
case "$STRIP_FOR_TARGET" in
/*) # valid
echo "$ac_t"""yes"" 1>&6
@@ -2119,7 +1945,7 @@ echo "configure:2106: checking whether environment variable STRIP_FOR_TARGET is
# Extract the first word of ""$program_prefix"strip", so it can be a program name with args.
set dummy "$program_prefix"strip; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2123: checking for $ac_word" >&5
+echo "configure:1949: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_STRIP_FOR_TARGET'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2158,7 +1984,7 @@ fi
if test "${target_cpu}" = "i386"; then
echo $ac_n "checking for 16 bit mode assembler support""... $ac_c" 1>&6
-echo "configure:2162: checking for 16 bit mode assembler support" >&5
+echo "configure:1988: checking for 16 bit mode assembler support" >&5
if eval "test \"`echo '$''{'rtems_cv_prog_gas_code16'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2168,7 +1994,7 @@ else
addr32
lgdt 0
EOF
- if { ac_try='$AS_FOR_TARGET -o conftest.o conftest.s'; { (eval echo configure:2172: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+ if { ac_try='$AS_FOR_TARGET -o conftest.o conftest.s'; { (eval echo configure:1998: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
rtems_cv_prog_gas_code16=yes
else
rtems_cv_prog_gas_code16=no
@@ -2198,7 +2024,7 @@ makefiles="$makefiles libbsp/bare/Makefile"
fi
echo $ac_n "checking for make/custom/$RTEMS_BSP.cfg""... $ac_c" 1>&6
-echo "configure:2202: checking for make/custom/$RTEMS_BSP.cfg" >&5
+echo "configure:2028: checking for make/custom/$RTEMS_BSP.cfg" >&5
if test -r "$srcdir/$RTEMS_TOPdir/make/custom/$RTEMS_BSP.cfg"; then
echo "$ac_t""yes" 1>&6
else
@@ -2206,7 +2032,7 @@ else
fi
echo $ac_n "checking whether BSP supports multiprocessing""... $ac_c" 1>&6
-echo "configure:2210: checking whether BSP supports multiprocessing" >&5
+echo "configure:2036: checking whether BSP supports multiprocessing" >&5
if eval "test \"`echo '$''{'rtems_cv_HAS_MP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2229,27 +2055,8 @@ HAS_MP="no"
fi
-echo $ac_n "checking whether to build rtems++""... $ac_c" 1>&6
-echo "configure:2234: checking whether to build rtems++" >&5
-if eval "test \"`echo '$''{'rtems_cv_HAS_CPLUSPLUS'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$RTEMS_HAS_CPLUSPLUS" = "yes"; then
- if test -n "$CXX_FOR_TARGET"; then
- rtems_cv_HAS_CPLUSPLUS="yes"
- else
- rtems_cv_HAS_CPLUSPLUS="no"
- fi
- else
- rtems_cv_HAS_CPLUSPLUS="no"
- fi
-fi
-
-echo "$ac_t""$rtems_cv_HAS_CPLUSPLUS" 1>&6
-HAS_CPLUSPLUS="$rtems_cv_HAS_CPLUSPLUS";
-
echo $ac_n "checking whether BSP supports networking""... $ac_c" 1>&6
-echo "configure:2253: checking whether BSP supports networking" >&5
+echo "configure:2060: checking whether BSP supports networking" >&5
if eval "test \"`echo '$''{'rtems_cv_HAS_NETWORKING'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2314,7 +2121,7 @@ fi
if test -d "$srcdir/libbsp/$bspcpudir$bspdir"; then
echo $ac_n "checking for Makefile.in in libbsp/${bspcpudir}$bspdir""... $ac_c" 1>&6
-echo "configure:2318: checking for Makefile.in in libbsp/${bspcpudir}$bspdir" >&5
+echo "configure:2125: checking for Makefile.in in libbsp/${bspcpudir}$bspdir" >&5
if test -d $srcdir/libbsp/${bspcpudir}$bspdir; then
rtems_av_save_dir=`pwd`;
cd $srcdir;
@@ -2329,7 +2136,7 @@ fi
echo $ac_n "checking for Makefile.in in libbsp/${bspcpudir}shared""... $ac_c" 1>&6
-echo "configure:2333: checking for Makefile.in in libbsp/${bspcpudir}shared" >&5
+echo "configure:2140: checking for Makefile.in in libbsp/${bspcpudir}shared" >&5
if test -d $srcdir/libbsp/${bspcpudir}shared; then
rtems_av_save_dir=`pwd`;
cd $srcdir;
@@ -2373,7 +2180,7 @@ fi
# find all the CPU dependent library Makefiles
echo $ac_n "checking for Makefile.in in libcpu/$RTEMS_CPU""... $ac_c" 1>&6
-echo "configure:2377: checking for Makefile.in in libcpu/$RTEMS_CPU" >&5
+echo "configure:2184: checking for Makefile.in in libcpu/$RTEMS_CPU" >&5
if test -d $srcdir/libcpu/$RTEMS_CPU; then
rtems_av_save_dir=`pwd`;
cd $srcdir;
@@ -2393,7 +2200,7 @@ case "${target}" in
*)
echo $ac_n "checking for Makefile.in in start/$RTEMS_CPU""... $ac_c" 1>&6
-echo "configure:2397: checking for Makefile.in in start/$RTEMS_CPU" >&5
+echo "configure:2204: checking for Makefile.in in start/$RTEMS_CPU" >&5
if test -d $srcdir/start/$RTEMS_CPU; then
rtems_av_save_dir=`pwd`;
cd $srcdir;
@@ -2413,7 +2220,7 @@ esac
if test "$HAS_NETWORKING" = "yes"; then
echo $ac_n "checking for Makefile.in in libnetworking""... $ac_c" 1>&6
-echo "configure:2417: checking for Makefile.in in libnetworking" >&5
+echo "configure:2224: checking for Makefile.in in libnetworking" >&5
if test -d $srcdir/libnetworking; then
rtems_av_save_dir=`pwd`;
cd $srcdir;
@@ -2428,7 +2235,7 @@ fi
echo $ac_n "checking for Makefile.in in librpc""... $ac_c" 1>&6
-echo "configure:2432: checking for Makefile.in in librpc" >&5
+echo "configure:2239: checking for Makefile.in in librpc" >&5
if test -d $srcdir/librpc; then
rtems_av_save_dir=`pwd`;
cd $srcdir;
@@ -2444,7 +2251,7 @@ fi
if test "$RTEMS_HAS_RDBG" = "yes"; then
echo $ac_n "checking whether BSP supports librdbg""... $ac_c" 1>&6
-echo "configure:2448: checking whether BSP supports librdbg" >&5
+echo "configure:2255: checking whether BSP supports librdbg" >&5
if eval "test \"`echo '$''{'rtems_cv_HAS_RDBG'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2466,7 +2273,7 @@ HAS_RDBG="$rtems_cv_HAS_RDBG"
# Extract the first word of "rpcgen", so it can be a program name with args.
set dummy rpcgen; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2470: checking for $ac_word" >&5
+echo "configure:2277: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RPCGEN'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2497,7 +2304,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2501: checking for $ac_word" >&5
+echo "configure:2308: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2536,7 +2343,7 @@ done
if test "$HAS_RDBG" = "yes"; then
echo $ac_n "checking for Makefile.in in librdbg""... $ac_c" 1>&6
-echo "configure:2540: checking for Makefile.in in librdbg" >&5
+echo "configure:2347: checking for Makefile.in in librdbg" >&5
if test -d $srcdir/librdbg; then
rtems_av_save_dir=`pwd`;
cd $srcdir;
@@ -2553,25 +2360,6 @@ fi
fi
fi
-# If the C++ support is enabled, then include the Makefiles
-if test "$HAS_CPLUSPLUS" = "yes"; then
-
-echo $ac_n "checking for Makefile.in in librtems++""... $ac_c" 1>&6
-echo "configure:2561: checking for Makefile.in in librtems++" >&5
-if test -d $srcdir/librtems++; then
- rtems_av_save_dir=`pwd`;
- cd $srcdir;
- rtems_av_tmp=`find librtems++ -name "Makefile.in" -print | sed "s/Makefile\.in/%/" | sort | sed "s/%/Makefile/"`
- makefiles="$makefiles $rtems_av_tmp";
- cd $rtems_av_save_dir;
- echo "$ac_t""done" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-fi
-
# If the HWAPI is enabled, the find the HWAPI Makefiles
# Check whether --enable-hwapi or --disable-hwapi was given.
if test "${enable_hwapi+set}" = set; then
@@ -2588,13 +2376,13 @@ fi
if test "$RTEMS_HAS_HWAPI" = "yes"; then
echo $ac_n "checking whether libwapi is present""... $ac_c" 1>&6
-echo "configure:2592: checking whether libwapi is present" >&5
+echo "configure:2380: checking whether libwapi is present" >&5
if test -f ${srcdir}/libhwapi/Makefile.in ; then
echo "$ac_t""yes" 1>&6
makefiles="$makefiles libhwapi/Makefile"
echo $ac_n "checking for Makefile.in in libhwapi/analog""... $ac_c" 1>&6
-echo "configure:2598: checking for Makefile.in in libhwapi/analog" >&5
+echo "configure:2386: checking for Makefile.in in libhwapi/analog" >&5
if test -d $srcdir/libhwapi/analog; then
rtems_av_save_dir=`pwd`;
cd $srcdir;
@@ -2609,7 +2397,7 @@ fi
echo $ac_n "checking for Makefile.in in libhwapi/discrete""... $ac_c" 1>&6
-echo "configure:2613: checking for Makefile.in in libhwapi/discrete" >&5
+echo "configure:2401: checking for Makefile.in in libhwapi/discrete" >&5
if test -d $srcdir/libhwapi/discrete; then
rtems_av_save_dir=`pwd`;
cd $srcdir;
@@ -2624,7 +2412,7 @@ fi
echo $ac_n "checking for Makefile.in in libhwapi/drivers""... $ac_c" 1>&6
-echo "configure:2628: checking for Makefile.in in libhwapi/drivers" >&5
+echo "configure:2416: checking for Makefile.in in libhwapi/drivers" >&5
if test -d $srcdir/libhwapi/drivers; then
rtems_av_save_dir=`pwd`;
cd $srcdir;
@@ -2639,7 +2427,7 @@ fi
echo $ac_n "checking for Makefile.in in libhwapi/non_volatile_memory""... $ac_c" 1>&6
-echo "configure:2643: checking for Makefile.in in libhwapi/non_volatile_memory" >&5
+echo "configure:2431: checking for Makefile.in in libhwapi/non_volatile_memory" >&5
if test -d $srcdir/libhwapi/non_volatile_memory; then
rtems_av_save_dir=`pwd`;
cd $srcdir;
@@ -2654,7 +2442,7 @@ fi
echo $ac_n "checking for Makefile.in in libhwapi/serial""... $ac_c" 1>&6
-echo "configure:2658: checking for Makefile.in in libhwapi/serial" >&5
+echo "configure:2446: checking for Makefile.in in libhwapi/serial" >&5
if test -d $srcdir/libhwapi/serial; then
rtems_av_save_dir=`pwd`;
cd $srcdir;
@@ -2669,7 +2457,7 @@ fi
echo $ac_n "checking for Makefile.in in libhwapi/support""... $ac_c" 1>&6
-echo "configure:2673: checking for Makefile.in in libhwapi/support" >&5
+echo "configure:2461: checking for Makefile.in in libhwapi/support" >&5
if test -d $srcdir/libhwapi/support; then
rtems_av_save_dir=`pwd`;
cd $srcdir;
@@ -2684,7 +2472,7 @@ fi
echo $ac_n "checking for Makefile.in in libhwapi/wrapup""... $ac_c" 1>&6
-echo "configure:2688: checking for Makefile.in in libhwapi/wrapup" >&5
+echo "configure:2476: checking for Makefile.in in libhwapi/wrapup" >&5
if test -d $srcdir/libhwapi/wrapup; then
rtems_av_save_dir=`pwd`;
cd $srcdir;
@@ -2714,7 +2502,7 @@ if test "$RTEMS_CPU" != "unix"; then
## HACK: Suppress libchip for unix
echo $ac_n "checking for Makefile.in in libchip""... $ac_c" 1>&6
-echo "configure:2718: checking for Makefile.in in libchip" >&5
+echo "configure:2506: checking for Makefile.in in libchip" >&5
if test -d $srcdir/libchip; then
rtems_av_save_dir=`pwd`;
cd $srcdir;
@@ -2731,7 +2519,7 @@ fi
echo $ac_n "checking for Makefile.in in libmisc""... $ac_c" 1>&6
-echo "configure:2735: checking for Makefile.in in libmisc" >&5
+echo "configure:2523: checking for Makefile.in in libmisc" >&5
if test -d $srcdir/libmisc; then
rtems_av_save_dir=`pwd`;
cd $srcdir;
@@ -2941,7 +2729,6 @@ s%@INSTALL_CHANGE@%$INSTALL_CHANGE%g
s%@PACKHEX@%$PACKHEX%g
s%@CC_FOR_TARGET@%$CC_FOR_TARGET%g
s%@GCCSED@%$GCCSED%g
-s%@CXX_FOR_TARGET@%$CXX_FOR_TARGET%g
s%@AR_FOR_TARGET@%$AR_FOR_TARGET%g
s%@AS_FOR_TARGET@%$AS_FOR_TARGET%g
s%@LD_FOR_TARGET@%$LD_FOR_TARGET%g
@@ -2954,7 +2741,6 @@ s%@RTEMS_GAS_CODE16@%$RTEMS_GAS_CODE16%g
s%@RTEMS_GAS_CODE16_TRUE@%$RTEMS_GAS_CODE16_TRUE%g
s%@RTEMS_GAS_CODE16_FALSE@%$RTEMS_GAS_CODE16_FALSE%g
s%@HAS_MP@%$HAS_MP%g
-s%@HAS_CPLUSPLUS@%$HAS_CPLUSPLUS%g
s%@HAS_NETWORKING@%$HAS_NETWORKING%g
s%@RTEMS_LIBBSP_CPU_SUBDIR@%$RTEMS_LIBBSP_CPU_SUBDIR%g
s%@UNIX_TRUE@%$UNIX_TRUE%g
diff --git a/c/src/lib/configure.in b/c/src/lib/configure.in
index f936728b9b..362fdf78a4 100644
--- a/c/src/lib/configure.in
+++ b/c/src/lib/configure.in
@@ -33,11 +33,6 @@ RTEMS_PROJECT_ROOT
dnl check target cc
RTEMS_PROG_CC_FOR_TARGET
-dnl check for g++
-if test "$RTEMS_HAS_CPLUSPLUS" = "yes"; then
- RTEMS_PROG_CXX_FOR_TARGET
-fi
-
RTEMS_CANONICALIZE_TOOLS
dnl if this is an i386, does gas have good code16 support?
@@ -53,7 +48,6 @@ fi
RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP)
RTEMS_CHECK_MULTIPROCESSING(RTEMS_BSP)
-RTEMS_CHECK_CXX(RTEMS_BSP)
RTEMS_CHECK_NETWORKING(RTEMS_BSP)
RTEMS_BSP_ALIAS(${RTEMS_BSP},bspdir)
@@ -143,11 +137,6 @@ if test "$HAS_NETWORKING" = "yes"; then
fi
fi
-# If the C++ support is enabled, then include the Makefiles
-if test "$HAS_CPLUSPLUS" = "yes"; then
- RTEMS_CHECK_MAKEFILE(librtems++)
-fi
-
# If the HWAPI is enabled, the find the HWAPI Makefiles
RTEMS_ENABLE_HWAPI
if test "$RTEMS_HAS_HWAPI" = "yes"; then
diff --git a/c/src/lib/include/Makefile.in b/c/src/lib/include/Makefile.in
index ea028a043a..ad21310a3c 100644
--- a/c/src/lib/include/Makefile.in
+++ b/c/src/lib/include/Makefile.in
@@ -41,11 +41,6 @@ MOTOROLA_H_FILES = $(MOTOROLA_H_PIECES:%=$(srcdir)/motorola/%.h)
ZILOG_H_PIECES = z8036 z8530 z8536
ZILOG_H_FILES = $(ZILOG_H_PIECES:%=$(srcdir)/zilog/%.h)
-RTEMSCPLUSPLUS_H_PIECES_yes_V = rtemsEvent rtemsInterrupt rtemsMessageQueue \
- rtemsSemaphore rtemsStatusCode rtemsTask rtemsTaskMode rtemsTimer
-RTEMSCPLUSPLUS_H_PIECES = $(RTEMSCPLUSPLUS_H_PIECES_$(HAS_CPLUSPLUS)_V)
-RTEMSCPLUSPLUS_H_FILES = $(RTEMSCPLUSPLUS_H_PIECES:%=$(srcdir)/rtems++/%.h)
-
RPC_H_PIECES = auth clnt rpc rpc_msg svc svc_auth types xdr
RPC_H_FILES = $(RPC_H_PIECES:%=$(srcdir)/rpc/%.h)
@@ -68,10 +63,6 @@ LIBRPCdir = $(LIBRPC_$(HAS_NETWORKING)_V)
LIBRDBG_yes_yes_V = $(PROJECT_INCLUDE)/rdbg
LIBRDBGdir = $(LIBRDBG_$(HAS_NETWORKING)_$(HAS_RDBG)_V)
-# We only make the rtems++ install point if it is enabled.
-LIBRTEMSCPLUSPLUS_yes_V = $(PROJECT_INCLUDE)/rtems++
-LIBRTEMSCPLUSPLUSdir = $(LIBRTEMSCPLUSPLUS_$(HAS_CPLUSPLUS)_V)
-
all: preinstall
preinstall: $(INSTALLDIRS) $(SRCS)
@@ -79,9 +70,6 @@ preinstall: $(INSTALLDIRS) $(SRCS)
@$(INSTALL_CHANGE) -m 644 $(SYS_H_FILES) $(PROJECT_INCLUDE)/sys
@$(INSTALL_CHANGE) -m 644 $(MOTOROLA_H_FILES) $(PROJECT_INCLUDE)/motorola
@$(INSTALL_CHANGE) -m 644 $(ZILOG_H_FILES) $(PROJECT_INCLUDE)/zilog
- @if test "$(HAS_CPLUSPLUS)" = "yes"; then \
- $(INSTALL_CHANGE) -m 644 $(RTEMSCPLUSPLUS_H_FILES) $(LIBRTEMSCPLUSPLUSdir); \
- fi
@if test "$(HAS_NETWORKING)" = "yes"; then \
$(INSTALL_CHANGE) -m 644 $(RPC_H_FILES) $(LIBRPCdir); \
fi
diff --git a/c/src/lib/include/rtems++/rtemsEvent.h b/c/src/lib/include/rtems++/rtemsEvent.h
deleted file mode 100644
index 3cc19eeb32..0000000000
--- a/c/src/lib/include/rtems++/rtemsEvent.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- ------------------------------------------------------------------------
- $Id$
- ------------------------------------------------------------------------
-
- 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.OARcorp.com/rtems/license.html.
-
- ------------------------------------------------------------------------
-
- 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, rtems_unsigned32 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 rtems_unsigned32 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 < _TOD_Microseconds_per_tick) ?
- _TOD_Microseconds_per_tick : micro_secs;
- set_status_code(rtems_event_receive(event_in,
- wait | condition,
- TOD_MICROSECONDS_TO_TICKS(usecs),
- &event_out));
- return last_status_code();
-}
-
-#endif // _rtemsEvent_h_
-
-
-
-
-
diff --git a/c/src/lib/include/rtems++/rtemsInterrupt.h b/c/src/lib/include/rtems++/rtemsInterrupt.h
deleted file mode 100644
index f722eb7683..0000000000
--- a/c/src/lib/include/rtems++/rtemsInterrupt.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- ------------------------------------------------------------------------
- $Id$
- ------------------------------------------------------------------------
-
- 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.OARcorp.com/rtems/license.html.
-
- ------------------------------------------------------------------------
-
- 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/lib/include/rtems++/rtemsMessageQueue.h b/c/src/lib/include/rtems++/rtemsMessageQueue.h
deleted file mode 100644
index 910c7279f7..0000000000
--- a/c/src/lib/include/rtems++/rtemsMessageQueue.h
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- ------------------------------------------------------------------------
- $Id$
- ------------------------------------------------------------------------
-
- 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.OARcorp.com/rtems/license.html.
-
- ------------------------------------------------------------------------
-
- 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 rtems_unsigned32 count,
- const rtems_unsigned32 max_message_size,
- const WaitMode wait_mode = wait_by_fifo,
- const Scope scope = local);
-
- // connects to a message queue
- rtemsMessageQueue(const char *name, const rtems_unsigned32 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 rtems_unsigned32 count,
- const rtems_unsigned32 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 rtems_unsigned32 node = RTEMS_SEARCH_ALL_NODES);
-
- // send a message of size from the buffer
- inline const rtems_status_code send(const void *buffer,
- const rtems_unsigned32 size);
- inline const rtems_status_code urgent(const void *buffer,
- const rtems_unsigned32 size);
- inline const rtems_status_code broadcast(const void *buffer,
- const rtems_unsigned32 size,
- rtems_unsigned32& count);
-
- // receive a message of size, the timeout is in micro-secs
- inline const rtems_status_code receive(const void *buffer,
- rtems_unsigned32& 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(rtems_unsigned32& 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 rtems_unsigned32 size)
-{
- return set_status_code(rtems_message_queue_send(id, (void*) buffer, size));
-}
-
-const rtems_status_code rtemsMessageQueue::urgent(const void *buffer,
- const rtems_unsigned32 size)
-{
- return set_status_code(rtems_message_queue_urgent(id, (void*) buffer, size));
-}
-
-const rtems_status_code rtemsMessageQueue::broadcast(const void *buffer,
- const rtems_unsigned32 size,
- rtems_unsigned32& count)
-{
- return set_status_code(rtems_message_queue_broadcast(id,
- (void*) buffer,
- size,
- &count));
-}
-
-const rtems_status_code rtemsMessageQueue::receive(const void *buffer,
- rtems_unsigned32& size,
- rtems_interval micro_secs,
- bool wait)
-{
- rtems_interval usecs =
- micro_secs && (micro_secs < _TOD_Microseconds_per_tick) ?
- _TOD_Microseconds_per_tick : micro_secs;
- return set_status_code(rtems_message_queue_receive(id,
- (void*) buffer,
- &size,
- wait ? RTEMS_WAIT : RTEMS_NO_WAIT,
- TOD_MICROSECONDS_TO_TICKS(usecs)));
-}
-
-const rtems_status_code rtemsMessageQueue::flush(rtems_unsigned32& count)
-{
- return set_status_code(rtems_message_queue_flush(id, &count));
-}
-
-#endif // _rtemsMessageQueue_h_
-
-
-
-
diff --git a/c/src/lib/include/rtems++/rtemsSemaphore.h b/c/src/lib/include/rtems++/rtemsSemaphore.h
deleted file mode 100644
index 9d4fdbeb58..0000000000
--- a/c/src/lib/include/rtems++/rtemsSemaphore.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- ------------------------------------------------------------------------
- $Id$
- ------------------------------------------------------------------------
-
- 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.OARcorp.com/rtems/license.html.
-
- ------------------------------------------------------------------------
-
- 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 rtems_unsigned32 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 rtems_unsigned32 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 rtems_unsigned32 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, rtems_unsigned32 node);
-
- // obtain the semaphore, timeout is in micro-seconds
- inline const rtems_status_code obtain(bool wait = true,
- const rtems_unsigned32 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 rtems_unsigned32 micro_secs)
-{
- rtems_interval usecs =
- micro_secs && (micro_secs < _TOD_Microseconds_per_tick) ?
- _TOD_Microseconds_per_tick : micro_secs;
- return
- set_status_code(rtems_semaphore_obtain(id,
- wait ? RTEMS_WAIT : RTEMS_NO_WAIT,
- TOD_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/lib/include/rtems++/rtemsStatusCode.h b/c/src/lib/include/rtems++/rtemsStatusCode.h
deleted file mode 100644
index fee230868b..0000000000
--- a/c/src/lib/include/rtems++/rtemsStatusCode.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- ------------------------------------------------------------------------
- $Id$
- ------------------------------------------------------------------------
-
- 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.OARcorp.com/rtems/license.html.
-
- ------------------------------------------------------------------------
-
- 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/lib/include/rtems++/rtemsTask.h b/c/src/lib/include/rtems++/rtemsTask.h
deleted file mode 100644
index 08156428fb..0000000000
--- a/c/src/lib/include/rtems++/rtemsTask.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- ------------------------------------------------------------------------
- $Id$
- ------------------------------------------------------------------------
-
- 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.OARcorp.com/rtems/license.html.
-
- ------------------------------------------------------------------------
-
- 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.
-
- The rtemsTask class reserved notepad register 31.
-
- ------------------------------------------------------------------------ */
-
-#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 rtems_unsigned32 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 rtems_unsigned32 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 rtems_unsigned32 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 rtems_unsigned32 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);
-
- // notepad control
- const rtems_status_code get_note(const rtems_unsigned32 notepad,
- rtems_unsigned32& note);
- const rtems_status_code set_note(const rtems_unsigned32 notepad,
- const rtems_unsigned32 note);
-
- // 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/lib/include/rtems++/rtemsTaskMode.h b/c/src/lib/include/rtems++/rtemsTaskMode.h
deleted file mode 100644
index 6d32897cc0..0000000000
--- a/c/src/lib/include/rtems++/rtemsTaskMode.h
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- ------------------------------------------------------------------------
- $Id$
- ------------------------------------------------------------------------
-
- 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.OARcorp.com/rtems/license.html.
-
- ------------------------------------------------------------------------
-
- 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 boolean 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 boolean 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 boolean 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 boolean 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 boolean 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 boolean 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/lib/include/rtems++/rtemsTimer.h b/c/src/lib/include/rtems++/rtemsTimer.h
deleted file mode 100644
index 43401bab73..0000000000
--- a/c/src/lib/include/rtems++/rtemsTimer.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- ------------------------------------------------------------------------
- $Id$
- ------------------------------------------------------------------------
-
- 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.OARcorp.com/rtems/license.html.
-
- ------------------------------------------------------------------------
-
- 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 < _TOD_Microseconds_per_tick) ?
- _TOD_Microseconds_per_tick : micro_secs;
- return set_status_code(rtems_timer_fire_after(id,
- TOD_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 < _TOD_Microseconds_per_tick) ?
- _TOD_Microseconds_per_tick : micro_secs;
- return set_status_code(rtems_timer_fire_after(id,
- TOD_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/lib/librtems++/Makefile.in b/c/src/lib/librtems++/Makefile.in
deleted file mode 100644
index 1bad1b6d50..0000000000
--- a/c/src/lib/librtems++/Makefile.in
+++ /dev/null
@@ -1,59 +0,0 @@
-#
-# $Id$
-#
-
-@SET_MAKE@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-top_builddir = ..
-subdir = librtems++
-
-RTEMS_ROOT = @RTEMS_ROOT@
-PROJECT_ROOT = @PROJECT_ROOT@
-
-VPATH = @srcdir@
-
-LIBNAME = librtems++.a
-LIB = ${ARCH}/${LIBNAME}
-
-# C and C++ source names, if any, go here -- minus the .c or .cc
-CC_PIECES = rtemsEvent rtemsInterrupt rtemsMessageQueue rtemsSemaphore \
- rtemsStatusCode rtemsTask rtemsTimer
-CC_FILES = $(CC_PIECES:%=%.cc)
-CC_O_FILES = $(CC_PIECES:%=${ARCH}/%.o)
-
-SRCS = $(CC_FILES)
-OBJS = $(CC_O_FILES)
-
-include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
-include $(RTEMS_ROOT)/make/lib.cfg
-
-INSTALL_CHANGE = @INSTALL_CHANGE@
-
-#
-# Add local stuff here using +=
-#
-
-DEFINES +=
-CPPFLAGS +=
-CFLAGS += $(LIBC_DEFINES)
-
-#
-# Add your list of files to delete here. The config files
-# already know how to delete some stuff, so you may want
-# to just run 'make clean' first to see what gets missed.
-# 'make clobber' already includes 'make clean'
-#
-
-CLEAN_ADDITIONS += $(LIB)
-CLOBBER_ADDITIONS +=
-
-all: ${ARCH} $(LIB)
- @$(INSTALL_VARIANT) -m 644 ${LIB} $(PROJECT_RELEASE)/lib
-
-$(LIB): $(SRCS) ${OBJS}
- $(make-library)
-
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
diff --git a/c/src/lib/librtems++/README b/c/src/lib/librtems++/README
deleted file mode 100644
index 65b0eb980e..0000000000
--- a/c/src/lib/librtems++/README
+++ /dev/null
@@ -1,266 +0,0 @@
-#
-# $Id$
-#
-
-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@plessey.com.au, or the RTEMS
-mailing list.
-
-To Do
-=====
-
-1) Develop a complete test suite (under way, cjohns@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/lib/librtems++/rtemsEvent.cc b/c/src/lib/librtems++/rtemsEvent.cc
deleted file mode 100644
index a917f32836..0000000000
--- a/c/src/lib/librtems++/rtemsEvent.cc
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- ------------------------------------------------------------------------
- $Id$
- ------------------------------------------------------------------------
-
- 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.OARcorp.com/rtems/license.html.
-
- ------------------------------------------------------------------------
-
- See header file.
-
- ------------------------------------------------------------------------
-*/
-
-#include <rtems++/rtemsEvent.h>
-
-/* ----
- rtemsEvent
-*/
-
-rtemsEvent::rtemsEvent(const char *name_str, rtems_unsigned32 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 rtems_unsigned32 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/lib/librtems++/rtemsInterrupt.cc b/c/src/lib/librtems++/rtemsInterrupt.cc
deleted file mode 100644
index 4cd5d9afa9..0000000000
--- a/c/src/lib/librtems++/rtemsInterrupt.cc
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- ------------------------------------------------------------------------
- $Id$
- ------------------------------------------------------------------------
-
- 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.OARcorp.com/rtems/license.html.
-
- ------------------------------------------------------------------------
-
- See header file.
-
- ------------------------------------------------------------------------
-*/
-
-#include <rtems++/rtemsInterrupt.h>
-
-/* ----
- Interrupt Table
-
- This table is used to re-direct the call from RTEMS to a user
- object
-*/
-
-static rtemsInterrupt *interrupt_table[CPU_INTERRUPT_NUMBER_OF_VECTORS];
-
-// has the table been initialised
-static bool initialised = false;
-
-/* ----
- rtemsInterrupt
-*/
-
-rtemsInterrupt::rtemsInterrupt()
- : vector(0),
- caught(false),
- old_handler(0),
- old_interrupt(0)
-{
- if (!initialised)
- {
- for (rtems_vector_number vec = 0;
- vec < CPU_INTERRUPT_NUMBER_OF_VECTORS;
- vec++)
- {
- interrupt_table[vector] = 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[vector];
- interrupt_table[vector] = this;
- vector = vec;
-
- set_status_code(rtems_interrupt_catch(redirector,
- vector,
- &old_handler));
-
- 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)
- {
- set_status_code(rtems_interrupt_catch(old_handler,
- vector,
- &old_handler));
-
- 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();
-}
diff --git a/c/src/lib/librtems++/rtemsMessageQueue.cc b/c/src/lib/librtems++/rtemsMessageQueue.cc
deleted file mode 100644
index c3183dc2b0..0000000000
--- a/c/src/lib/librtems++/rtemsMessageQueue.cc
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- ------------------------------------------------------------------------
- $Id$
- ------------------------------------------------------------------------
-
- 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.OARcorp.com/rtems/license.html.
-
- ------------------------------------------------------------------------
-
- See header file.
-
- ------------------------------------------------------------------------
-*/
-
-#include <string.h>
-#include <rtems++/rtemsMessageQueue.h>
-
-/* ----
- rtemsMessageQueue
-*/
-
-rtemsMessageQueue::rtemsMessageQueue(const char* mqname,
- const rtems_unsigned32 count,
- const rtems_unsigned32 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 rtems_unsigned32 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 rtems_unsigned32 count,
- const rtems_unsigned32 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 rtems_unsigned32 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/lib/librtems++/rtemsSemaphore.cc b/c/src/lib/librtems++/rtemsSemaphore.cc
deleted file mode 100644
index 5821612618..0000000000
--- a/c/src/lib/librtems++/rtemsSemaphore.cc
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- ------------------------------------------------------------------------
- $Id$
- ------------------------------------------------------------------------
-
- 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.OARcorp.com/rtems/license.html.
-
- ------------------------------------------------------------------------
-
- See header file.
-
- ------------------------------------------------------------------------
-*/
-
-#include <string.h>
-#include <rtems++/rtemsSemaphore.h>
-
-/* ----
- rtemsSemaphore
-*/
-
-rtemsSemaphore::rtemsSemaphore(const char* sname,
- const Scope scope,
- const rtems_unsigned32 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 rtems_unsigned32 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 rtems_unsigned32 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 rtems_unsigned32 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/lib/librtems++/rtemsStatusCode.cc b/c/src/lib/librtems++/rtemsStatusCode.cc
deleted file mode 100644
index e8e3f965ba..0000000000
--- a/c/src/lib/librtems++/rtemsStatusCode.cc
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- ------------------------------------------------------------------------
- $Id$
- ------------------------------------------------------------------------
-
- 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.OARcorp.com/rtems/license.html.
-
- ------------------------------------------------------------------------
-
- See header file.
-
- ------------------------------------------------------------------------
-*/
-
-#include <rtems++/rtemsStatusCode.h>
-
-/* ----
- Status Code string table
-*/
-
-static 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/lib/librtems++/rtemsTask.cc b/c/src/lib/librtems++/rtemsTask.cc
deleted file mode 100644
index 619f7d4071..0000000000
--- a/c/src/lib/librtems++/rtemsTask.cc
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- ------------------------------------------------------------------------
- $Id$
- ------------------------------------------------------------------------
-
- 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.OARcorp.com/rtems/license.html.
-
- ------------------------------------------------------------------------
-
- See header file.
-
- ------------------------------------------------------------------------
-*/
-
-#include <string.h>
-#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 rtems_unsigned32 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, rtems_unsigned32 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 rtems_unsigned32 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 rtems_unsigned32 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 && (micro_secs < _TOD_Microseconds_per_tick) ?
- _TOD_Microseconds_per_tick : micro_secs;
- return set_status_code(rtems_task_wake_after(TOD_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));
-}
-
-const rtems_status_code rtemsTask::get_note(const rtems_unsigned32 notepad,
- rtems_unsigned32& note)
-{
- return set_status_code(rtems_task_get_note(id, notepad, &note));
-}
-
-const rtems_status_code rtemsTask::set_note(const rtems_unsigned32 notepad,
- const rtems_unsigned32 note)
-{
- return set_status_code(rtems_task_set_note(id, notepad, note));
-}
-
-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/lib/librtems++/rtemsTimer.cc b/c/src/lib/librtems++/rtemsTimer.cc
deleted file mode 100644
index 835bfd74ce..0000000000
--- a/c/src/lib/librtems++/rtemsTimer.cc
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- ------------------------------------------------------------------------
- $Id$
- ------------------------------------------------------------------------
-
- 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.OARcorp.com/rtems/license.html.
-
- ------------------------------------------------------------------------
-
- See header file.
-
- ------------------------------------------------------------------------
-*/
-
-#include <string.h>
-#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/c/src/librtems++/src/Makefile.in b/c/src/librtems++/src/Makefile.in
index 1bad1b6d50..aadf9ab9b4 100644
--- a/c/src/librtems++/src/Makefile.in
+++ b/c/src/librtems++/src/Makefile.in
@@ -6,7 +6,7 @@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = ..
-subdir = librtems++
+subdir = src
RTEMS_ROOT = @RTEMS_ROOT@
PROJECT_ROOT = @PROJECT_ROOT@