Compare commits

..

1 Commits
4.6.2 ... 4.6.0

Author SHA1 Message Date
cvs2git
f810577581 This commit was manufactured by cvs2svn to create tag 'rtems-4-6-0'.
Sprout from rtems-4-6-branch 2004-02-09 13:21:25 UTC cvs2git <rtems-devel@rtems.org> 'This commit was manufactured by cvs2svn to create branch 'rtems-4-6-branch'.'
Delete:
    scripts/rtems/rtems-source.add
2004-02-09 13:21:26 +00:00
275 changed files with 1000 additions and 2106 deletions

View File

@@ -1,54 +1,3 @@
2004-10-18 Joel Sherrill <joel@OARcorp.com>
* VERSION: Updated to rtems-4.6.2.
2004-10-18 Joel Sherrill <joel@OARcorp.com>
* aclocal/version.m4: Updated to rtems-4.6.2.
2004-08-18 Ralf Corsepius <ralf_corsepius@rtems.org>
PR 673/make_build
* config-ml.in: Quote 'cd "${ml_origdir}"'.
Quote 'cd "${ML_POPDIR}"'.
2004-08-18 Ralf Corsepius <ralf_corsepius@rtems.org>
PR 673/make_build
* aclocal/ppc.m4 (RTEMS_PPC_EXCEPTIONS): Quote ac_popdir uses.
* aclocal/target.m4 (_RTEMS_POP_BUILDDIR): Ditto.
* acinclude.m4 (_RTEMS_CONFIG_SUBDIR): Quote ac_popdir uses.
2004-08-18 Ralf Corsepius <ralf_corsepius@rtems.org>
* acinclude.m4: Fix m4-underquoting.
2004-08-18 Ralf Corsepius <ralf_corsepius@rtems.org>
* aclocal/bsp-alias.m4, aclocal/bsp-arg-enable.m4,
aclocal/canonical-host.m4, aclocal/canonical-target-name.m4,
aclocal/canonicalize-tools.m4, aclocal/check-bsps.m4,
aclocal/check-cpu.m4, aclocal/check-custom-bsp.m4, aclocal/check-cxx.m4,
aclocal/check-itron.m4, aclocal/check-multiprocessing.m4,
aclocal/check-networking.m4, aclocal/check-newlib.m4,
aclocal/check-posix.m4, aclocal/check-rdbg.m4, aclocal/check-tool.m4,
aclocal/config-subdirs.m4, aclocal/enable-bare.m4,
aclocal/enable-cxx.m4, aclocal/enable-inlines.m4,
aclocal/enable-itron.m4, aclocal/enable-multiprocessing.m4,
aclocal/enable-networking.m4, aclocal/enable-posix.m4,
aclocal/enable-rdbg.m4, aclocal/enable-rtemsbsp.m4,
aclocal/enable-tests.m4, aclocal/env-rtemsbsp.m4,
aclocal/gcc-isystem.m4, aclocal/gcc-pipe.m4, aclocal/gcc-specs.m4,
aclocal/i386-gas-code16.m4, aclocal/multilib.m4, aclocal/path-ksh.m4,
aclocal/path-perl.m4, aclocal/prog-cc.m4, aclocal/prog-cxx.m4,
aclocal/project-root.m4, aclocal/rtems-debug.m4,
aclocal/rtems-test-no-pause.m4, aclocal/rtems-top.m4,
aclocal/target.m4, aclocal/tool-paths.m4: Fix m4-underquoting.
2004-04-08 Joel Sherrill <joel@OARcorp.com>
* aclocal/version.m4: Updated to rtems-4.6.1.
2004-02-03 Joel Sherrill <joel@OARcorp.com>
* VERSION: Updated to rtems-4.6.0.

View File

@@ -4,4 +4,4 @@
# $Id$
#
RTEMS Version 4.6.2
RTEMS Version 4.6.0

View File

@@ -261,7 +261,7 @@ if test "$no_recursion" != yes; then
AC_MSG_ERROR([$ac_sub_configure failed for $ac_dir])
fi
cd "$ac_popdir"
cd $ac_popdir
done
fi
fi
@@ -332,7 +332,7 @@ m4_divert_text([DEFAULTS],
m4_expand_once([_RTEMS_COMMANDS_POST_CONFIG_SUBDIRS])
])
AC_DEFUN([_RTEMS_BUILD_CONFIG_PREPARE],[
AC_DEFUN(_RTEMS_BUILD_CONFIG_PREPARE,[
## # Record the configure arguments in Makefile.
m4_ifdef([_RTEMS_BUILD_CONFIGDIRS_LIST],
[
@@ -358,7 +358,7 @@ m4_divert_text([DEFAULTS],
m4_expand_once([_RTEMS_COMMANDS_POST_CONFIG_SUBDIRS])
])
AC_DEFUN([_RTEMS_HOST_CONFIG_PREPARE],[
AC_DEFUN(_RTEMS_HOST_CONFIG_PREPARE,[
m4_ifdef([_RTEMS_HOST_CONFIGDIRS_LIST],
[
m4_expand_once([_RTEMS_TOOLS([host],[HOST])])
@@ -382,7 +382,7 @@ m4_divert_text([DEFAULTS],
m4_expand_once([_RTEMS_COMMANDS_POST_CONFIG_SUBDIRS])
])
AC_DEFUN([_RTEMS_TARGET_CONFIG_PREPARE],[
AC_DEFUN(_RTEMS_TARGET_CONFIG_PREPARE,[
m4_ifdef([_RTEMS_TARGET_CONFIGDIRS_LIST],
[
m4_expand_once([_RTEMS_TOOLS([target],[TARGET])])

View File

@@ -4,7 +4,7 @@ dnl
dnl _RTEMS_BSP_ALIAS(BSP_ALIAS,RTEMS_BSP_FAMILY)
dnl Internal subroutine to RTEMS_BSP_ALIAS
AC_DEFUN([_RTEMS_BSP_ALIAS],
AC_DEFUN(_RTEMS_BSP_ALIAS,
[# account for "aliased" bsps which share source code
case $1 in
simcpu32) $2=sim68000 ;; # BSVC CPU32 variant
@@ -34,7 +34,7 @@ AC_DEFUN([_RTEMS_BSP_ALIAS],
dnl RTEMS_BSP_ALIAS(BSP_ALIAS,RTEMS_BSP_FAMILY)
dnl convert a bsp alias $1 into its bsp directory RTEMS_BSP_FAMILY
AC_DEFUN([RTEMS_BSP_ALIAS],
AC_DEFUN(RTEMS_BSP_ALIAS,
[_RTEMS_BSP_ALIAS(m4_if([$1],,[$RTEMS_BSP],[$1]),
m4_if([$2],,[RTEMS_BSP_FAMILY],[$2]))]
)

View File

@@ -9,7 +9,7 @@ dnl Configure scripts will receive <bsp-value> if <RTEMS_BSP> matches the
dnl actual value of the shell variable RTEMS_BSP (cf. RTEMS_ENV_RTEMSBSP),
dnl and the raw value passed to --enable-FEATURE otherwise.
dnl
AC_DEFUN([RTEMS_BSP_ARG_ENABLE],
AC_DEFUN(RTEMS_BSP_ARG_ENABLE,
[AC_REQUIRE([RTEMS_ENV_RTEMSBSP])
AC_ARG_ENABLE([$1],[$2],
[enableval=`echo "[$enable_]patsubst([$1], -, _)" | sed -e "s%^${RTEMS_BSP}:%%"`

View File

@@ -1,6 +1,6 @@
dnl $Id$
AC_DEFUN([RTEMS_CANONICAL_HOST],
AC_DEFUN(RTEMS_CANONICAL_HOST,
[dnl
AC_REQUIRE([AC_CANONICAL_HOST])
RTEMS_HOST=$host_os

View File

@@ -8,7 +8,7 @@ dnl target naming conventions "processor-vendor-os"
dnl Therefore autoconf's AC_CANONICAL_TARGET will fail for them
dnl and we have to fix it for rtems ourselves
AC_DEFUN([RTEMS_CANONICAL_TARGET_CPU],
AC_DEFUN(RTEMS_CANONICAL_TARGET_CPU,
[
AC_CANONICAL_TARGET
AC_MSG_CHECKING(rtems target cpu)

View File

@@ -4,7 +4,7 @@ dnl
dnl Set target tools
dnl
AC_DEFUN([RTEMS_CANONICALIZE_TOOLS],
AC_DEFUN(RTEMS_CANONICALIZE_TOOLS,
[AC_REQUIRE([RTEMS_PROG_CC])dnl
dnl FIXME: What shall be done if these tools are not available?

View File

@@ -4,7 +4,7 @@ dnl Report all available bsps for a target,
dnl check if a bsp-subdirectory is present for all bsps found
dnl
dnl RTEMS_CHECK_BSPS(bsp_list)
AC_DEFUN([RTEMS_CHECK_BSPS],
AC_DEFUN(RTEMS_CHECK_BSPS,
[
AC_REQUIRE([RTEMS_CHECK_CPU])dnl sets RTEMS_CPU, target
AC_REQUIRE([RTEMS_TOP])dnl sets RTEMS_TOPdir

View File

@@ -1,7 +1,7 @@
dnl $Id$
dnl check if RTEMS support a cpu
AC_DEFUN([RTEMS_CHECK_CPU],
AC_DEFUN(RTEMS_CHECK_CPU,
[dnl
AC_REQUIRE([RTEMS_TOP])
AC_REQUIRE([RTEMS_CANONICAL_TARGET_CPU])

View File

@@ -1,6 +1,6 @@
dnl $Id$
AC_DEFUN([RTEMS_CHECK_CUSTOM_BSP],[
AC_DEFUN(RTEMS_CHECK_CUSTOM_BSP,[
AC_REQUIRE([RTEMS_TOP])
AC_MSG_CHECKING([for make/custom/[$]$1.cfg])

View File

@@ -1,6 +1,6 @@
dnl $Id$
dnl
AC_DEFUN([RTEMS_CHECK_CXX],
AC_DEFUN(RTEMS_CHECK_CXX,
[dnl
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
AC_REQUIRE([RTEMS_PROG_CC_FOR_TARGET])dnl

View File

@@ -1,6 +1,6 @@
dnl $Id$
dnl
AC_DEFUN([RTEMS_CHECK_ITRON_API],
AC_DEFUN(RTEMS_CHECK_ITRON_API,
[dnl
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
AC_REQUIRE([RTEMS_ENABLE_ITRON])dnl
@@ -28,7 +28,7 @@ fi
AC_SUBST(HAS_ITRON_API)dnl
])
AC_DEFUN([RTEMS_DEFINE_ITRON_API],
AC_DEFUN(RTEMS_DEFINE_ITRON_API,
[AC_REQUIRE([RTEMS_CHECK_ITRON_API])dnl
if test x"${HAS_ITRON_API}" = x"yes";
then

View File

@@ -2,7 +2,7 @@ dnl
dnl $Id$
dnl
AC_DEFUN([RTEMS_CHECK_MULTIPROCESSING],
AC_DEFUN(RTEMS_CHECK_MULTIPROCESSING,
[dnl
AC_REQUIRE([RTEMS_ENABLE_MULTILIB])dnl
AC_REQUIRE([RTEMS_ENV_RTEMSBSP])dnl

View File

@@ -1,6 +1,6 @@
dnl $Id$
dnl
AC_DEFUN([RTEMS_CHECK_NETWORKING],
AC_DEFUN(RTEMS_CHECK_NETWORKING,
[dnl
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
AC_REQUIRE([RTEMS_ENABLE_NETWORKING])dnl

View File

@@ -1,6 +1,6 @@
dnl $Id$
AC_DEFUN([RTEMS_CHECK_NEWLIB],
AC_DEFUN(RTEMS_CHECK_NEWLIB,
[dnl
AC_REQUIRE([RTEMS_PROG_CC_FOR_TARGET])dnl
AC_REQUIRE([RTEMS_CANONICALIZE_TOOLS])dnl

View File

@@ -1,6 +1,6 @@
dnl $Id$
dnl
AC_DEFUN([RTEMS_CHECK_POSIX_API],
AC_DEFUN(RTEMS_CHECK_POSIX_API,
[dnl
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
AC_REQUIRE([RTEMS_ENABLE_POSIX])dnl
@@ -28,7 +28,7 @@ fi
AC_SUBST(HAS_POSIX_API)dnl
])
AC_DEFUN([RTEMS_DEFINE_POSIX_API],
AC_DEFUN(RTEMS_DEFINE_POSIX_API,
[AC_REQUIRE([RTEMS_CHECK_POSIX_API])dnl
AS_IF(
[test x"${HAS_POSIX_API}" = x"yes"],

View File

@@ -1,6 +1,6 @@
dnl $Id$
dnl
AC_DEFUN([RTEMS_CHECK_RDBG],
AC_DEFUN(RTEMS_CHECK_RDBG,
[dnl
AC_REQUIRE([RTEMS_TOP])dnl
AC_REQUIRE([RTEMS_CHECK_CPU])dnl

View File

@@ -3,7 +3,7 @@ dnl $Id$
## Check for a cross tool, similar to AC_CHECK_TOOL, but do not fall back to
## the un-prefixed version of PROG-TO-CHECK-FOR.
dnl RTEMS_CHECK_TOOL(VARIABLE, PROG-TO-CHECK-FOR[, VALUE-IF-NOT-FOUND [, PATH]])
AC_DEFUN([RTEMS_CHECK_TOOL],
AC_DEFUN(RTEMS_CHECK_TOOL,
[
AS_IF([test "x$build_alias" != "x$host_alias"],
[rtems_tool_prefix=${ac_tool_prefix}])

View File

@@ -11,7 +11,7 @@ dnl
dnl
dnl _AC_DOTS(PATH)
dnl
AC_DEFUN([_AC_DOTS],[
AC_DEFUN(_AC_DOTS,[
# A "../" for each directory in $1.
ac_dots=`echo $1 | \
sed -e 's%^\./%%' -e 's%[[^/]]$%&/%' -e 's%[[^/]]*/%../%g'`
@@ -20,7 +20,7 @@ AC_DEFUN([_AC_DOTS],[
dnl
dnl _RTEMS_ADJUST_SRCDIR(REVAR,CONFIG_DIR[,TARGET_SUBDIR])
dnl
AC_DEFUN([_RTEMS_ADJUST_SRCDIR],[
AC_DEFUN(_RTEMS_ADJUST_SRCDIR,[
_AC_DOTS(ifelse([$3], ,[$2],[$3/$2]))
case "$srcdir" in

View File

@@ -1,4 +1,4 @@
AC_DEFUN([RTEMS_ENABLE_BARE],
AC_DEFUN(RTEMS_ENABLE_BARE,
[
AC_ARG_ENABLE(bare-cpu-cflags,
[AC_HELP_STRING([--enable-bare-cpu-cflags],

View File

@@ -1,6 +1,6 @@
dnl $Id$
AC_DEFUN([RTEMS_ENABLE_CXX],
AC_DEFUN(RTEMS_ENABLE_CXX,
[
AC_ARG_ENABLE(cxx,
[AC_HELP_STRING([--enable-cxx],

View File

@@ -1,6 +1,6 @@
dnl $Id$
AC_DEFUN([RTEMS_ENABLE_INLINES],
AC_DEFUN(RTEMS_ENABLE_INLINES,
[AC_ARG_ENABLE(rtems-inlines,
[AC_HELP_STRING([--enable-rtems-inlines],
[enable RTEMS inline functions (default:enabled, disable to use macros)])],

View File

@@ -1,6 +1,6 @@
dnl $Id$
AC_DEFUN([RTEMS_ENABLE_ITRON],
AC_DEFUN(RTEMS_ENABLE_ITRON,
[
## AC_BEFORE([$0], [RTEMS_CHECK_ITRON_API])dnl

View File

@@ -1,6 +1,6 @@
dnl $Id$
AC_DEFUN([RTEMS_ENABLE_MULTIPROCESSING],
AC_DEFUN(RTEMS_ENABLE_MULTIPROCESSING,
[
AC_ARG_ENABLE(multiprocessing,
[AC_HELP_STRING([--enable-multiprocessing],

View File

@@ -1,6 +1,6 @@
dnl $Id$
AC_DEFUN([RTEMS_ENABLE_NETWORKING],
AC_DEFUN(RTEMS_ENABLE_NETWORKING,
[
## AC_BEFORE([$0], [RTEMS_CHECK_NETWORKING])dnl

View File

@@ -1,6 +1,6 @@
dnl $Id$
AC_DEFUN([RTEMS_ENABLE_POSIX],
AC_DEFUN(RTEMS_ENABLE_POSIX,
[
## AC_BEFORE([$0], [RTEMS_CHECK_POSIX_API])dnl

View File

@@ -1,6 +1,6 @@
dnl $Id$
AC_DEFUN([RTEMS_ENABLE_RDBG],
AC_DEFUN(RTEMS_ENABLE_RDBG,
[
AC_BEFORE([$0], [RTEMS_CHECK_RDBG])dnl

View File

@@ -3,7 +3,7 @@ dnl $Id$
dnl Override the set of BSPs to be built.
dnl used by the toplevel configure script
dnl RTEMS_ENABLE_RTEMSBSP(rtems_bsp_list)
AC_DEFUN([RTEMS_ENABLE_RTEMSBSP],
AC_DEFUN(RTEMS_ENABLE_RTEMSBSP,
[
AC_BEFORE([$0], [RTEMS_ENV_RTEMSBSP])
AC_ARG_ENABLE(rtemsbsp,

View File

@@ -1,6 +1,6 @@
dnl $Id$
AC_DEFUN([RTEMS_ENABLE_TESTS],
AC_DEFUN(RTEMS_ENABLE_TESTS,
[
# If the tests are enabled, then find all the test suite Makefiles
AC_MSG_CHECKING([if the test suites are enabled? ])

View File

@@ -2,7 +2,7 @@ dnl $Id$
dnl Pass a single BSP via an environment variable
dnl used by per BSP configure scripts
AC_DEFUN([RTEMS_ENV_RTEMSBSP],
AC_DEFUN(RTEMS_ENV_RTEMSBSP,
[dnl
AC_BEFORE([$0], [RTEMS_ENABLE_RTEMSBSP])dnl
AC_BEFORE([$0], [RTEMS_PROJECT_ROOT])dnl

View File

@@ -4,7 +4,7 @@ dnl
dnl Check whether the gcc accepts -isystem
dnl
AC_DEFUN([RTEMS_GCC_ISYSTEM],
AC_DEFUN(RTEMS_GCC_ISYSTEM,
[AC_REQUIRE([RTEMS_PROG_CC])
AC_CACHE_CHECK(whether $CC accepts -isystem,rtems_cv_gcc_isystem,
[

View File

@@ -4,7 +4,7 @@ dnl
dnl Check whether the target compiler accepts -pipe
dnl
AC_DEFUN([RTEMS_GCC_PIPE],
AC_DEFUN(RTEMS_GCC_PIPE,
[AC_REQUIRE([RTEMS_PROG_CC])
AC_REQUIRE([AC_CANONICAL_HOST])
AC_CACHE_CHECK(whether $CC accepts --pipe,rtems_cv_gcc_pipe,

View File

@@ -4,7 +4,7 @@ dnl
dnl Check whether the target compiler accepts -specs
dnl
AC_DEFUN([RTEMS_GCC_SPECS],
AC_DEFUN(RTEMS_GCC_SPECS,
[AC_REQUIRE([RTEMS_PROG_CC])
AC_CACHE_CHECK(whether $CC accepts -specs,rtems_cv_gcc_specs,
[

View File

@@ -5,7 +5,7 @@ dnl
dnl check for i386 gas supporting 16 bit mode
dnl - binutils 2.9.1.0.7 and higher
AC_DEFUN([RTEMS_I386_GAS_CODE16],
AC_DEFUN(RTEMS_I386_GAS_CODE16,
[ if test "${host_cpu}" = "i386"; then
AC_CACHE_CHECK([for 16 bit mode assembler support],
rtems_cv_prog_gas_code16,

View File

@@ -2,7 +2,7 @@ dnl This provides configure definitions used for multilib support
dnl parts of these macros are derived from newlib-1.8.2's multilib support
AC_DEFUN([RTEMS_ENABLE_MULTILIB],
AC_DEFUN(RTEMS_ENABLE_MULTILIB,
[
AC_ARG_ENABLE(multilib,
AC_HELP_STRING([--enable-multilib],

View File

@@ -1,6 +1,6 @@
dnl $Id$
AC_DEFUN([RTEMS_PATH_KSH],
AC_DEFUN(RTEMS_PATH_KSH,
[
dnl NOTE: prefer bash over ksh over sh
AC_PATH_PROGS(KSH,bash ksh sh)

View File

@@ -1,6 +1,6 @@
dnl $Id$
AC_DEFUN([RTEMS_PATH_PERL],
AC_DEFUN(RTEMS_PATH_PERL,
[
AC_PATH_PROG(PERL,perl)
if test -z "$PERL" ; then

View File

@@ -80,7 +80,7 @@ if test "$no_recursion" != yes; then
AC_MSG_ERROR([$ac_sub_configure failed for $ac_subdir])
fi
cd "$ac_popdir"
cd $ac_popdir
done
fi
])

View File

@@ -4,7 +4,7 @@ dnl
dnl Check for target gcc
dnl
AC_DEFUN([RTEMS_PROG_CC],
AC_DEFUN(RTEMS_PROG_CC,
[
AC_BEFORE([$0], [AC_PROG_CPP])dnl
AC_BEFORE([$0], [AC_PROG_CC])dnl
@@ -22,7 +22,7 @@ AC_PROG_CPP
AM_CONDITIONAL(RTEMS_USE_GCC,test x"$GCC" = x"yes")
])
AC_DEFUN([RTEMS_PROG_CC_FOR_TARGET],
AC_DEFUN(RTEMS_PROG_CC_FOR_TARGET,
[
dnl check target cc
RTEMS_PROG_CC

View File

@@ -4,7 +4,7 @@ dnl
dnl Check for target g++
dnl
AC_DEFUN([RTEMS_PROG_CXX_FOR_TARGET],
AC_DEFUN(RTEMS_PROG_CXX_FOR_TARGET,
[
AC_BEFORE([$0], [RTEMS_CANONICALIZE_TOOLS])dnl
AC_REQUIRE([RTEMS_ENABLE_CXX])

View File

@@ -12,7 +12,7 @@ dnl RTEMS_ROOT .. path to the top of a bsp's build directory
dnl [Applied by custom/*.cfg, depredicated otherwise]
dnl
AC_DEFUN([RTEMS_PROJECT_ROOT],
AC_DEFUN(RTEMS_PROJECT_ROOT,
[dnl
AC_REQUIRE([RTEMS_TOP])

View File

@@ -1,6 +1,6 @@
## $Id$
AC_DEFUN([RTEMS_ENABLE_RTEMS_DEBUG],
AC_DEFUN(RTEMS_ENABLE_RTEMS_DEBUG,
[
AC_ARG_ENABLE(rtems-debug,
AC_HELP_STRING([--enable-rtems-debug],[enable RTEMS_DEBUG]),
@@ -11,7 +11,7 @@ AC_HELP_STRING([--enable-rtems-debug],[enable RTEMS_DEBUG]),
esac],[enable_rtems_debug=no])
])
AC_DEFUN([RTEMS_CHECK_RTEMS_DEBUG],
AC_DEFUN(RTEMS_CHECK_RTEMS_DEBUG,
[AC_REQUIRE([RTEMS_ENABLE_RTEMS_DEBUG])
AS_IF([test x"${enable_rtems_debug}" = x"yes"]
[AC_DEFINE_UNQUOTED(RTEMS_DEBUG,1,[if RTEMS_DEBUG is enabled])])

View File

@@ -1,4 +1,4 @@
AC_DEFUN([RTEMS_ENABLE_RTEMS_TEST_NO_PAUSE],
AC_DEFUN(RTEMS_ENABLE_RTEMS_TEST_NO_PAUSE,
[AC_ARG_ENABLE(test-no-pause,
AC_HELP_STRING([--disable-test-no-pause],[disable RTEMS_TEST_NO_PAUSE]),
[case "${enableval}" in
@@ -8,7 +8,7 @@ AC_HELP_STRING([--disable-test-no-pause],[disable RTEMS_TEST_NO_PAUSE]),
esac],[RTEMS_TEST_NO_PAUSE=yes])
])
AC_DEFUN([RTEMS_CHECK_RTEMS_TEST_NO_PAUSE],
AC_DEFUN(RTEMS_CHECK_RTEMS_TEST_NO_PAUSE,
[AC_REQUIRE([RTEMS_ENABLE_RTEMS_TEST_NO_PAUSE])
if test x"${RTEMS_TEST_NO_PAUSE}" = x"yes";
then

View File

@@ -7,7 +7,7 @@ dnl RTEMS_TOP($1)
dnl
dnl $1 .. relative path from this configure.in to the toplevel configure.in
dnl
AC_DEFUN([RTEMS_TOP],
AC_DEFUN(RTEMS_TOP,
[dnl
AC_REQUIRE([RTEMS_VERSIONING])
AC_CONFIG_AUX_DIR([$1])

View File

@@ -2,7 +2,7 @@ dnl $Id$
## HACK: Work-around to structural issue with RTEMS
## The macros below violate most autoconf and canonicalization standards
AC_DEFUN([RTEMS_CONFIG_BUILD_SUBDIRS],
AC_DEFUN(RTEMS_CONFIG_BUILD_SUBDIRS,
[AC_REQUIRE([_RTEMS_OUTPUT_BUILD_SUBDIRS])
RTEMS_BUILD_SUBDIRS="$RTEMS_BUILD_SUBDIRS [$1]"
])
@@ -86,7 +86,7 @@ dnl
dnl
dnl _RTEMS_PUSH_BUILDDIR(SUBDIR)
dnl
AC_DEFUN([_RTEMS_PUSH_BUILDDIR],
AC_DEFUN(_RTEMS_PUSH_BUILDDIR,
[
# _RTEMS_PUSH_BUILDDIR
echo configuring in $1
@@ -103,15 +103,15 @@ AC_DEFUN([_RTEMS_PUSH_BUILDDIR],
dnl
dnl _RTEMS_POP_BUILDDIR
dnl
AC_DEFUN([_RTEMS_POP_BUILDDIR],
AC_DEFUN(_RTEMS_POP_BUILDDIR,
[
cd "$ac_popdir"
cd $ac_popdir
])
dnl
dnl _RTEMS_GIVEN_INSTALL
dnl
AC_DEFUN([_RTEMS_GIVEN_INSTALL],
AC_DEFUN(_RTEMS_GIVEN_INSTALL,
[
ifdef([AC_PROVIDE_AC_PROG_INSTALL],[
case "$ac_given_INSTALL" in
@@ -124,7 +124,7 @@ ifdef([AC_PROVIDE_AC_PROG_INSTALL],[
dnl
dnl _RTEMS_SUB_SRCDIR(AC_CONFIG_DIR[,TARGET_SUBDIR])
dnl
AC_DEFUN([_RTEMS_SUB_SRCDIR],[
AC_DEFUN(_RTEMS_SUB_SRCDIR,[
# _RTEMS_SUB_SRCDIR
_RTEMS_ADJUST_SRCDIR(ac_sub_srcdir,$1,$2)

View File

@@ -1,4 +1,4 @@
AC_DEFUN([RTEMS_TOOLPATHS],
AC_DEFUN(RTEMS_TOOLPATHS,
[
# tooldir='$(exec_prefix)/'$target_alias
# Temporary work-around until building in source tree is supported

View File

@@ -1,2 +1,2 @@
AC_DEFUN([RTEMS_VERSIONING],
m4_define([_RTEMS_VERSION],[4.6.2]))
m4_define([_RTEMS_VERSION],[4.6.0]))

View File

@@ -1,7 +1,3 @@
2004-08-17 Ralf Corsepius <ralf_corsepius@rtems.org>
* acinclude.m4 (_RTEMS_CONFIG_SUBDIR): Quote ac_popdir uses.
2003-12-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* support/Makefile.am: Pass @RTEMS_BSP@ to AM_CPPFLAGS.

View File

@@ -79,7 +79,7 @@ if test "$no_recursion" != yes; then
AC_MSG_ERROR([$ac_sub_configure failed for $ac_subdir])
fi
cd "$ac_popdir"
cd $ac_popdir
done
fi
fi

View File

@@ -1,8 +1,3 @@
2004-09-27 Joel Sherrill <joel@OARcorp.com>
PR 679/bsps
* startup/linkcmds: Add gnu.linkonce.d and .gcc_except_table.
2003-09-04 Joel Sherrill <joel@OARcorp.com>
* clock/ckinit.c, console/console.c, include/bsp.h, include/coverhd.h,

View File

@@ -48,8 +48,6 @@ SECTIONS
{
_sdata = .;
*(.data);
*(.gnu.linkonce.d*)
*(.gcc_except_table)
_edata = .;
}
_data_start = ADDR(.data) ;

View File

@@ -1,16 +1,3 @@
2004-10-13 Eric Norum <norume@aps.anl.gov>
PR 688/bsps
* Makefile.am clock/todcfg.c: Add support for MC146818A TOD chip.
2004-05-21 Till Strauman <strauman@slac.stanford.edu>
* PR 624/bsps
startup/bspstart.c: When probing the memory, make sure not to
corrupt the application. Only probe addresses beyond rtemsFreeMemStart.
* Let IBMPC_outch() convert LF -> CRLF to avoid printk scrambling
the screen.
2003-10-02 Till Strauman <strauman@slac.stanford.edu>
PR 502/bsps

View File

@@ -2,11 +2,10 @@
## $Id$
##
VPATH = @srcdir@:@srcdir@/../../shared/tod:@srcdir@/../../../shared
PGM = $(ARCH)/clock.rel
C_FILES = ckinit.c todcfg.c tod.c
C_FILES = ckinit.c rtc.c
clock_rel_OBJECTS = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT))
include $(top_srcdir)/../../../../../../automake/compile.am
@@ -26,6 +25,6 @@ all-local: $(ARCH) $(clock_rel_OBJECTS) $(PGM)
.PRECIOUS: $(PGM)
EXTRA_DIST =
EXTRA_DIST = ckinit.c rtc.c
include $(top_srcdir)/../../../../../../automake/local.am

View File

@@ -1,36 +0,0 @@
/*
* This file contains the RTC driver table for Motorola shared BSPs.
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <bsp.h>
#include <libchip/rtc.h>
#include <libchip/mc146818a.h>
/* The following table configures the RTC drivers used in this BSP */
rtc_tbl RTC_Table[] = {
{
"/dev/rtc", /* sDeviceName */
RTC_MC146818A, /* deviceType */
&mc146818a_fns, /* pDeviceFns */
mc146818a_probe, /* deviceProbe */
NULL, /* pDeviceParams */
0x70, /* ulCtrlPort1 */
0x00, /* ulDataPort */
mc146818a_get_register, /* getRegister */
mc146818a_set_register /* setRegister */
}
};
/* Some information used by the RTC driver */
#define NUM_RTCS (sizeof(RTC_Table)/sizeof(rtc_tbl))
unsigned long RTC_Count = NUM_RTCS;
rtems_device_minor_number RTC_Minor;

View File

@@ -270,11 +270,8 @@ _IBMPC_outch(char c)
{
static int escaped = 0;
if ( ! (escaped = handleEscape(escaped, c)) ) {
if ( '\n' == c )
videoPutChar('\r');
if ( ! (escaped = handleEscape(escaped, c)) )
videoPutChar(c);
}
} /* _IBMPC_outch */

View File

@@ -82,18 +82,12 @@ void bsp_postdriver_hook(void);
void bsp_pretasking_hook(void)
{
rtems_unsigned32 topAddr, val;
int i, lowest;
int i;
if (rtemsFreeMemStart & (CPU_ALIGNMENT - 1)) /* not aligned => align it */
rtemsFreeMemStart = (rtemsFreeMemStart+CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1);
/* find the lowest 1M boundary to probe */
lowest = ((rtemsFreeMemStart + (1<<20)) >> 20) + 1;
if ( lowest < 2 )
lowest = 2;
if(_heap_size == 0)
{
/*
@@ -101,13 +95,13 @@ void bsp_pretasking_hook(void)
* between 2M and 2048M.
* let us first write
*/
for(i=2048; i>=lowest; i--)
for(i=2048; i>=2; i--)
{
topAddr = i*1024*1024 - 4;
*(volatile rtems_unsigned32 *)topAddr = topAddr;
}
for(i=lowest; i<=2048; i++)
for(i=2; i<=2048; i++)
{
topAddr = i*1024*1024 - 4;
val = *(rtems_unsigned32 *)topAddr;

View File

@@ -1,8 +1,3 @@
2003-11-01 Greg Menke <gregory.menke@gsfc.nasa.gov>
PR 608/bsps
* pci/pcibios.c: BusCountPCI().
2003-12-29 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* shared/io/Makefile.am: Remove (Unused).

View File

@@ -218,64 +218,6 @@ pcib_find_by_class(int classCode, int idx, int *sig)
#define PCI_MAX_DEVICES 16
#define PCI_MAX_FUNCTIONS 8
#define PCI_VENDOR_ID 0x00 /* 16 bits */
#define PCI_DEVICE_ID 0x02 /* 16 bits */
#define PCI_CLASS_REVISION 0x08
#define PCI_HEADER_TYPE 0x0e
#define PCI_SUBORDINATE_BUS 0x1a
#define PCI_CLASS_BRIDGE_PCI 0x0604
static unsigned8 ucBusCount = 0xff;
int
BusCountPCI()
{
if( ucBusCount == 0xff )
{
unsigned char bus,dev,hd;
unsigned int d;
int sig;
ucBusCount = 0;
for(bus=0; bus< 0xff; bus++)
{
for(dev=0; dev<PCI_MAX_DEVICES; dev++)
{
sig = PCIB_DEVSIG_MAKE(bus,dev,0);
pcib_conf_read32(sig, PCI_VENDOR_ID, &d);
if( d != -1 )
{
pcib_conf_read32(sig, PCI_CLASS_REVISION, &d);
if( (d >> 16) == PCI_CLASS_BRIDGE_PCI )
{
pcib_conf_read8(sig, PCI_SUBORDINATE_BUS, &hd);
if( hd > ucBusCount )
ucBusCount = hd;
}
}
}
}
if( ucBusCount == 0 )
{
printk("BusCountPCI() found 0 busses, assuming 1\n");
ucBusCount = 1;
}
else if( ucBusCount == 0xff )
{
printk("BusCountPCI() found 0xff busses, assuming 1\n");
ucBusCount = 1;
}
}
return ucBusCount;
}
int
BSP_pciFindDevice( unsigned short vendorid, unsigned short deviceid,

View File

@@ -1,9 +1,3 @@
2004-03-05 Joel Sherrill <joel@OARcorp.com>
PR 505/bsps
* setvec.c: Rework to remove punned pointer warning generated by gcc
3.3 and newer.
2003-09-04 Joel Sherrill <joel@OARcorp.com>
* bspspuriousinit.c, m68000spurious.c, m68kpretaskinghook.c, setvec.c,

View File

@@ -26,13 +26,13 @@ m68k_isr_entry set_vector( /* returns old vector */
int type /* RTEMS or RAW intr */
)
{
rtems_isr_entry previous_isr;
m68k_isr_entry previous_isr;
if ( type )
rtems_interrupt_catch( handler, vector, &previous_isr );
rtems_interrupt_catch( handler, vector, (rtems_isr_entry *) &previous_isr );
else {
_CPU_ISR_install_raw_handler( vector, handler, (void *)&previous_isr );
}
return (m68k_isr_entry) previous_isr;
return previous_isr;
}

View File

@@ -1,8 +1,3 @@
2004-10-15 Gene Smith <gene.smith@seimens.com>
PR 691/bsps
* startup/linkcmds: Correct bug in linker script.
2003-12-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
PR 533/bsps

View File

@@ -145,6 +145,7 @@ SECTIONS
PROVIDE(_heap_end = heap.end);
/* reserve 64KByte for stack... */
stack.end = heap.end + 64K;
PROVIDE(_end = stack.end);
.line 0 : { *(.line) }
.debug 0 : { *(.debug) }

View File

@@ -1,13 +1,3 @@
2004-09-27 Joel Sherrill <joel@OARcorp.com>
PR 680/bsps
* network/if_hdlcsubr.c: Add missing #include <rtems/rtems_bsdnet.h>.
2004-04-07 Joel Sherrill <joel@OARcorp.com>
PR 602/bsps
* irq/irq.h: Fix typo.
2003-12-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
PR 545/bsps

View File

@@ -348,7 +348,7 @@ int BSP_rtems_irq_mngt_get(rtems_irq_global_settings**);
extern void BSP_rtems_irq_mng_init(unsigned cpuId);
#ifdef __cplusplus
}
extern "C" {
#endif
#endif

View File

@@ -48,8 +48,6 @@
* $Id$
*/
#include <rtems/rtems_bsdnet.h>
#include <sys/param.h>
/*#include <sys/systm.h>
#include <sys/kernel.h> */

View File

@@ -1,26 +1,88 @@
2004-09-27 Greg Menke <gregory.menke@gsfc.nasa.gov>
2003-10-22 Joel Sherrill <joel@OARcorp.com>
PR 606/bsps
* bootloader/pci.c: Fixed IO remapping so buses >= 1 are remapped.
Reduced PCI space to match bat2. Fixed incorrect region size
calculation in pci_read_bases. Set PCI latency timers to known
sane values. Changed bridge PCI settings to minimum sane instead
of whatever sounded neat in the PCI spec. Force pf regions to
memory mapped to preserve byte access.
PR 510/bsps
* irq/irq.h: Add extern C wrapper.
2003-09-29 Till Strauman <strauman@slac.stanford.edu>
2004-09-27 Greg Menke <gregory.menke@gsfc.nasa.gov>
PR 497/bsps
* ChangeLog, bootloader/head.S, startup/bspstart.c: Disable code that
returned to the firmware when the loader starts.
* startup/sbrk.c: New file.
PR 606/bsps
* bootloader/pci.c: Fixed IO remapping so buses >= 1 are remapped.
Reduced PCI space to match bat2. Fixed incorrect region size
calculation in pci_read_bases. Set PCI latency timers to known
sane values. Changed bridge PCI settings to minimum sane instead
of whatever sounded neat in the PCI spec. Force pf regions to
memory mapped to preserve byte access.
2003-09-26 Till Strauman <strauman@slac.stanford.edu>
PR 496/bsps
* startup/sbrk.c: New file.
* startup/bspstart.c: This patch implements 'sbrk'
for the powerpc-shared BSP to work around what's known as the
'32Mb problem' in combination with run-time loaded code.
GCC normally generates (PowerPC) code doing 'short jumps' which
requires all text segments being in the same 32Mb area of memory.
However, some run-time loaders use (e.g. heap-) memory violating the
stated limitation on hardware with more than 32Mb of memory.
(NOTE: portable loaders are probably not even aware of this
GCC/CPU specific problem.)
This patch implements a simple workaround: At boot time, the system is
only provided with 32Mb of memory. The user is supposed to load all
necessary modules prior to that limit being exhausted. Once that
happens, newlib/malloc end up trying to 'sbrk()' for more memory and
the implementation provided by this patch will then make the rest of
the physical memory available.
2003-09-26 Till Straumann <strauman@slac.stanford.edu>
PR 497/bsps
* bootloader/head.S: Let the bootloader shut down the
network interface. NOTE: this involves a PPCBug system
call and will hence fail if other software is used
to boot. Need to #undef USE_PPCBUG in such cases!
2003-09-04 Joel Sherrill <joel@OARcorp.com>
* bootloader/bootldr.h, bootloader/em86.c, bootloader/em86real.S,
bootloader/exception.S, bootloader/head.S, bootloader/lib.c,
bootloader/misc.c, bootloader/mm.c, bootloader/pci.c,
clock/p_clock.c, console/console.c, console/consoleIo.h,
console/inch.c, console/keyboard.h, console/polled_io.c,
include/bsp.h, irq/i8259.c, irq/irq.c, irq/irq.h, irq/irq_asm.S,
irq/irq_init.c, motorola/motorola.c, motorola/motorola.h,
openpic/openpic.c, openpic/openpic.h, pci/pci.c, residual/residual.c,
start/start.S, startup/bspstart.c, vectors/vectors.h,
vectors/vectors_init.c: URL for license changed.
2003-08-21 Till Strauman <strauman@slac.stanford.edu>
PR 456/bsps
* irq/irq.c: Fix race condition when installing an ISR.
2003-08-05 Till Strauman <strauman@slac.stanford.edu>
PR 437/bsps
* irq/irc.c: calls to bspIo/printk must not use '%i' format which is
apparently not supported
* pci/pci.c: calls to bspIo/printk must not use '%i' format which is
apparently not supported
2003-07-18 Till Straumann <strauman@slac.stanford.edu>
PR 288/rtems
* irq/irq_asm.S, startup/bspstart.c: _ISR_Nest_level is now properly
maintained and any BSP which does not do so will trip a panic in the
shared code.
2003-07-18 Till Straumann <strauman@slac.stanford.edu>
PR 415/bsps
* pci/detect_raven_bridge.c, startup/bspstart.c:
This patch reverts enabling MCP interrupts for the motorola_powerpc
BSPs. REASON: pci config space scanning (as e.g. done by the DEC
Ethernet driver) would raise machine check exceptions.
2003-07-16 Greg Menke <gregory.menke@gsfc.nasa.gov>
PR 428/bsps
PR 432/bsps
* bootloader/pci.c: Re-instated code that prevents remapping small
IO regions, which if remapped would cause i8259 registers to move
@@ -53,16 +115,6 @@
Support enabling MCP exceptions on the host bridge. This can
be used for memory probing on the VME bus.
2003-04-15 Joel Sherrill <joel@OARcorp.com>
PR 386/bsps
* vme/vmeconfig.c: Removed declaration of _BSP_vme_bridge_irq.
2003-04-15 Joel Sherrill <joel@OARcorp.com>
PR 386/bsps
* vme/vmeconfig.c: Removed declaration of _BSP_vme_bridge_irq.
2003-04-10 Till Straumann <strauman@slac.stanford.edu>
PR 379/bsps
@@ -104,22 +156,6 @@
code on non-VME BSPs without triggering linkage of the vmeUniverse
driver.
2003-03-25 Till Straumann <strauman@slac.stanford.edu>
PR 349/bsps
* irq/irq.c, vme/VME.h, vme/vmeconfig.c: Fixes library dependency
on the vmeUniverse driver. It is now possible to use the ppc/shared/irq
code on non-VME BSPs without triggering linkage of the vmeUniverse
driver.
2003-03-25 Till Straumann <strauman@slac.stanford.edu>
PR 349/bsps
* irq/irq.c, vme/VME.h, vme/vmeconfig.c: Fixes library dependency
on the vmeUniverse driver. It is now possible to use the ppc/shared/irq
code on non-VME BSPs without triggering linkage of the vmeUniverse
driver.
2003-03-18 Till Straumann <strauman@slac.stanford.edu>
PR 356/bsps

View File

@@ -12,7 +12,7 @@
* found in found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* pci.c,v 1.3 2003/06/13 17:39:44 joel Exp
* $Id$
*/
@@ -25,13 +25,17 @@
#include <libcpu/page.h>
#include <bsp/consoleIo.h>
typedef unsigned int u32;
/*
#define DEBUG
#define PCI_DEBUG
*/
/* Used to reorganize PCI space on stupid machines which spread resources
* across a wide address space. This is bad when P2P bridges are present
* or when it limits the mappings that a resource hog like a PCI<->VME
@@ -230,12 +234,8 @@ static void insert_resource(pci_resource *r) {
** hardware, its just the builtin stuff we're tiptoeing around.
**
** Gregm, 7/16/2003
**
** Gregm, changed 11/2003 so IO devices only on bus 0 zero are not
** remapped. This covers the builtin pc-like io devices- but
** properly maps IO devices on higher busses.
*/
if( r->dev->bus->number == 0 )
if( r->dev->bus->number <= 1 )
{
if ((r->type==PCI_BASE_ADDRESS_SPACE_IO)
? (r->base && r->base <0x10000)
@@ -508,11 +508,11 @@ static void reconfigure_bus_space(u_char bus, u_char type, pci_area_head *h)
#define BUS0_IO_START 0x10000
#define BUS0_IO_END 0x1ffff
#define BUS0_MEM_START 0x1000000
#define BUS0_MEM_END 0x3f00000
#define BUS0_MEM_END 0xaffffff
#define BUSREST_IO_START 0x20000
#define BUSREST_IO_END 0x7ffff
#define BUSREST_MEM_START 0x4000000
#define BUSREST_MEM_START 0xb000000
#define BUSREST_MEM_END 0x10000000
@@ -570,7 +570,8 @@ static void reconfigure_pci(void) {
(PCI_BASE_ADDRESS_SPACE_MEMORY|
PCI_BASE_ADDRESS_MEM_TYPE_64)) {
pci_write_config_dword(r->dev,
PCI_BASE_ADDRESS_1+(r->reg<<2),
PCI_BASE_ADDRESS_1+
(r->reg<<2),
0);
}
}
@@ -808,31 +809,12 @@ void pci_read_bases(struct pci_dev *dev, unsigned int howmany)
if ((l&PCI_BASE_ADDRESS_SPACE) == PCI_BASE_ADDRESS_SPACE_IO) {
r->type = l&~PCI_BASE_ADDRESS_IO_MASK;
r->base = l&PCI_BASE_ADDRESS_IO_MASK;
/* r->size = ~(ml&PCI_BASE_ADDRESS_IO_MASK)+1; */
r->size = ~(ml&PCI_BASE_ADDRESS_IO_MASK)+1;
} else {
r->type = l&~PCI_BASE_ADDRESS_MEM_MASK;
r->base = l&PCI_BASE_ADDRESS_MEM_MASK;
/* r->size = ~(ml&PCI_BASE_ADDRESS_MEM_MASK)+1; */
r->size = ~(ml&PCI_BASE_ADDRESS_MEM_MASK)+1;
}
/* find the first bit set to one after the base
address type bits to find length of region */
{
unsigned int c= 16 , val= 0;
while( !(val= ml & c) ) c <<= 1;
r->size = val;
}
#ifdef PCI_DEBUG
printk(" readbase bus %d, (%04x:%04x), base %08x, size %08x, type %d\n",
r->dev->bus->number,
r->dev->vendor,
r->dev->device,
r->base,
r->size,
r->type );
#endif
/* Check for the blacklisted entries */
insert_resource(r);
}
@@ -1195,9 +1177,6 @@ static void recursive_bus_reconfigure( struct pci_bus *pbus )
{
pdev= childbus->self;
pcibios_write_config_byte(pdev->bus->number, pdev->devfn, PCI_LATENCY_TIMER, 0x80 );
pcibios_write_config_byte(pdev->bus->number, pdev->devfn, PCI_SEC_LATENCY_TIMER, 0x80 );
{
struct _addr_start addrhold;
unsigned8 base8, limit8;
@@ -1221,7 +1200,7 @@ static void recursive_bus_reconfigure( struct pci_bus *pbus )
/*
** use the current values & the saved ones to figure out
**use the current values & the saved ones to figure out
** the address spaces for the bridge
*/
@@ -1274,7 +1253,6 @@ static void recursive_bus_reconfigure( struct pci_bus *pbus )
if( astart.start_prefetch == addrhold.start_prefetch )
{
limit16 = 0;
@@ -1294,20 +1272,18 @@ static void recursive_bus_reconfigure( struct pci_bus *pbus )
pcibios_write_config_word(pdev->bus->number, pdev->devfn, PCI_PREF_MEMORY_BASE, base16 );
pcibios_write_config_dword(pdev->bus->number, pdev->devfn, PCI_PREF_LIMIT_UPPER32, 0);
pcibios_write_config_word(pdev->bus->number, pdev->devfn, PCI_PREF_MEMORY_LIMIT, limit16 );
#endif
#ifdef WRITE_BRIDGE_ENABLE
pcibios_write_config_word(pdev->bus->number,
pdev->devfn,
PCI_BRIDGE_CONTROL,
(unsigned16)( 0 ));
pcibios_write_config_word(pdev->bus->number, pdev->devfn, PCI_BRIDGE_CONTROL, (unsigned16)( PCI_BRIDGE_CTL_PARITY |
PCI_BRIDGE_CTL_SERR ));
pcibios_write_config_word(pdev->bus->number,
pdev->devfn,
PCI_COMMAND,
(unsigned16)( PCI_COMMAND_IO |
pcibios_write_config_word(pdev->bus->number, pdev->devfn, PCI_COMMAND, (unsigned16)( PCI_COMMAND_IO |
PCI_COMMAND_MEMORY |
PCI_COMMAND_MASTER ));
PCI_COMMAND_MASTER |
PCI_COMMAND_PARITY |
PCI_COMMAND_SERR ));
#endif
}
}
@@ -1343,18 +1319,7 @@ static void recursive_bus_reconfigure( struct pci_bus *pbus )
while( (r= enum_device_resources( pdev, i++ )) )
{
/*
** Force all memory spaces to be non-prefetchable because
** on the pci bus, byte-wise reads against prefetchable
** memory are applied as 32 bit reads, which is a pain
** when you're trying to talk to hardware. This is a
** little sub-optimal because the algorithm doesn't sort
** the address regions to pack them in, OTOH, perhaps its
** not so bad because the inefficient packing will help
** avoid buffer overflow/underflow problems.
*/
#if 0
if( (r->type & PCI_BASE_ADDRESS_MEM_PREFETCH) )
if( r->type & PCI_BASE_ADDRESS_MEM_PREFETCH )
{
/* prefetchable space */
@@ -1368,8 +1333,7 @@ static void recursive_bus_reconfigure( struct pci_bus *pbus )
printk("pci: pf %08X, size %08X, alloc %08X\n", r->base, r->size, alloc );
#endif
}
#endif
if( r->type & PCI_BASE_ADDRESS_SPACE_IO )
else if( r->type & PCI_BASE_ADDRESS_SPACE_IO )
{
/* io space */
@@ -1472,10 +1436,6 @@ void pci_init(void)
reconfigure_pci();
print_pci_resources("Allocated PCI resources:\n");
#if 0
print_pci_info();
#endif
}

View File

@@ -5,6 +5,8 @@
C_FILES = bspstart.c pgtbl_setup.c pgtbl_activate.c
EXTRA_DIST = bspstart.c pgtbl_setup.c pgtbl_activate.c
noinst_DATA = linkcmds
EXTRA_DIST = bspstart.c linkcmds pgtbl_setup.c pgtbl_activate.c
include $(top_srcdir)/../../../../../automake/local.am

View File

@@ -0,0 +1,200 @@
OUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc",
"elf32-powerpc")
OUTPUT_ARCH(powerpc)
ENTRY(_start)
/* Do we need any of these for elf?
__DYNAMIC = 0; */
PROVIDE (__stack = 0);
MEMORY {
VECTORS : ORIGIN = 0x0 , LENGTH = 0x3000
CODE : ORIGIN = 0x3000 , LENGTH = 0x400000
}
SECTIONS
{
.entry_point_section :
{
*(.entry_point_section)
} > VECTORS
/*
* This section is used only if NO_DYNAMIC_EXCEPTION_VECTOR_INSTALL
* is defined in vectors/vectors.S
*/
.vectors :
{
*(.vectors)
} > VECTORS
/* Read-only sections, merged into text segment: */
.interp : { *(.interp) } > CODE
.hash : { *(.hash) } > CODE
.dynsym : { *(.dynsym) } > CODE
.dynstr : { *(.dynstr) } > CODE
.gnu.version : { *(.gnu.version) } > CODE
.gnu.version_d : { *(.gnu.version_d) } > CODE
.gnu.version_r : { *(.gnu.version_r) } > CODE
.rela.text :
{ *(.rela.text) *(.rela.gnu.linkonce.t*) } > CODE
.rela.data :
{ *(.rela.data) *(.rela.gnu.linkonce.d*) } > CODE
.rela.rodata :
{ *(.rela.rodata) *(.rela.gnu.linkonce.r*) } > CODE
.rela.got : { *(.rela.got) } > CODE
.rela.got1 : { *(.rela.got1) } > CODE
.rela.got2 : { *(.rela.got2) } > CODE
.rela.ctors : { *(.rela.ctors) } > CODE
.rela.dtors : { *(.rela.dtors) } > CODE
.rela.init : { *(.rela.init) } > CODE
.rela.fini : { *(.rela.fini) } > CODE
.rela.bss : { *(.rela.bss) } > CODE
.rela.plt : { *(.rela.plt) } > CODE
.rela.sdata : { *(.rela.sdata) } > CODE
.rela.sbss : { *(.rela.sbss) } > CODE
.rela.sdata2 : { *(.rela.sdata2) } > CODE
.rela.sbss2 : { *(.rela.sbss2) } > CODE
.text :
{
*(.text)
/*
* Special FreeBSD sysctl sections.
*/
. = ALIGN (16);
__start_set_sysctl_set = .;
*(set_sysctl_*);
__stop_set_sysctl_set = ABSOLUTE(.);
*(set_domain_*);
*(set_pseudo_*);
/* .gnu.warning sections are handled specially by elf32.em. */
*(.gnu.warning)
*(.gnu.linkonce.t*)
} > CODE
.init : { _init = .; *(.init) } >CODE
.fini : { _fini = .; *(.fini) } >CODE
.rodata : { *(.rodata*) *(.gnu.linkonce.r*) } > CODE
.rodata1 : { *(.rodata1) } > CODE
.eh_frame : { *.(eh_frame) } >CODE
.sdata2 : { *(.sdata2) *(.gnu.linkonce.s2.*) } >CODE
.sbss2 : { *(.sbss2) *(.gnu.linkonce.sb2.*) } >CODE
_etext = .;
PROVIDE (etext = .);
/* Adjust the address for the data segment. We want to adjust up to
the same address within the page on the next page up. It would
be more correct to do this:
. = ALIGN(0x40000) + (ALIGN(8) & (0x40000 - 1));
The current expression does not correctly handle the case of a
text segment ending precisely at the end of a page; it causes the
data segment to skip a page. The above expression does not have
this problem, but it will currently (2/95) cause BFD to allocate
a single segment, combining both text and data, for this case.
This will prevent the text segment from being shared among
multiple executions of the program; I think that is more
important than losing a page of the virtual address space (note
that no actual memory is lost; the page which is skipped can not
be referenced). */
. = ALIGN(0x1000);
.data :
{
*(.data)
*(.gnu.linkonce.d*)
CONSTRUCTORS
} > CODE
.data1 : { *(.data1) } > CODE
PROVIDE (__EXCEPT_START__ = .);
.gcc_except_table : { *(.gcc_except_table) } > CODE
PROVIDE (__EXCEPT_END__ = .);
.got1 : { *(.got1) } > CODE
.dynamic : { *(.dynamic) } > CODE
/* Put .ctors and .dtors next to the .got2 section, so that the pointers
get relocated with -mrelocatable. Also put in the .fixup pointers.
The current compiler no longer needs this, but keep it around for 2.7.2 */
PROVIDE (_GOT2_START_ = .);
.got2 : { *(.got2) } > CODE
PROVIDE (__CTOR_LIST__ = .);
.ctors : { *(.ctors) } > CODE
PROVIDE (__CTOR_END__ = .);
PROVIDE (__DTOR_LIST__ = .);
.dtors : { *(.dtors) } > CODE
PROVIDE (__DTOR_END__ = .);
PROVIDE (_FIXUP_START_ = .);
.fixup : { *(.fixup) } > CODE
PROVIDE (_FIXUP_END_ = .);
PROVIDE (_GOT2_END_ = .);
PROVIDE (_GOT_START_ = .);
.got : { *(.got) } > CODE
.got.plt : { *(.got.plt) } > CODE
PROVIDE (_GOT_END_ = .);
/* We want the small data sections together, so single-instruction offsets
can access them all, and initialized data all before uninitialized, so
we can shorten the on-disk segment size. */
.sdata : { *(.sdata) *(.gnu.linkonce.s.*) } >CODE
_edata = .;
PROVIDE (edata = .);
.sbss :
{
PROVIDE (__sbss_start = .);
*(.sbss)
*(.scommon)
*(.dynsbss)
PROVIDE (__sbss_end = .);
} > CODE
.plt : { *(.plt) } > CODE
.bss :
{
PROVIDE (__bss_start = .);
*(.dynbss)
*(.bss)
*(COMMON)
. = ALIGN(16);
} > CODE
. = ALIGN(16);
_end = . ;
__rtems_end = . ;
PROVIDE (end = .);
/DISCARD/ :
{
*(.comment)
}
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
/* These must appear regardless of . */
}

View File

@@ -1,8 +1,3 @@
2004-10-13 Eric Norum <norume@aps.anl.gov>
PR 688/bsps
* shared/tod.c: Set RTEMS time during TOD initialization
2003-09-26 Cedric Aubert <cedric_aubert@yahoo.fr>
PR 501/rtems_misc

View File

@@ -98,7 +98,6 @@ rtems_device_driver rtc_initialize(
}
}
setRealTimeToRTEMS();
return RTEMS_SUCCESSFUL;
}

View File

@@ -1,8 +1,3 @@
2004-02-09 Joel Sherrill <joel@OARcorp.com>
PR make_build/574
* Makefile.am: Re-added since missing for some reason.
2004-02-03 Joel Sherrill <joel@OARcorp.com>
* Makefile.am: Removed.

View File

@@ -1,45 +0,0 @@
##
## $Id$
##
ACLOCAL_AMFLAGS = -I ../../../../../aclocal
VPATH = @srcdir@:@srcdir@/../shared/src
C_FILES = cache.c cache_aligned_malloc.c cache_manager.c displayCpu.c page.c
OBJS = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT))
include_libcpudir = $(includedir)/libcpu
noinst_HEADERS = cache_.h
include_libcpu_HEADERS = cpu.h cpuModel.h cache.h
S_FILES = cpuModel.S idtr.S
OBJS += $(S_FILES:%.S=$(ARCH)/%.$(OBJEXT))
include $(top_srcdir)/../../../../../automake/compile.am
include $(top_srcdir)/../../../../../automake/lib.am
AM_CPPFLAGS += -I$(srcdir)
$(PROJECT_INCLUDE)/libcpu:
$(mkinstalldirs) $@
$(PROJECT_INCLUDE)/libcpu/%.h: %.h
$(INSTALL_DATA) $< $@
cache.h: $(top_srcdir)/../shared/include/cache.h
cp $< $@
PREINSTALL_FILES = $(PROJECT_INCLUDE)/libcpu \
$(include_libcpu_HEADERS:%=$(PROJECT_INCLUDE)/libcpu/%)
all-local: $(ARCH) $(PREINSTALL_FILES) $(OBJS)
CLEANFILES = cache.h
EXTRA_DIST = cache.c cache_.h cpu.h cpuModel.S cpuModel.h displayCpu.c idt.c \
idtr.S page.c registers.h
include $(top_srcdir)/../../../../../automake/local.am

View File

@@ -0,0 +1,2 @@
Makefile
Makefile.in

View File

@@ -1,13 +1,3 @@
2004-05-22 Till Strauman <strauman@slac.stanford.edu>
PR 619/bsps
* mpc6xx/clock/c_clock.c: The PPC decrementer must be reloaded on each
clock tick. Currently, this is done by just reloading a fixed value.
The attached patch takes into account the time that elapsed since the
decrementer crossed zero in order to adjust the value to be
re-loaded. Without the patch, the effective system clock cycle is
increased by the exception handler latency.
2003-09-04 Joel Sherrill <joel@OARcorp.com>
* mpc6xx/clock/c_clock.c, mpc6xx/clock/c_clock.h,

View File

@@ -73,23 +73,21 @@ void clockOn(void* unused)
* Return values: NONE
*
*/
void clockIsr()
{
int decr;
/*
* The driver has seen another tick.
*/
do {
asm volatile ("mfdec %0; add %0, %0, %1; mtdec %0":"=r"(decr):"r"(Clock_Decrementer_value));
Clock_driver_ticks += 1;
PPC_Set_decrementer( Clock_Decrementer_value );
/*
* Real Time Clock counter/timer is set to automatically reload.
*/
rtems_clock_tick();
} while ( decr < 0 );
Clock_driver_ticks += 1;
/*
* Real Time Clock counter/timer is set to automatically reload.
*/
rtems_clock_tick();
}
int clockIsOn(void* unused)
@@ -146,18 +144,6 @@ rtems_device_driver Clock_initialize(
Clock_Decrementer_value = (BSP_bus_frequency/BSP_time_base_divisor)*
(rtems_configuration_get_microseconds_per_tick()/1000);
/* set the decrementer now, prior to installing the handler
* so no interrupts will happen in a while.
*/
PPC_Set_decrementer( (unsigned)-1 );
/* if a decrementer exception was pending, it is cleared by
* executing the default (nop) handler at this point;
* The next exception will then be taken by our clock handler.
* Clock handler installation initializes the decrementer to
* the correct value.
*/
if (!BSP_connect_clock_handler ()) {
printk("Unable to initialize system clock\n");
rtems_fatal_error_occurred(1);
@@ -204,7 +190,10 @@ rtems_device_driver Clock_control(
clockIsr();
else if (args->command == rtems_build_name('N', 'E', 'W', ' '))
{
Clock_initialize(major, minor, 0);
if (!BSP_connect_clock_handler ()) {
printk("Error installing clock interrupt handler!\n");
rtems_fatal_error_occurred(1);
}
}
done:
return RTEMS_SUCCESSFUL;

View File

@@ -0,0 +1,2 @@
Makefile
Makefile.in

View File

@@ -0,0 +1,2 @@
Makefile
Makefile.in

View File

@@ -1,32 +1,3 @@
2004-10-13 Eric Norum <norume@aps.anl.gov>
PR 688/bsps
* rtc/rtc.h, rtc/mc146818a.c, rtc/mc146818a.h, rtc/mc146818a_ioreg.c:
New files. Add libchip driver for MC146818A (and several
Dallas Semiconductor) TOD chips.
2004-10-13 Eric Norum <norume@aps.anl.gov>
PR 686/networking
* network/if_fxp.c: Fix lockup in if_fxp.c, add additional device code.
2004-04-09 Greg Menke <gregory.menke@gsfc.nasa.gov>
PR 607/networking
* network/dec21140.c: Made PCI configuration minimum sane instead
of fully specifying unused PCI features.
2004-05-21 Till Strauman <strauman@slac.stanford.edu>
PR 625/networking
* network/dec21140.c: Prevent name clashes by making 'ld_le32()' etc.
static inlines. Let dec21140 attach routine return an error rather
than panic if no chip is detected (thus allowing for probing).
* network/elnk.c: Let elnk bail out if autoneg never completes
instead of looping forever. Avoid divide by zero (crashed my PC).
* network/if_fxp.c: Enable more fxp chip variants but warn that
they are UNTESTED.
2003-09-26 Cedric Aubert <cedric_aubert@yahoo.fr>
PR 499/rtems_misc

View File

@@ -243,12 +243,12 @@ extern void Wait_X_ms( unsigned int timeToWait );
#define rtems_bsp_delay_in_bus_cycles(cycle) Wait_X_ms( cycle/100 )
#define CPU_CACHE_ALIGNMENT_FOR_BUFFER PG_SIZE
static inline void st_le32(volatile unsigned32 *addr, unsigned32 value)
inline void st_le32(volatile unsigned32 *addr, unsigned32 value)
{
*(addr)=value ;
}
static inline unsigned32 ld_le32(volatile unsigned32 *addr)
inline unsigned32 ld_le32(volatile unsigned32 *addr)
{
return(*addr);
}
@@ -1061,10 +1061,7 @@ rtems_dec21140_driver_attach (struct rtems_bsdnet_ifconfig *config, int attach)
if ( diag == PCIB_ERR_SUCCESS)
printk( "DEC/Intel 21143 PCI network card found\n" );
else
{
printk("No DEC/Intel 21140/3 PCI network card found !!\n");
return 0;
}
rtems_panic("DEC PCI network card not found !!\n");
}
#endif
#if defined(__PPC)
@@ -1173,7 +1170,8 @@ rtems_dec21140_driver_attach (struct rtems_bsdnet_ifconfig *config, int attach)
PCI_BASE_ADDRESS_1,
&lvalue);
tmp = (unsigned int)(lvalue & (unsigned int)(~MEM_MASK)) + (unsigned int)PCI_MEM_BASE;
tmp = (unsigned int)(lvalue & (unsigned int)(~MEM_MASK))
+ (unsigned int)PCI_MEM_BASE;
sc->base = (unsigned int *)(tmp);
@@ -1192,9 +1190,11 @@ rtems_dec21140_driver_attach (struct rtems_bsdnet_ifconfig *config, int attach)
#if defined(__PPC)
pci_write_config_word(pbus, pdev, pfun,
PCI_COMMAND,
(unsigned16) ( PCI_COMMAND_IO |
PCI_COMMAND_MEMORY |
PCI_COMMAND_MASTER ) );
(unsigned16) ( PCI_COMMAND_MEMORY |
PCI_COMMAND_MASTER |
PCI_COMMAND_INVALIDATE |
PCI_COMMAND_WAIT |
PCI_COMMAND_FAST_BACK ) );
#endif
#if defined(__i386__)
pcib_conf_write16(signature, 0x04, ( 0x2 | 0x4 | 0x10 | 0x80 | 0x200) );

View File

@@ -204,12 +204,12 @@ extern void Wait_X_ms( unsigned int timeToWait );
#define rtems_bsp_delay_in_bus_cycles(cycle) Wait_X_ms( cycle/100 )
#define CPU_CACHE_ALIGNMENT_FOR_BUFFER PG_SIZE
static inline void st_le32(volatile unsigned32 *addr, unsigned32 value)
inline void st_le32(volatile unsigned32 *addr, unsigned32 value)
{
*(addr)=value ;
}
static inline unsigned32 ld_le32(volatile unsigned32 *addr)
inline unsigned32 ld_le32(volatile unsigned32 *addr)
{
return(*addr);
}
@@ -2669,9 +2669,7 @@ elnk_init (void *arg)
xl_miibus_writereg(sc, 0x18, MII_ANAR, ANAR_10 | ANAR_TX | ANAR_10_FD | ANAR_TX_FD ); /* ANAR_T4 */
xl_miibus_writereg(sc, 0x18, MII_BMCR, BMCR_STARTNEG | BMCR_AUTOEN );
for (i=0; ((sr = xl_miibus_readreg(sc, 0x18, MII_BMSR)) & BMSR_ACOMP) == 0 && i < 20; i++)
DELAY(10000);
while( ((sr = xl_miibus_readreg(sc, 0x18, MII_BMSR)) & BMSR_ACOMP) == 0 );
}
@@ -2999,7 +2997,7 @@ elnk_stats (struct elnk_softc *sc)
printf(" interrupts:%-9d txcmp_ints:%-5d avg_chain_len:%-4d\n",
sc->xl_stats.device_interrupts,
sc->xl_stats.txcomplete_ints,
numLengths ? (totalLengths / numLengths) : -1 );
(totalLengths / numLengths) );
}
printf(" carrier_lost:%-5d sqe_errs:%-5d\n",
@@ -3122,6 +3120,8 @@ struct el_boards
int pbus,pdev,pfun, vid, did, tindex;
};
/*
* Attach an ELNK driver to the system
*/

View File

@@ -182,11 +182,8 @@ static u_char fxp_cb_config_template[] = {
struct fxp_ident {
u_int16_t devid;
char *name;
int warn;
};
#define UNTESTED 1
/*
* Claim various Intel PCI device identifiers for this driver. The
* sub-vendor and sub-device field are extensively used to identify
@@ -194,20 +191,28 @@ struct fxp_ident {
* them.
*/
static struct fxp_ident fxp_ident_table[] = {
{ 0x1229, "Intel Pro 10/100B/100+ Ethernet", UNTESTED },
{ 0x2449, "Intel Pro/100 Ethernet", UNTESTED },
{ 0x1209, "Intel Embedded 10/100 Ethernet", 0 },
{ 0x1029, "Intel Pro/100 Ethernet", UNTESTED },
{ 0x1030, "Intel Pro/100 Ethernet", 0 },
{ 0x1031, "Intel Pro/100 Ethernet", UNTESTED },
{ 0x1032, "Intel Pro/100 Ethernet", UNTESTED },
{ 0x1033, "Intel Pro/100 Ethernet", UNTESTED },
{ 0x1034, "Intel Pro/100 Ethernet", UNTESTED },
{ 0x1035, "Intel Pro/100 Ethernet", UNTESTED },
{ 0x1036, "Intel Pro/100 Ethernet", UNTESTED },
{ 0x1037, "Intel Pro/100 Ethernet", UNTESTED },
{ 0x1038, "Intel Pro/100 Ethernet", UNTESTED },
{ 0x103B, "Intel Pro/100 Ethernet (82801BD PRO/100 VM (LOM))", 0 },
#ifdef NOTUSED
/* currently untested */
{ 0x1229, "Intel Pro 10/100B/100+ Ethernet" },
{ 0x2449, "Intel Pro/100 Ethernet" },
#endif
{ 0x1209, "Intel Embedded 10/100 Ethernet" },
#ifdef NOTUSED
/* currently untested */
{ 0x1029, "Intel Pro/100 Ethernet" },
#endif
{ 0x1030, "Intel Pro/100 Ethernet" },
#ifdef NOTUSED
/* currently untested */
{ 0x1031, "Intel Pro/100 Ethernet" },
{ 0x1032, "Intel Pro/100 Ethernet" },
{ 0x1033, "Intel Pro/100 Ethernet" },
{ 0x1034, "Intel Pro/100 Ethernet" },
{ 0x1035, "Intel Pro/100 Ethernet" },
{ 0x1036, "Intel Pro/100 Ethernet" },
{ 0x1037, "Intel Pro/100 Ethernet" },
{ 0x1038, "Intel Pro/100 Ethernet" },
#endif
{ 0, NULL },
};
@@ -468,13 +473,8 @@ rtems_fxp_attach(struct rtems_bsdnet_ifconfig *config, int attaching)
DBGLVL_PRINTK(2,"fxp_attach: find_devid returned %d "
"and pci signature 0x%x\n",
i,sc->pci_signature);
if (PCIB_ERR_SUCCESS == i) {
if ( UNTESTED == fxp_ident_table[j].warn ) {
device_printf(dev,"WARNING: this chip version has NOT been reported to work under RTEMS yet.\n");
device_printf(dev," If it works OK, report it as tested in 'c/src/libchip/network/if_fxp.c'\n");
}
if (PCIB_ERR_SUCCESS == i)
break;
}
}
}
@@ -1681,17 +1681,13 @@ fxp_init(void *xsc)
struct fxp_cb_tx *txp;
int i, prm, s;
rtems_task_wake_after(100);
DBGLVL_PRINTK(2,"fxp_init called\n");
s = splimp();
/*
* Cancel any pending I/O
*/
/*
* Add line suggested by "Eugene Denisov" <dea@sendmail.ru>
* on Tue, 16 Mar 2004 13:10:15 +0300
*/
sc->stat_ch = fxp_timeout_stopped;
fxp_stop(sc);
prm = (ifp->if_flags & IFF_PROMISC) ? 1 : 0;

View File

@@ -10,12 +10,11 @@ LIB = $(ARCH)/$(LIBNAME).a
C_FILES = rtcprobe.c icm7170.c icm7170_reg.c icm7170_reg2.c icm7170_reg4.c \
icm7170_reg8.c m48t08.c m48t08_reg.c m48t08_reg2.c m48t08_reg4.c \
m48t08_reg8.c \
mc146818a.c mc146818a_ioreg.c
m48t08_reg8.c
OBJS = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT))
include_libchip_HEADERS = rtc.h icm7170.h m48t08.h mc146818a.h
include_libchip_HEADERS = rtc.h icm7170.h m48t08.h
include $(top_srcdir)/../../../automake/compile.am
include $(top_srcdir)/../../../automake/lib.am

View File

@@ -1,14 +0,0 @@
#
# $Id$
#
The mc146818a driver supports:
Motorola
MC146818A
MC146818B
Dallas Semiconductor
DS12885
DS12887
DS1685
DS1687
This is the Time-of-Day chip used in 'IBM-PC/AT compatible' machines.

View File

@@ -1,179 +0,0 @@
/*
* This file interfaces with the real-time clock found in
* a Motorola MC146818A (common on PC hardware)
*
* Year 2K Notes:
*
* This chip only uses a two digit field to store the year. This
* code uses the RTEMS Epoch as a pivot year. This lets us map the
* two digit year field as follows:
*
* + two digit years 0-87 are mapped to 2000-2087.
* + two digit years 88-99 are mapped to 1988-1999.
*
* This is less than the time span supported by RTEMS.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <rtems.h>
#include <libchip/rtc.h>
#include <libchip/mc146818a.h>
#include <bsp.h>
#define From_BCD( _x ) ((((_x) >> 4) * 10) + ((_x) & 0x0F))
#define To_BCD( _x ) ((((_x) / 10) << 4) + ((_x) % 10))
/*
* See if chip is present
*/
boolean mc146818a_probe(
int minor
)
{
unsigned32 mc146818a;
getRegister_f getReg;
unsigned32 value;
/*
* Verify that chip is present and that time is valid
*/
mc146818a = RTC_Table[ minor ].ulCtrlPort1;
getReg = RTC_Table[ minor ].getRegister;
value = (*getReg)( mc146818a, MC146818A_STATUSD );
if ((value == 0) || (value == 0xFF))
return FALSE;
return TRUE;
}
/*
* Initialize chip
*/
void mc146818a_initialize(
int minor
)
{
unsigned32 mc146818a;
getRegister_f getReg;
setRegister_f setReg;
mc146818a = RTC_Table[ minor ].ulCtrlPort1;
getReg = RTC_Table[ minor ].getRegister;
setReg = RTC_Table[ minor ].setRegister;
(*setReg)( mc146818a, MC146818A_STATUSA, MC146818ASA_DIVIDER|MC146818ASA_1024 );
(*setReg)( mc146818a, MC146818A_STATUSB, MC146818ASB_24HR );
}
/*
* Read time from chip
*/
int mc146818a_get_time(
int minor,
rtems_time_of_day *time
)
{
unsigned32 mc146818a;
getRegister_f getReg;
unsigned32 value;
rtems_interrupt_level level;
mc146818a = RTC_Table[ minor ].ulCtrlPort1;
getReg = RTC_Table[ minor ].getRegister;
/*
* No time if power failed
*/
if (((*getReg)( mc146818a, MC146818A_STATUSD ) & MC146818ASD_PWR) == 0)
return -1;
/*
* Wait for time update to complete
*/
rtems_interrupt_disable( level );
while (((*getReg)( mc146818a, MC146818A_STATUSA ) & MC146818ASA_TUP) != 0) {
rtems_interrupt_flash( level );
}
/*
* Read the time (we have at least 244 usec to do this)
*/
value = (*getReg)( mc146818a, MC146818A_YEAR );
value = From_BCD( value );
if ( value < 88 )
time->year = 2000 + value;
else
time->year = 1900 + value;
value = (*getReg)( mc146818a, MC146818A_MONTH );
time->month = From_BCD( value );
value = (*getReg)( mc146818a, MC146818A_DAY );
time->day = From_BCD( value );
value = (*getReg)( mc146818a, MC146818A_HRS );
time->hour = From_BCD( value );
value = (*getReg)( mc146818a, MC146818A_MIN );
time->minute = From_BCD( value );
value = (*getReg)( mc146818a, MC146818A_SEC );
rtems_interrupt_enable( level );
time->second = From_BCD( value );
time->ticks = 0;
return 0;
}
/*
* Set time into chip
*/
int mc146818a_set_time(
int minor,
rtems_time_of_day *time
)
{
unsigned32 mc146818a;
getRegister_f getReg;
setRegister_f setReg;
mc146818a = RTC_Table[ minor ].ulCtrlPort1;
getReg = RTC_Table[ minor ].getRegister;
setReg = RTC_Table[ minor ].setRegister;
/*
* Stop the RTC
*/
(*setReg)( mc146818a, MC146818A_STATUSB, MC146818ASB_HALT|MC146818ASB_24HR );
if ( time->year >= 2088 )
rtems_fatal_error_occurred( RTEMS_INVALID_NUMBER );
(*setReg)( mc146818a, MC146818A_YEAR, To_BCD(time->year % 100) );
(*setReg)( mc146818a, MC146818A_MONTH, To_BCD(time->month) );
(*setReg)( mc146818a, MC146818A_DAY, To_BCD(time->day) );
(*setReg)( mc146818a, MC146818A_HRS, To_BCD(time->hour) );
(*setReg)( mc146818a, MC146818A_MIN, To_BCD(time->minute) );
(*setReg)( mc146818a, MC146818A_SEC, To_BCD(time->second) );
/*
* Restart the RTC
*/
(*setReg)( mc146818a, MC146818A_STATUSB, MC146818ASB_24HR );
return 0;
}
/*
* Driver function table
*/
rtc_fns mc146818a_fns = {
mc146818a_initialize,
mc146818a_get_time,
mc146818a_set_time
};

View File

@@ -1,70 +0,0 @@
/*
* This file contains the definitions for the following real-time clocks:
*
* + Motorola MC146818A
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#ifndef __LIBCHIP_MC146818A_h
#define __LIBCHIP_MC146818A_h
/*
* Register addresses within chip
*/
#define MC146818A_SEC 0x00 /* seconds */
#define MC146818A_SECALRM 0x01 /* seconds alarm */
#define MC146818A_MIN 0x02 /* minutes */
#define MC146818A_MINALRM 0x03 /* minutes alarm */
#define MC146818A_HRS 0x04 /* hours */
#define MC146818A_HRSALRM 0x05 /* hours alarm */
#define MC146818A_WDAY 0x06 /* week day */
#define MC146818A_DAY 0x07 /* day of month */
#define MC146818A_MONTH 0x08 /* month of year */
#define MC146818A_YEAR 0x09 /* month of year */
#define MC146818A_STATUSA 0x0a /* status register A */
#define MC146818ASA_TUP 0x80 /* time update in progress */
#define MC146818ASA_DIVIDER 0x20 /* divider for 32768 crystal */
#define MC146818ASA_1024 0x06 /* divide to 1024 Hz */
#define MC146818A_STATUSB 0x0b /* status register B */
#define MC146818ASB_DST 0x01 /* Daylight Savings Time */
#define MC146818ASB_24HR 0x02 /* 0 = 12 hours, 1 = 24 hours */
#define MC146818ASB_HALT 0x80 /* stop clock updates */
#define MC146818A_STATUSD 0x0d /* status register D */
#define MC146818ASD_PWR 0x80 /* clock lost power */
/*
* Driver function table
*/
extern rtc_fns mc146818a_fns;
boolean mc146818a_probe(
int minor
);
/*
* Default register access routines
*/
unsigned32 mc146818a_get_register(
unsigned32 ulCtrlPort,
unsigned8 ucRegNum
);
void mc146818a_set_register(
unsigned32 ulCtrlPort,
unsigned8 ucRegNum,
unsigned32 ucData
);
#endif
/* end of include file */

View File

@@ -1,45 +0,0 @@
/*
* This file contains a typical set of register access routines which may be
* used with the MC146818A chip if accesses to the chip are as follows:
*
* + registers are in I/O space
* + registers are accessed as bytes
* + registers are only byte-aligned (no address gaps)
*
* COPYRIGHT (c) 1989-1997.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*
* $Id$
*/
#include <rtems.h>
#include <bsp.h>
unsigned32 mc146818a_get_register(
unsigned32 ulCtrlPort,
unsigned8 ucRegNum
)
{
unsigned8 val;
unsigned8 tmp;
outport_byte( ulCtrlPort, ucRegNum );
inport_byte( 0x84, tmp ); /* Hack a delay to give chip time to settle */
inport_byte( ulCtrlPort+1, val );
inport_byte( 0x84, tmp ); /* Hack a delay to give chip time to settle */
return val;
}
void mc146818a_set_register(
unsigned32 ulCtrlPort,
unsigned8 ucRegNum,
unsigned32 ucData
)
{
outport_byte( ulCtrlPort, ucRegNum );
outport_byte( ulCtrlPort+1, (unsigned8)ucData );
}

View File

@@ -32,9 +32,7 @@ typedef struct _rtc_fns {
typedef enum {
RTC_M48T08, /* SGS-Thomsom M48T08 or M48T18 */
RTC_ICM7170, /* Harris ICM-7170 */
RTC_CUSTOM, /* BSP specific driver */
RTC_MC146818A /* Motorola MC146818A */
RTC_CUSTOM /* BSP specific driver */
} rtc_devs;
/*

View File

@@ -1,8 +1,3 @@
2004-04-03 Wilfried Busalski <w.busalski@lancier-monitoring.de>
PR 599/pppd
* pppd/chat.c: Fre memory that is allocated to fix leak.
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac: Use rtems-bugs@rtems.com as bug report email address.

View File

@@ -82,18 +82,6 @@
*
*/
/* $Id$ */
/*
Fixes and some Changes by Wilfried Busalski Lancier-Monitoring GmbH Germany
wilfried.busalski@muenster.de
Fixes: put_string() Free memory allocated by clean()
get_string() Free memory allocated by clean()
chat_main() Will Distroy's no more the chat-script
getnextcommand() sepatator changed to '@'
*/
#include <stdio.h>
#include <ctype.h>
#include <time.h>
@@ -221,53 +209,43 @@ char *s;
return dup_mem(s, strlen (s) + 1);
}
char *getnextcommand(char *string,char *buff)
char *getnextcommand(char **string)
{
char *token;
int len;
token=strchr(string,'@');
if (token==NULL){
char *buf=*string,*res;
res=strchr(buf,'|');
if (res==NULL)
return NULL;
}
len=token-string;
if(len > 78 ){
len=78;
}
memcpy(buff,string,len);
buff[len]=0;
return(token+1);
*res='\0';
*string=res+1;
return buf;
}
int chatmain(int fd, int mode, char *pScript)
{
char arg[80];
char *script;
char *arg;
/* initialize exit code */
exit_code = 0;
ttyfd = fd;
script=pScript;
if ( debug ) {
dbglog("chat_main: %s\n", script);
dbglog("chat_main: %s\n", pScript);
}
/* get first expect string */
script = getnextcommand(script,arg);
while (( script != NULL ) && ( exit_code == 0 )) {
arg = getnextcommand(&pScript);
while (( arg != NULL ) && ( exit_code == 0 )) {
/* process the expect string */
chat_expect(arg);
if ( exit_code == 0 ) {
/* get the next send string */
script = getnextcommand(script,arg);
if ( script != NULL ) {
arg = getnextcommand(&pScript);
if ( arg != NULL ) {
/* process the send string */
chat_send(arg);
/* get the next expect string */
script = getnextcommand(script,arg);
arg = getnextcommand(&pScript);
}
}
}
@@ -517,43 +495,43 @@ char *s;
char *reply;
if (strcmp(s, "HANGUP") == 0) {
++hup_next;
++hup_next;
return;
}
if (strcmp(s, "ABORT") == 0) {
++abort_next;
return;
++abort_next;
return;
}
if (strcmp(s, "CLR_ABORT") == 0) {
++clear_abort_next;
return;
++clear_abort_next;
return;
}
if (strcmp(s, "REPORT") == 0) {
++report_next;
return;
++report_next;
return;
}
if (strcmp(s, "CLR_REPORT") == 0) {
++clear_report_next;
return;
++clear_report_next;
return;
}
if (strcmp(s, "TIMEOUT") == 0) {
++timeout_next;
return;
++timeout_next;
return;
}
if (strcmp(s, "ECHO") == 0) {
++echo_next;
return;
++echo_next;
return;
}
if (strcmp(s, "SAY") == 0) {
++say_next;
return;
++say_next;
return;
}
/*
@@ -620,11 +598,11 @@ register char *s;
/* char file_data[STR_LEN]; */
if (say_next) {
say_next = 0;
s = clean(s, 1);
write(2, s, strlen(s));
say_next = 0;
s = clean(s, 1);
write(2, s, strlen(s));
free(s);
return;
return;
}
if (hup_next) {
@@ -639,56 +617,53 @@ register char *s;
}
if (abort_next) {
char *s1;
char *s1;
abort_next = 0;
if ( n_aborts < MAX_ABORTS ) {
s1 = clean(s, 0);
if (( strlen(s1) <= strlen(s) ) && ( strlen(s1) < sizeof(fail_buffer))) {
abort_string[n_aborts++] = s1;
}
free(s1);
}
return;
abort_next = 0;
if ( n_aborts < MAX_ABORTS ) {
s1 = clean(s, 0);
if (( strlen(s1) <= strlen(s) ) &&
( strlen(s1) < sizeof(fail_buffer))) {
abort_string[n_aborts++] = s1;
}
}
return;
}
if (clear_abort_next) {
clear_abort_next = 0;
return;
clear_abort_next = 0;
return;
}
if (report_next) {
report_next = 0;
return;
report_next = 0;
return;
}
if (clear_report_next) {
clear_report_next = 0;
return;
clear_report_next = 0;
return;
}
if (timeout_next) {
timeout_next = 0;
timeout = atoi(s);
timeout_next = 0;
timeout = atoi(s);
if (timeout <= 0){
timeout = DEFAULT_CHAT_TIMEOUT;
}
return;
if (timeout <= 0)
timeout = DEFAULT_CHAT_TIMEOUT;
return;
}
if (strcmp(s, "EOT") == 0){
s = "^D\\c";
}
else{
if (strcmp(s, "BREAK") == 0){
s = "\\K\\c";
}
if (strcmp(s, "EOT") == 0)
s = "^D\\c";
else if (strcmp(s, "BREAK") == 0)
s = "\\K\\c";
if (!put_string(s)) {
exit_code = 2;
}
}
if (!put_string(s)) {
exit_code = 2;
}
}
static int get_char()
@@ -715,14 +690,16 @@ int c;
{
char ch = c;
return(write(ttyfd, &ch, 1));
write(ttyfd, &ch, 1);
return 0;
}
static int write_char (c)
int c;
{
if (put_char(c) < 1) {
return (0);
if (put_char(c) < 0) {
return (0);
}
return (1);
}
@@ -730,49 +707,41 @@ int c;
static int put_string (s)
register char *s;
{
char *out,*free_ptr=0;
quiet = 0;
out = free_ptr = clean(s, 1);
while (*out) {
register char c = *out++;
s = clean(s, 1);
while (*s) {
register char c = *s++;
if (c != '\\') {
if (!write_char (c)){
free(free_ptr);
return 0;
}
continue;
}
if (c != '\\') {
if (!write_char (c))
return 0;
continue;
}
c = *out++;
c = *s++;
switch (c) {
case 'd':
sleep(1);
break;
switch (c) {
case 'd':
sleep(1);
break;
case 'K':
break_sequence();
break;
case 'K':
break_sequence();
break;
case 'p':
case 'p':
#if 0 /* FIXME!!! */
usleep(10000); /* 1/100th of a second (arg is microseconds) */
usleep(10000); /* 1/100th of a second (arg is microseconds) */
#else
sleep(1);
sleep(1);
#endif
break;
break;
default:
if (!write_char (c)){
free(free_ptr);
return 0;
}
break;
}
default:
if (!write_char (c))
return 0;
break;
}
}
free(free_ptr);
return (1);
}
@@ -780,13 +749,12 @@ register char *s;
/*
* 'Wait for' this string to appear on this file descriptor.
*/
static int get_string(in_string)
register char *in_string;
static int get_string(string)
register char *string;
{
int c, len, minlen;
register char *s = temp2, *end = s + STR_LEN;
char *logged = temp2;
char *string=0;
struct termios tios;
memset(temp2, 0, sizeof(temp2));
@@ -796,14 +764,13 @@ register char *in_string;
tios.c_cc[VTIME] = timeout*10/MAX_TIMEOUTS;
tcsetattr(ttyfd, TCSANOW, &tios);
string = clean(in_string, 0);
string = clean(string, 0);
len = strlen(string);
minlen = (len > sizeof(fail_buffer)? len: sizeof(fail_buffer)) - 1;
if (len > STR_LEN) {
exit_code = 1;
free(string);
return 0;
exit_code = 1;
return 0;
}
if (len == 0) {
@@ -813,19 +780,12 @@ register char *in_string;
while ( (c = get_char()) >= 0) {
int n, abort_len;
if(c == '\n' || c == '\r'){
s = temp2;
*s=0;
}
else{
*s++ = c;
*s=0;
}
*s++ = c;
*s=0;
if (s - temp2 >= len &&
c == string[len - 1] &&
strncmp(s - len, string, len) == 0) {
free(string);
return (1);
}
@@ -835,7 +795,6 @@ register char *in_string;
exit_code = n + 4;
strcpy(fail_reason = fail_buffer, abort_string[n]);
free(string);
return (0);
}
}
@@ -852,7 +811,5 @@ register char *in_string;
}
exit_code = 3;
free(string);
return (0);
}

View File

@@ -1,14 +1,3 @@
2004-03-05 Joel Sherrill <joel@OARcorp.com>
* psxmsgq01/init.c, psxtimer/psxtimer.c: Eliminate warning from
previous patch.
2004-02-26 Sébastien Barré <sbarre@sdelcc.com>
PR 582/core
* psxmsgq01/init.c, psxmsgq01/psxmsgq01.scn: Fix the POSIX message
queue test so more of it runs now.
2003-09-04 Joel Sherrill <joel@OARcorp.com>
* psx01/init.c, psx01/system.h, psx01/task.c, psx02/init.c,

View File

@@ -1004,13 +1004,10 @@ void verify_with_threads()
int status;
pthread_t id;
Test_Message_t *ptr;
#if 0
unsigned int priority;
char message[100];
#endif
#if 0
/*
* Create a task then block until the task sends the message.
* Task tests set attributes so one queue will have a thread
@@ -1025,7 +1022,7 @@ void verify_with_threads()
fatal_int_service_status( status, -1, "mq_receive error return status");
fatal_posix_service_status( errno, EAGAIN, "mq_receive errno EAGAIN");
print_current_time( "Init: ", "" );
#endif
/*
* Create a task then block until the task sends the message.
* Task tests set attributes so one queue will have a thread
@@ -1038,11 +1035,8 @@ void verify_with_threads()
Read_msg_from_que( BLOCKING, 0 ); /* Block until init writes */
print_current_time( "Init: ", "" );
#if 0
/*
* Fill the queue then create a task then block until the task receives a message.
* Task tests set attributes so one queue will have a thread
* blocked while attributes are changed.
* Create a task then block until the task reads a message.
*/
Start_Test( "multi-thread Task 4 Send Test" );
@@ -1055,7 +1049,7 @@ void verify_with_threads()
fatal_posix_service_status( errno, EAGAIN, "mq_send errno EAGAIN");
verify_queues_full( "Init:" );
empty_message_queues( "Init:" );
#endif
/*
* Create a task then block until the task reads a message.
*/

View File

@@ -4,8 +4,8 @@ Init: mq_open - Create with maxmsg (-1) (EINVAL)
Init: mq_open - Create with msgsize (-1) (EINVAL)
Init: mq_open - Open new mq without create flag (ENOENT)
Init: mq_open - Open with too long of a name (ENAMETOOLONG)
Init: mq_open - SUCCESSFUL
Init: mq_open - Create an Existing mq (EEXIST)
Init: mq_open - SUCCESSFUL
Init: mq_open - system is out of resources (ENFILE)
Init: mq_close and mq_unlink (mq3...mqn) - SUCCESSFUL
Init: Open Test Queues
@@ -52,6 +52,7 @@ Init: Init: mq_timedreceive - on queue Qnoblock Init: 0 sec 0 us
Init: Init: mq_timedreceive - on queue Qblock Init: 1 sec 0 us
Init: Init: mq_timedreceive - on queue Qdefault Init: 1 sec 0 us
_______________mq_open functionality
Init: mq_open - Open an existing mq ( same id )
_______________mq_notify
Init: mq_notify - Unopened message queue (EBADF)
_____mq_notify - notify when Qnoblock gets a message
@@ -69,20 +70,38 @@ Init: mq_notify - Remove notification with null
Init: Verify No Signal when send
Init: mq_send - to Qnoblock msg: 12345678 priority 31
waiting on any signal for 3 seconds.
_______________multi-thread Task 4 Receive Test
Init: mq_receive - Empty queue changes to non-blocking (EAGAIN)
Task_4: Fri Jan 1 00:00:18 1988
Task_4: Set queue to non-blocking
Task_4: Return queue to blocking
Task_4: pthread_exit
Init: Fri Jan 1 00:00:18 1988
_______________multi-thread Task 1 Test
Task_1: Fri Jan 1 00:00:20 1988
Task_1: Fri Jan 1 00:00:18 1988
Task_1: mq_send - to Qblock msg: 12345678 priority 31
Task_1: pthread_exit
Init: Fri Jan 1 00:00:20 1988
Init: Fri Jan 1 00:00:18 1988
_______________multi-thread Task 4 Send Test
Init: Verify Queues are empty
Init: Fill Queues with messages
Init: Verify Queues are full
Init: mq_send - Full queue changes to non-blocking (EAGAIN)
Task_4: Fri Jan 1 00:00:18 1988
Task_4: Set queue to non-blocking
Task_4: Return queue to blocking
Task_4: pthread_exit
Init: Verify Queues are full
Init: Empty all Queues
_______________multi-thread Task 2 Test
Init: Verify Queues are empty
Init: Fill Queues with messages
Init: Verify Queues are full
Init: mq_send - to Qblock msg: Last priority 32
Task_2: Fri Jan 1 00:00:21 1988
Task_2: Fri Jan 1 00:00:18 1988
Task_2: Verify Queues are full
Task_2: pthread_exit
Init: Fri Jan 1 00:00:21 1988
Init: Fri Jan 1 00:00:18 1988
Init: Verify Queues are full
Init: Empty all Queues
_______________multi-thread Task 3 Test
@@ -90,7 +109,7 @@ Init: Verify Queues are empty
Init: Fill Queues with messages
Init: Verify Queues are full
Init: mq_send - Block while thread deletes queue (EBADF)
Task_3: Fri Jan 1 00:00:21 1988
Task_3: Fri Jan 1 00:00:18 1988
_______________Unlink and Close All Files
Task_3: pthread_exit
*** END OF POSIX MESSAGE QUEUE TEST ***

View File

@@ -328,7 +328,7 @@ void *POSIX_Init (
params_c.period.tv_nsec = 000000000; /* nanoseconds */
params_c.signo = SIGALRM;
if (pthread_create (&tc, &attr, task_c, &params_c) != 0) {
perror ("Error in thread create for task c\n");
perror ("Error in trhead create for task c\n");
}

View File

@@ -1,19 +1,3 @@
2004-03-30 David Querbach <querbach@realtime.bc.ca>
PR 595/tests
* sp13/fillbuff.c, sp13/init.c, sp13/putbuff.c, sp13/system.h,
sp13/task1.c, sp13/task2.c: Fill_buffer() in fillbuff.c overruns the
supplied buffer due to confusion in the definition of MESSAGE_SIZE.
Some files in the sp13 test treat MESSAGE_SIZE as a count of bytes,
others treat it as a count of longs.
2004-03-30 David Querbach <querbach@realtime.bc.ca>
PR 596/tests
* sp32/init.c: A missing definition of TEST_INIT before including
<tmacros.h> means that buffered output will not work even if selected
in buffer_test_io.h.
2003-12-16 Joel Sherrill <joel@OARcorp.com>
PR 544/tests

View File

@@ -21,19 +21,26 @@
#include "system.h"
#define MESSAGE_SIZE (sizeof(long) * 4)
void Fill_buffer(
char *source,
long *buffer
)
{
char *p;
int i, j;
int i;
/*
memcpy( buffer, source, 16 );
*/
p = source;
for ( i = 0 ; i < MESSAGE_SIZE / sizeof(long) ; i++ ) {
buffer[i] = 0;
for ( j = sizeof(long) - 1; j >= 0; j-- ) {
buffer[i] |= *p++ << (8 * j);
}
for ( i=0 ; i<MESSAGE_SIZE ; i++ ) {
buffer[i] = *p++;
buffer[i] <<= 8;
buffer[i] |= *p++;
buffer[i] <<= 8;
buffer[i] |= *p++;
buffer[i] <<= 8;
buffer[i] |= *p++;
}
}

View File

@@ -24,6 +24,8 @@
#define TEST_INIT
#include "system.h"
#define MESSAGE_SIZE (sizeof(long) * 4)
rtems_task Init(
rtems_task_argument argument
)

View File

@@ -20,18 +20,21 @@
#include "system.h"
#define MESSAGE_SIZE (4)
void Put_buffer(
long *buffer
)
{
int i, j;
char c;
for ( i = 0; i < MESSAGE_SIZE / sizeof(long); i++ ) {
for ( j = sizeof(long) - 1; j >= 0; j-- ) {
if ( (c = (buffer[i] >> (8 * j)) & 0xFF) == 0 )
return;
printf( "%c", c );
}
int i;
/*
printf( "%16s", (char *)buffer );
*/
for ( i=0 ; i< MESSAGE_SIZE ; i++ ) {
printf( "%c%c%c%c", (char) (buffer[i] >> 24),
(char) (buffer[i] >> 16 & 0xff),
(char) (buffer[i] >> 8 & 0xff),
(char) (buffer[i] >> 0 & 0xff) );
}
}

View File

@@ -66,8 +66,4 @@ TEST_EXTERN rtems_name Task_name[ 4 ]; /* array of task names */
TEST_EXTERN rtems_id Queue_id[ 4 ]; /* array of queue ids */
TEST_EXTERN rtems_name Queue_name[ 4 ]; /* array of queue names */
/* test configuration */
#define MESSAGE_SIZE (sizeof(long) * 4) /* must be multiple of sizeof(long) */
/* end of include file */

Some files were not shown because too many files have changed in this diff Show More