mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-12-05 15:15:44 +00:00
2003-09-26 Joel Sherrill <joel@OARcorp.com>
* hppa1.1/.cvsignore, hppa1.1/ChangeLog, hppa1.1/Makefile.am, hppa1.1/acinclude.m4, hppa1.1/configure.ac, hppa1.1/simhppa/.cvsignore, hppa1.1/simhppa/ChangeLog, hppa1.1/simhppa/Makefile.am, hppa1.1/simhppa/bsp_specs, hppa1.1/simhppa/configure.ac, hppa1.1/simhppa/times, hppa1.1/simhppa/include/.cvsignore, hppa1.1/simhppa/include/Makefile.am, hppa1.1/simhppa/include/bsp.h, hppa1.1/simhppa/include/ttydrv.h, hppa1.1/simhppa/shmsupp/.cvsignore, hppa1.1/simhppa/shmsupp/Makefile.am, hppa1.1/simhppa/shmsupp/README, hppa1.1/simhppa/shmsupp/addrconv.c, hppa1.1/simhppa/shmsupp/cause_intr.c, hppa1.1/simhppa/shmsupp/getcfg.c, hppa1.1/simhppa/shmsupp/lock.c, hppa1.1/simhppa/shmsupp/mpisr.c, hppa1.1/simhppa/start/.cvsignore, hppa1.1/simhppa/start/Makefile.am, hppa1.1/simhppa/start/start.S, hppa1.1/simhppa/startup/.cvsignore, hppa1.1/simhppa/startup/Makefile.am, hppa1.1/simhppa/startup/bspclean.c, hppa1.1/simhppa/startup/bspstart.c, hppa1.1/simhppa/startup/linkcmds, hppa1.1/simhppa/startup/setvec.c, hppa1.1/simhppa/tools/.cvsignore, hppa1.1/simhppa/tools/ChangeLog, hppa1.1/simhppa/tools/Makefile.am, hppa1.1/simhppa/tools/configure.ac, hppa1.1/simhppa/tools/print_dump.c, hppa1.1/simhppa/tty/.cvsignore, hppa1.1/simhppa/tty/Makefile.am, hppa1.1/simhppa/tty/tty.c, hppa1.1/simhppa/wrapup/.cvsignore, hppa1.1/simhppa/wrapup/Makefile.am: Removed.
This commit is contained in:
@@ -1,14 +0,0 @@
|
||||
aclocal.m4
|
||||
autom4te*.cache
|
||||
config.cache
|
||||
config.guess
|
||||
config.log
|
||||
config.status
|
||||
config.sub
|
||||
configure
|
||||
depcomp
|
||||
install-sh
|
||||
Makefile
|
||||
Makefile.in
|
||||
missing
|
||||
mkinstalldirs
|
||||
@@ -1,73 +0,0 @@
|
||||
2003-08-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Reflect having moved aclocal/.
|
||||
|
||||
2003-08-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Reflect having moved automake/.
|
||||
|
||||
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Use rtems-bugs@rtems.com as bug report email address.
|
||||
|
||||
2003-03-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Remove AC_CONFIG_AUX_DIR.
|
||||
|
||||
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: AM_INIT_AUTOMAKE([1.7.2]).
|
||||
|
||||
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: AC_PREREQ(2.57).
|
||||
|
||||
2002-12-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Remove RTEMS_CHECK_BSP_CACHE.
|
||||
|
||||
2002-12-02 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* pxfl/.cvsignore, pxfl/Makefile.in, pxfl/README,
|
||||
pxfl/floss-bsp.h: Removed.
|
||||
|
||||
2002-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* .cvsignore: Reformat.
|
||||
Add autom4te*cache.
|
||||
Remove autom4te.cache.
|
||||
|
||||
2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac:
|
||||
AC_INIT(package,_RTEMS_VERSION,_RTEMS_BUGS).
|
||||
AM_INIT_AUTOMAKE([no-define foreign 1.6]).
|
||||
* Makefile.am: Remove AUTOMAKE_OPTIONS.
|
||||
|
||||
2001-10-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* .cvsignore: Add autom4te.cache for autoconf > 2.52.
|
||||
* configure.in: Remove.
|
||||
* configure.ac: New file, generated from configure.in by autoupdate.
|
||||
|
||||
2001-10-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* acinclude.m4: New file.
|
||||
* configure.in: Use RTEMS_BSP_SUBDIR.
|
||||
|
||||
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
|
||||
|
||||
2000-11-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Switch to ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal.
|
||||
|
||||
2000-10-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: ACLOCAL_AMFLAGS= -I $(RTEMS_TOPdir)/macros.
|
||||
Switch to GNU canonicalization.
|
||||
|
||||
2000-08-10 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* ChangeLog: New file.
|
||||
@@ -1,11 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
ACLOCAL_AMFLAGS = -I ../../../aclocal
|
||||
|
||||
# Descend into the $(RTEMS_BSP_FAMILY) directory
|
||||
SUBDIRS = $(RTEMS_BSP_FAMILY)
|
||||
|
||||
include $(top_srcdir)/../../../automake/subdirs.am
|
||||
include $(top_srcdir)/../../../automake/local.am
|
||||
@@ -1,11 +0,0 @@
|
||||
# RTEMS_CHECK_BSPDIR(RTEMS_BSP)
|
||||
AC_DEFUN([RTEMS_CHECK_BSPDIR],
|
||||
[
|
||||
RTEMS_BSP_ALIAS(ifelse([$1],,[${RTEMS_BSP}],[$1]),bspdir)
|
||||
case "$bspdir" in
|
||||
simhppa )
|
||||
AC_CONFIG_SUBDIRS([simhppa]);;
|
||||
*)
|
||||
AC_MSG_ERROR([Invalid BSP]);;
|
||||
esac
|
||||
])
|
||||
@@ -1,22 +0,0 @@
|
||||
## Process this file with autoconf to produce a configure script.
|
||||
##
|
||||
## $Id$
|
||||
|
||||
AC_PREREQ(2.57)
|
||||
AC_INIT([rtems-c-src-lib-libbsp-hppa1.1],[_RTEMS_VERSION],[rtems-bugs@rtems.com])
|
||||
AC_CONFIG_SRCDIR([simhppa])
|
||||
RTEMS_TOP(../../../../..)
|
||||
|
||||
RTEMS_CANONICAL_TARGET_CPU
|
||||
AM_INIT_AUTOMAKE([no-define foreign 1.7.2])
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
RTEMS_ENV_RTEMSBSP
|
||||
RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP)
|
||||
RTEMS_PROJECT_ROOT
|
||||
|
||||
RTEMS_CHECK_BSPDIR([$RTEMS_BSP])
|
||||
|
||||
# Explicitly list all Makefiles here
|
||||
AC_CONFIG_FILES([Makefile])
|
||||
AC_OUTPUT
|
||||
@@ -1,14 +0,0 @@
|
||||
aclocal.m4
|
||||
autom4te*.cache
|
||||
config.cache
|
||||
config.guess
|
||||
config.log
|
||||
config.status
|
||||
config.sub
|
||||
configure
|
||||
depcomp
|
||||
install-sh
|
||||
Makefile
|
||||
Makefile.in
|
||||
missing
|
||||
mkinstalldirs
|
||||
@@ -1,203 +0,0 @@
|
||||
2003-09-19 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* bsp_specs: Remove *lib:.
|
||||
|
||||
2003-09-04 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* include/bsp.h, shmsupp/addrconv.c, shmsupp/cause_intr.c,
|
||||
shmsupp/getcfg.c, shmsupp/lock.c, shmsupp/mpisr.c,
|
||||
startup/bspclean.c, startup/bspstart.c, startup/setvec.c,
|
||||
tools/print_dump.c, tty/tty.c: URL for license changed.
|
||||
|
||||
2003-08-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Reflect having moved aclocal/.
|
||||
|
||||
2003-08-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Reflect having moved automake/.
|
||||
* include/Makefile.am: Reflect having moved automake/.
|
||||
* shmsupp/Makefile.am: Reflect having moved automake/.
|
||||
* start/Makefile.am: Reflect having moved automake/.
|
||||
* startup/Makefile.am: Reflect having moved automake/.
|
||||
* tty/Makefile.am: Reflect having moved automake/.
|
||||
* wrapup/Makefile.am: Reflect having moved automake/.
|
||||
|
||||
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Use rtems-bugs@rtems.com as bug report email address.
|
||||
|
||||
2003-08-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
PR 445/bsps
|
||||
* bsp_specs: Remove -D__embedded__ -Asystem(embedded) from cpp.
|
||||
Remove cpp, old_cpp (now unused).
|
||||
|
||||
2003-03-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Remove AC_CONFIG_AUX_DIR.
|
||||
|
||||
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: AM_INIT_AUTOMAKE([1.7.2]).
|
||||
|
||||
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: AC_PREREQ(2.57).
|
||||
|
||||
2003-01-20 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* startup/linkcmds: Add FreeBSD SYSCTL() sections for networking.
|
||||
|
||||
2003-01-15 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* shmsupp/Makefile.am: Don't include @RTEMS_BSP@.cfg.
|
||||
* start/Makefile.am: Don't include @RTEMS_BSP@.cfg.
|
||||
* startup/Makefile.am: Don't include @RTEMS_BSP@.cfg.
|
||||
* tty/Makefile.am: Don't include @RTEMS_BSP@.cfg.
|
||||
|
||||
2002-12-19 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* start/start.S: Per PR329 now compiles with GNU tools.
|
||||
* startup/linkcmds: New file. Now almost links.
|
||||
|
||||
2002-12-19 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* start/start.S: Per PR329 now compiles with GNU tools.
|
||||
|
||||
2002-12-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* include/Makefile.am: Fix broken preinstall-deps.
|
||||
|
||||
2002-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* start/Makefile.am: Use install-data-local to install startfile.
|
||||
|
||||
2002-12-10 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* wrapup/Makefile.am: Don't include @RTEMS_BSP@.cfg.
|
||||
|
||||
2002-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* .cvsignore: Reformat.
|
||||
Add autom4te*cache.
|
||||
Remove autom4te.cache.
|
||||
|
||||
2002-08-21 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* bsp_specs: Added support for -nostdlibs.
|
||||
|
||||
2002-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* shmsupp/Makefile.am: Use .$(OBJEXT) instead of .o.
|
||||
* start/Makefile.am: Use .$(OBJEXT) instead of .o.
|
||||
* startup/Makefile.am: Use .$(OBJEXT) instead of .o.
|
||||
* tty/Makefile.am: Use .$(OBJEXT) instead of .o.
|
||||
* wrapup/Makefile.am: Use .$(OBJEXT) instead of .o.
|
||||
|
||||
2002-07-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* start/Makefile.am: Eliminate PGMS.
|
||||
Add bsplib_DATA = $(PROJECT_RELEASE)/lib/start$(LIB_VARIANT).o.
|
||||
|
||||
2002-07-04 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* wrapup/Makefile.am: Eliminate TMPINSTALL_FILES.
|
||||
Remove $(OBJS) from all-local.
|
||||
|
||||
2002-06-29 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* wrapup/Makefile.am: Remove preinstallation of libbsp.a,
|
||||
|
||||
2002-06-27 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* Makefile.am, bsp_specs: Now this target almost compiles again.
|
||||
|
||||
2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac:
|
||||
AC_INIT(package,_RTEMS_VERSION,_RTEMS_BUGS).
|
||||
AM_INIT_AUTOMAKE([no-define foreign 1.6]).
|
||||
* include/Makefile.am: Remove AUTOMAKE_OPTIONS.
|
||||
* Makefile.am: Remove AUTOMAKE_OPTIONS.
|
||||
* shmsupp/Makefile.am: Remove AUTOMAKE_OPTIONS.
|
||||
* start/Makefile.am: Remove AUTOMAKE_OPTIONS.
|
||||
* startup/Makefile.am: Remove AUTOMAKE_OPTIONS.
|
||||
* tty/Makefile.am: Remove AUTOMAKE_OPTIONS.
|
||||
* wrapup/Makefile.am: Remove AUTOMAKE_OPTIONS.
|
||||
|
||||
2001-12-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* bsp_specs: Replace -lrtemsall with -lrtemsbsp -lrtemscpu,
|
||||
replace -lrtemsall_g with -lrtemsbsp_g -lrtemscpu_g.
|
||||
|
||||
2001-11-30 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Introduce RTEMS_BSP_CONFIGURE.
|
||||
|
||||
2001-11-15 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Add RTEMS_BSPOPTS_*(SIMHPPA_FAST_IDLE),
|
||||
remove RTEMS_OUTPUT_BUILD_SUBDIRS.
|
||||
|
||||
2001-10-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* .cvsignore: Add autom4te.cache for autoconf > 2.52.
|
||||
* configure.in: Remove.
|
||||
* configure.ac: New file, generated from configure.in by autoupdate.
|
||||
|
||||
2001-09-27 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* include/bsp.h: Renamed delay() to rtems_bsp_delay().
|
||||
|
||||
2001-09-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* include/Makefile.am: Use 'CLEANFILES ='.
|
||||
* include/Makefile.am: Use 'TMPINSTALL_FILES ='.
|
||||
|
||||
2001-05-26 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.in: Add bspopts.h.
|
||||
* include/.cvsignore: Add bspopts.h*, stamp-h*.
|
||||
* include/Makefile.am: Use *_HEADERS instead of *H_FILES.
|
||||
* include/bsp.h: Include bspopts.h.
|
||||
|
||||
2001-05-10 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.in: Use RTEMS_PROG_CC_FOR_TARGET([-ansi -fasm]).
|
||||
|
||||
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
|
||||
|
||||
2000-11-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Switch to ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal.
|
||||
|
||||
2000-11-01 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* startup/bspstart.c: assoc.h, error.h, libio_.h, libio.h,
|
||||
and libcsupport.h moved from libc to lib/include/rtems and
|
||||
now must be referenced as <rtems/XXX.h>. Header file order
|
||||
was cleaned up while doing this.
|
||||
|
||||
2000-10-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.in, Makefile.am: ACLOCAL_AMFLAGS= -I $(RTEMS_TOPdir)/macros.
|
||||
Switch to GNU canonicalization.
|
||||
|
||||
2000-09-25 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* include/bsp.h: tty_* renamed to console_*.
|
||||
* tty/tty.c: Ditto.
|
||||
* shmsupp/addrconv.c: Typo fixed.
|
||||
* wrapup/Makefile.am: Merge startup not start directory.
|
||||
|
||||
2000-09-04 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* shmsupp/Makefile.am, start/Makefile.am, startup/Makefile.am,
|
||||
tty/Makefile.am, wrapup/Makefile.am: Include compile.am
|
||||
|
||||
2000-08-10 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* ChangeLog: New file.
|
||||
@@ -1,16 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
ACLOCAL_AMFLAGS = -I ../../../../aclocal
|
||||
|
||||
# wrapup is the one that actually builds and installs the library
|
||||
# from the individual .rel files built in other directories
|
||||
SUBDIRS = . include start startup tty shmsupp wrapup tools
|
||||
|
||||
include $(top_srcdir)/../../bsp.am
|
||||
|
||||
EXTRA_DIST = bsp_specs times
|
||||
|
||||
include $(top_srcdir)/../../../../automake/subdirs.am
|
||||
include $(top_srcdir)/../../../../automake/local.am
|
||||
@@ -1,12 +0,0 @@
|
||||
%rename endfile old_endfile
|
||||
%rename startfile old_startfile
|
||||
%rename link old_link
|
||||
|
||||
*startfile:
|
||||
%{!qrtems: %(old_startfile)} %{!nostdlib: %{qrtems: \
|
||||
%{!qrtems_debug: start.o%s} \
|
||||
%{qrtems_debug: start_g.o%s}}}
|
||||
|
||||
*link:
|
||||
%{!qrtems: %(old_link)} %{qrtems: -dc -dp -N -e start}
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
## Process this file with autoconf to produce a configure script.
|
||||
##
|
||||
## $Id$
|
||||
|
||||
AC_PREREQ(2.57)
|
||||
AC_INIT([rtems-c-src-lib-libbsp-hppa1.1-simhppa],[_RTEMS_VERSION],[rtems-bugs@rtems.com])
|
||||
AC_CONFIG_SRCDIR([bsp_specs])
|
||||
RTEMS_TOP(../../../../../..)
|
||||
|
||||
RTEMS_CANONICAL_TARGET_CPU
|
||||
AM_INIT_AUTOMAKE([no-define foreign 1.7.2])
|
||||
RTEMS_BSP_CONFIGURE
|
||||
|
||||
RTEMS_PROG_CC_FOR_TARGET([-ansi -fasm])
|
||||
RTEMS_CANONICALIZE_TOOLS
|
||||
|
||||
RTEMS_CHECK_MULTIPROCESSING(RTEMS_BSP)
|
||||
|
||||
AM_CONDITIONAL(HAS_MP,test "$HAS_MP" = "yes")
|
||||
|
||||
RTEMS_CONFIG_BUILD_SUBDIRS(tools)
|
||||
|
||||
RTEMS_BSPOPTS_SET([SIMHPPA_FAST_IDLE],[*],[1])
|
||||
RTEMS_BSPOPTS_HELP([SIMHPPA_FAST_IDLE],
|
||||
[If defined, speed up the clock ticks while the idle task is running so
|
||||
time spent in the idle task is minimized. This significantly reduces
|
||||
the wall time required to execute the RTEMS test suites.])
|
||||
|
||||
|
||||
# Explicitly list all Makefiles here
|
||||
AC_CONFIG_FILES([Makefile
|
||||
include/Makefile
|
||||
shmsupp/Makefile
|
||||
start/Makefile
|
||||
startup/Makefile
|
||||
tty/Makefile
|
||||
wrapup/Makefile])
|
||||
AC_OUTPUT
|
||||
@@ -1,6 +0,0 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
bspopts.h
|
||||
bspopts.h.in
|
||||
stamp-h
|
||||
stamp-h.in
|
||||
@@ -1,33 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
|
||||
include_rtemsdir = $(includedir)/rtems
|
||||
include_HEADERS = bsp.h coverhd.h bspopts.h
|
||||
include_rtems_HEADERS = ttydrv.h
|
||||
|
||||
$(PROJECT_INCLUDE):
|
||||
$(mkinstalldirs) $@
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems:
|
||||
$(mkinstalldirs) $@
|
||||
|
||||
$(PROJECT_INCLUDE)/%.h: %.h
|
||||
$(INSTALL_DATA) $< $@
|
||||
|
||||
coverhd.h: $(top_srcdir)/../../shared/include/coverhd.h
|
||||
$(INSTALL_DATA) $< $@
|
||||
CLEANFILES = coverhd.h
|
||||
|
||||
$(PROJECT_INCLUDE)/rtems/%.h: %.h
|
||||
$(INSTALL_DATA) $< $@
|
||||
|
||||
TMPINSTALL_FILES = $(PROJECT_INCLUDE) \
|
||||
$(include_HEADERS:%=$(PROJECT_INCLUDE)/%) \
|
||||
$(PROJECT_INCLUDE)/rtems \
|
||||
$(include_rtems_HEADERS:%=$(PROJECT_INCLUDE)/rtems/%)
|
||||
|
||||
all-local: $(TMPINSTALL_FILES)
|
||||
|
||||
include $(top_srcdir)/../../../../automake/local.am
|
||||
@@ -1,116 +0,0 @@
|
||||
/* bsp.h
|
||||
*
|
||||
* This include file contains all HP PA-RISC simulator definitions.
|
||||
*
|
||||
* 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 __PXFL_BSP_h
|
||||
#define __PXFL_BSP_h
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <bspopts.h>
|
||||
|
||||
#include <rtems.h>
|
||||
#include <clockdrv.h>
|
||||
#include <rtems/ttydrv.h>
|
||||
|
||||
/*
|
||||
* confdefs.h overrides for this BSP:
|
||||
* - number of termios serial ports (defaults to 1)
|
||||
* - Interrupt stack space is not minimum if defined.
|
||||
*/
|
||||
|
||||
/* #define CONFIGURE_NUMBER_OF_TERMIOS_PORTS 2 */
|
||||
#define CONFIGURE_INTERRUPT_STACK_MEMORY (4 * 1024)
|
||||
|
||||
/*
|
||||
* Define the time limits for RTEMS Test Suite test durations.
|
||||
* Long test and short test duration limits are provided. These
|
||||
* values are in seconds and need to be converted to ticks for the
|
||||
* application.
|
||||
*
|
||||
*/
|
||||
|
||||
#define MAX_LONG_TEST_DURATION 3 /* 3 seconds */
|
||||
#define MAX_SHORT_TEST_DURATION 3 /* 3 seconds */
|
||||
|
||||
/*
|
||||
* Define the interrupt mechanism for Time Test 27
|
||||
*/
|
||||
|
||||
#define MUST_WAIT_FOR_INTERRUPT 1
|
||||
|
||||
#define Install_tm27_vector( handler ) \
|
||||
( void ) set_vector( handler, HPPA_INTERRUPT_EXTERNAL_INTERVAL_TIMER, 1 );
|
||||
|
||||
#define Cause_tm27_intr() \
|
||||
set_itimer( get_itimer() + 20 )
|
||||
|
||||
#define Clear_tm27_intr() \
|
||||
set_eirr( 0x80000000 )
|
||||
|
||||
#define Lower_tm27_intr() \
|
||||
{ \
|
||||
register unsigned32 ignored; \
|
||||
HPPA_ASM_SSM( HPPA_PSW_I, ignored ); \
|
||||
}
|
||||
|
||||
/*
|
||||
* Simple spin delay in microsecond units for device drivers.
|
||||
* This is very dependent on the clock speed of the target.
|
||||
*/
|
||||
|
||||
extern void Clock_delay(rtems_unsigned32 microseconds);
|
||||
#define rtems_bsp_delay( microseconds ) \
|
||||
Clock_delay(microseconds);
|
||||
|
||||
/*
|
||||
* Todo: this should be put somewhere else
|
||||
*/
|
||||
|
||||
#undef CLOCK_DRIVER_TABLE_ENTRY
|
||||
#define CLOCK_DRIVER_TABLE_ENTRY { Clock_initialize, NULL, NULL, NULL, NULL, Clock_control }
|
||||
rtems_device_driver Clock_control(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void *pargp
|
||||
);
|
||||
|
||||
/*
|
||||
* We printf() to a buffer if multiprocessing, *or* if this is set.
|
||||
* ref: src/lib/libbsp/hppa/pxfl/iosupp/consupp.c
|
||||
*/
|
||||
|
||||
extern int use_print_buffer;
|
||||
|
||||
#define HPPA_INTERRUPT_EXTERNAL_MPCI HPPA_INTERRUPT_EXTERNAL_10
|
||||
|
||||
rtems_isr_entry set_vector(rtems_isr_entry, rtems_vector_number, int);
|
||||
|
||||
void bsp_start( void );
|
||||
void bsp_cleanup( void );
|
||||
|
||||
/* miscellaneous stuff assumed to exist */
|
||||
|
||||
extern rtems_configuration_table BSP_Configuration; /* owned by BSP */
|
||||
extern rtems_cpu_table Cpu_table; /* owned by BSP */
|
||||
|
||||
extern int cpu_number; /* from 0; cpu number in a multi cpu system */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
@@ -1,54 +0,0 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* definitions for the tty driver
|
||||
*/
|
||||
|
||||
#ifndef _RTEMS_TTYDRV_H
|
||||
#define _RTEMS_TTYDRV_H
|
||||
|
||||
rtems_device_driver
|
||||
tty_initialize(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void * arg
|
||||
);
|
||||
|
||||
rtems_device_driver
|
||||
tty_open(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void * arg
|
||||
);
|
||||
|
||||
rtems_device_driver
|
||||
tty_close(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void * arg
|
||||
);
|
||||
|
||||
rtems_device_driver
|
||||
tty_control(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void * arg
|
||||
);
|
||||
|
||||
rtems_device_driver
|
||||
tty_read(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void * arg
|
||||
);
|
||||
|
||||
rtems_device_driver
|
||||
tty_write(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void * arg
|
||||
);
|
||||
|
||||
#endif /* _RTEMS_TTYDRV_H */
|
||||
@@ -1,2 +0,0 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
@@ -1,31 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
|
||||
PGM = $(ARCH)/shmsupp.rel
|
||||
|
||||
C_FILES = addrconv.c cause_intr.c getcfg.c lock.c mpisr.c
|
||||
C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT))
|
||||
|
||||
OBJS = $(C_O_FILES)
|
||||
|
||||
include $(top_srcdir)/../../../../automake/compile.am
|
||||
include $(top_srcdir)/../../../../automake/lib.am
|
||||
|
||||
#
|
||||
# (OPTIONAL) Add local stuff here using +=
|
||||
#
|
||||
|
||||
$(PGM): $(OBJS)
|
||||
$(make-rel)
|
||||
|
||||
if HAS_MP
|
||||
all-local: $(ARCH) $(OBJS) $(PGM)
|
||||
endif
|
||||
|
||||
# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
|
||||
|
||||
EXTRA_DIST = addrconv.c cause_intr.c getcfg.c lock.c mpisr.c README
|
||||
|
||||
include $(top_srcdir)/../../../../automake/local.am
|
||||
@@ -1,9 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
This directory contains the SHM driver support files for the
|
||||
HP PA-RISC simulator for the 72000 processor.
|
||||
|
||||
WARNING: The interrupt support in this directory currently will
|
||||
only work in a homogeneous system.
|
||||
@@ -1,29 +0,0 @@
|
||||
/* Shm_Convert_address
|
||||
*
|
||||
* No address range conversion is required.
|
||||
*
|
||||
* Input parameters:
|
||||
* address - address to convert
|
||||
*
|
||||
* Output parameters:
|
||||
* returns - converted address
|
||||
*
|
||||
* 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 <bsp.h>
|
||||
#include <shm_driver.h>
|
||||
|
||||
void *Shm_Convert_address(
|
||||
void *address
|
||||
)
|
||||
{
|
||||
return ( address );
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
/* void Shm_Cause_interrupt_pxfl( node )
|
||||
*
|
||||
* This routine is the shared memory driver routine which
|
||||
* generates interrupts to other CPUs.
|
||||
*
|
||||
* Input parameters:
|
||||
* node - destination of this packet (0 = broadcast)
|
||||
*
|
||||
* Output parameters: NONE
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include <rtems.h>
|
||||
#include <rtems/error.h>
|
||||
|
||||
#include <shm_driver.h>
|
||||
|
||||
void Shm_Cause_interrupt_pxfl(
|
||||
rtems_unsigned32 node
|
||||
)
|
||||
{
|
||||
Shm_Interrupt_information *intr;
|
||||
rtems_unsigned32 *u32;
|
||||
rtems_unsigned32 value;
|
||||
|
||||
intr = &Shm_Interrupt_table[node];
|
||||
value = intr->value;
|
||||
|
||||
switch ( intr->length ) {
|
||||
case NO_INTERRUPT:
|
||||
break;
|
||||
|
||||
case LONG:
|
||||
u32 = (rtems_unsigned32 *)intr->address;
|
||||
HPPA_ASM_STWAS( value, 0, u32 );
|
||||
break;
|
||||
default:
|
||||
fprintf( stderr, "Shm_Cause_interrupt_pxfl: Unsupported length!!!\n" );
|
||||
}
|
||||
}
|
||||
@@ -1,88 +0,0 @@
|
||||
/* void Shm_Get_configuration( localnode, &shmcfg )
|
||||
*
|
||||
* This routine initializes, if necessary, and returns a pointer
|
||||
* to the Shared Memory Configuration Table for the HP PA-RISC
|
||||
* simulator.
|
||||
*
|
||||
* INPUT PARAMETERS:
|
||||
* localnode - local node number
|
||||
* shmcfg - address of pointer to SHM Config Table
|
||||
*
|
||||
* OUTPUT PARAMETERS:
|
||||
* *shmcfg - pointer to SHM Config Table
|
||||
*
|
||||
* NOTES: The MP interrupt used is the Runway bus' ability to directly
|
||||
* address the control registers of up to four CPUs and cause
|
||||
* interrupts on them.
|
||||
*
|
||||
* The following table illustrates the configuration limitations:
|
||||
*
|
||||
* BUS MAX
|
||||
* MODE ENDIAN NODES
|
||||
* ========= ====== =======
|
||||
* POLLED BIG 2+
|
||||
* INTERRUPT BIG 2..4 (on Runway)
|
||||
*
|
||||
* 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 <bsp.h>
|
||||
|
||||
#include <shm_driver.h>
|
||||
|
||||
#define INTERRUPT 0 /* can be interrupt or polling */
|
||||
#define POLLING 1
|
||||
|
||||
#define HPPA_RUNWAY_PROC_HPA_BASE ((void *) 0xFFFA0000)
|
||||
|
||||
/* given a processor number, where is its HPA? */
|
||||
#define HPPA_RUNWAY_HPA(cpu) \
|
||||
((rtems_unsigned32) (HPPA_RUNWAY_PROC_HPA_BASE + ((cpu) * 0x2000)))
|
||||
|
||||
#define HPPA_RUNWAY_REG_IO_EIR_OFFSET 0x000
|
||||
|
||||
shm_config_table BSP_shm_cfgtbl;
|
||||
|
||||
extern void Shm_Cause_interrupt_pxfl( rtems_unsigned32 node );
|
||||
|
||||
void Shm_Get_configuration(
|
||||
rtems_unsigned32 localnode,
|
||||
shm_config_table **shmcfg
|
||||
)
|
||||
{
|
||||
BSP_shm_cfgtbl.base = (vol_u32 *) 0x44000000;
|
||||
BSP_shm_cfgtbl.length = 16 * KILOBYTE;
|
||||
BSP_shm_cfgtbl.format = SHM_BIG;
|
||||
|
||||
BSP_shm_cfgtbl.cause_intr = Shm_Cause_interrupt_pxfl;
|
||||
|
||||
#ifdef NEUTRAL_BIG
|
||||
BSP_shm_cfgtbl.convert = NULL_CONVERT;
|
||||
#else
|
||||
BSP_shm_cfgtbl.convert = CPU_swap_u32;
|
||||
#endif
|
||||
|
||||
#if ( POLLING == 1 )
|
||||
BSP_shm_cfgtbl.poll_intr = POLLED_MODE;
|
||||
BSP_shm_cfgtbl.Intr.address = NO_INTERRUPT;
|
||||
BSP_shm_cfgtbl.Intr.value = NO_INTERRUPT;
|
||||
BSP_shm_cfgtbl.Intr.length = NO_INTERRUPT;
|
||||
#else
|
||||
BSP_shm_cfgtbl.poll_intr = INTR_MODE;
|
||||
BSP_shm_cfgtbl.Intr.address =
|
||||
(vol_u32 *) (HPPA_RUNWAY_HPA( localnode - 1) +
|
||||
HPPA_RUNWAY_REG_IO_EIR_OFFSET);
|
||||
BSP_shm_cfgtbl.Intr.value = HPPA_INTERRUPT_EXTERNAL_MPCI;
|
||||
BSP_shm_cfgtbl.Intr.length = LONG;
|
||||
#endif
|
||||
|
||||
*shmcfg = &BSP_shm_cfgtbl;
|
||||
}
|
||||
|
||||
@@ -1,74 +0,0 @@
|
||||
/* Shared Memory Lock Routines
|
||||
*
|
||||
* This shared memory locked queue support routine need to be
|
||||
* able to lock the specified locked queue. Interrupts are
|
||||
* disabled while the queue is locked to prevent preemption
|
||||
* and deadlock when two tasks poll for the same lock.
|
||||
* previous level.
|
||||
*
|
||||
* 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 <bsp.h>
|
||||
#include <shm_driver.h>
|
||||
|
||||
/*
|
||||
* Shm_Initialize_lock
|
||||
*
|
||||
* Initialize the lock for the specified locked queue.
|
||||
*/
|
||||
|
||||
void Shm_Initialize_lock(
|
||||
Shm_Locked_queue_Control *lq_cb
|
||||
)
|
||||
{
|
||||
lq_cb->lock = LQ_UNLOCKED;
|
||||
}
|
||||
|
||||
/* Shm_Lock( &lq_cb )
|
||||
*
|
||||
* This shared memory locked queue support routine locks the
|
||||
* specified locked queue. It disables interrupts to prevent
|
||||
* a deadlock condition.
|
||||
*/
|
||||
|
||||
void Shm_Lock(
|
||||
Shm_Locked_queue_Control *lq_cb
|
||||
)
|
||||
{
|
||||
rtems_unsigned32 isr_level;
|
||||
vol_u32 *lockptr = &lq_cb->lock;
|
||||
rtems_unsigned32 lock_value;
|
||||
|
||||
rtems_interrupt_disable( isr_level );
|
||||
|
||||
Shm_isrstat = isr_level;
|
||||
|
||||
do {
|
||||
HPPA_ASM_LDCWS( 0, 0, lockptr, lock_value );
|
||||
} while (lock_value == SHM_LOCK_VALUE);
|
||||
}
|
||||
|
||||
/*
|
||||
* Shm_Unlock
|
||||
*
|
||||
* Unlock the lock for the specified locked queue.
|
||||
*/
|
||||
|
||||
void Shm_Unlock(
|
||||
Shm_Locked_queue_Control *lq_cb
|
||||
)
|
||||
{
|
||||
rtems_unsigned32 isr_level;
|
||||
|
||||
lq_cb->lock = SHM_UNLOCK_VALUE;
|
||||
isr_level = Shm_isrstat;
|
||||
rtems_interrupt_enable( isr_level );
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
/* Shm_setvec
|
||||
*
|
||||
* This driver routine sets the SHM interrupt vector to point to the
|
||||
* driver's SHM interrupt service routine.
|
||||
*
|
||||
* Input parameters: NONE
|
||||
*
|
||||
* Output parameters: NONE
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#include <bsp.h>
|
||||
#include <shm_driver.h>
|
||||
|
||||
void Shm_setvec( void )
|
||||
{
|
||||
set_vector( Shm_isr, HPPA_INTERRUPT_EXTERNAL_MPCI, 1 );
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
@@ -1,30 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
S_FILES = start.S
|
||||
S_O_FILES = $(S_FILES:%.S=$(ARCH)/%.$(OBJEXT))
|
||||
|
||||
OBJS = $(S_O_FILES)
|
||||
|
||||
include $(top_srcdir)/../../../../automake/compile.am
|
||||
include $(top_srcdir)/../../../../automake/lib.am
|
||||
|
||||
#
|
||||
# (OPTIONAL) Add local stuff here using +=
|
||||
#
|
||||
|
||||
install-data-local: $(PROJECT_RELEASE)/lib/start$(LIB_VARIANT).$(OBJEXT)
|
||||
@$(mkinstalldirs) $(DESTDIR)$(bsplibdir)
|
||||
$(INSTALL_DATA) $< $(DESTDIR)$(bsplibdir)
|
||||
|
||||
$(PROJECT_RELEASE)/lib/start$(LIB_VARIANT).$(OBJEXT): $(ARCH)/start.$(OBJEXT)
|
||||
$(INSTALL_DATA) $< $@
|
||||
|
||||
TMPINSTALL_FILES += $(PROJECT_RELEASE)/lib/start$(LIB_VARIANT).$(OBJEXT)
|
||||
|
||||
all-local: $(ARCH) $(OBJS) $(TMPINSTALL_FILES)
|
||||
|
||||
EXTRA_DIST = start.S
|
||||
|
||||
include $(top_srcdir)/../../../../automake/local.am
|
||||
@@ -1,173 +0,0 @@
|
||||
/*
|
||||
* crt0.S -- startup file for hppa on RTEMS
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
.COPYRIGHT "crt0.S for hppa"
|
||||
|
||||
.DATA
|
||||
|
||||
_progname .STRINGZ "simhppa"
|
||||
_crt0_argv .WORD _progname, 0
|
||||
|
||||
/*
|
||||
* Set up the standard spaces (sections) These definitions come
|
||||
* from /lib/pcc_prefix.s.
|
||||
*/
|
||||
.TEXT
|
||||
|
||||
/*
|
||||
* stuff we need that is defined elsewhere.
|
||||
*/
|
||||
.IMPORT boot_card, CODE
|
||||
.IMPORT _bss_start, DATA
|
||||
.IMPORT _bss_end, DATA
|
||||
.IMPORT environ, DATA
|
||||
|
||||
/*
|
||||
* start -- set things up so the application will run.
|
||||
*
|
||||
*/
|
||||
.PROC
|
||||
.CALLINFO SAVE_SP, FRAME=48
|
||||
.EXPORT $START$,ENTRY
|
||||
.EXPORT start,ENTRY
|
||||
$START$
|
||||
start:
|
||||
|
||||
/*
|
||||
* Get a stack
|
||||
*/
|
||||
|
||||
ldil L%crt_stack+48,%r30
|
||||
ldo R%crt_stack+48(%r30),%r30
|
||||
|
||||
/*
|
||||
* we need to set %r27 (global data pointer) here
|
||||
*/
|
||||
|
||||
ldil L%$global$,%r27
|
||||
ldo R%$global$(%r27),%r27
|
||||
|
||||
/*
|
||||
* zerobss -- zero out the bss section
|
||||
* XXX We don't do this since simulator and boot rom will do this for us.
|
||||
*/
|
||||
#if 0
|
||||
; load the start of bss
|
||||
ldil L%_bss_start,%r4
|
||||
ldo R%_bss_start(%r4),%r4
|
||||
|
||||
; load the end of bss
|
||||
ldil L%_bss_end,%r5
|
||||
ldo R%_bss_end(%r5),%r5
|
||||
|
||||
|
||||
bssloop
|
||||
addi -1,%r5,%r5 ; decrement _bss_end
|
||||
stb %r0,0(0,%r5) ; we do this by bytes for now even
|
||||
; though it is slower, it is safer
|
||||
combf,= %r4,%r5, bssloop
|
||||
nop
|
||||
#endif
|
||||
|
||||
ldi 1,%ret0
|
||||
|
||||
/*
|
||||
* Call the "boot_card" routine from the application to get it going.
|
||||
* We call it as boot_card(1, argv, 0)
|
||||
*/
|
||||
|
||||
copy %r0, %r24
|
||||
|
||||
ldil L%_crt0_argv,%r25
|
||||
ldo R%_crt0_argv(%r25),%r25
|
||||
|
||||
bl boot_card,%r2
|
||||
ldo 1(%r0), %r26
|
||||
|
||||
.PROCEND
|
||||
/*
|
||||
* _exit -- Exit from the application. Normally we cause a user trap
|
||||
* to return to the ROM monitor for another run, but with
|
||||
* this monitor we can not. Still, "C" wants this symbol, it
|
||||
* should be here. Jumping to 0xF0000004 jumps back into the
|
||||
* firmware, while writing a 5 to 0xFFFE0030 causes a reset.
|
||||
*/
|
||||
_exit_fallthru
|
||||
.PROC
|
||||
.CALLINFO
|
||||
.ENTRY
|
||||
|
||||
;; This just causes a breakpoint exception
|
||||
break 0x0,0x0
|
||||
bv,n (%rp)
|
||||
nop
|
||||
.EXIT
|
||||
.PROCEND
|
||||
|
||||
/*
|
||||
* _sr4export -- support for called functions. (mostly for GDB)
|
||||
*/
|
||||
.EXPORT _sr4export, ENTRY
|
||||
_sr4export:
|
||||
.PROC
|
||||
.CALLINFO
|
||||
.ENTRY
|
||||
|
||||
ble 0(%sr4,%r22)
|
||||
copy %r31,%rp
|
||||
ldw -18(%sr0,%sp),%rp
|
||||
ldsid (%sr0,%rp),%r1
|
||||
mtsp %r1,%sr0
|
||||
be,n 0(%sr0,%rp)
|
||||
nop
|
||||
.EXIT
|
||||
.PROCEND
|
||||
|
||||
|
||||
#if 0
|
||||
.subspa $UNWIND_START$,QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=56
|
||||
.export $UNWIND_START
|
||||
$UNWIND_START
|
||||
.subspa $UNWIND$,QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=64
|
||||
.subspa $UNWIND_END$,QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=72
|
||||
.export $UNWIND_END
|
||||
$UNWIND_END
|
||||
.subspa $RECOVER_START$,QUAD=0,ALIGN=4,ACCESS=0x2c,SORT=73
|
||||
.export $RECOVER_START
|
||||
$RECOVER_START
|
||||
.subspa $RECOVER$,QUAD=0,ALIGN=4,ACCESS=0x2c,SORT=80
|
||||
.subspa $RECOVER_END$,QUAD=0,ALIGN=4,ACCESS=0x2c,SORT=88
|
||||
.export $RECOVER_END
|
||||
$RECOVER_END
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Here we set up the standard date sub spaces.
|
||||
*
|
||||
* Set up some room for a stack. We just grab a chunk of memory.
|
||||
* We also setup some space for the global variable space, which
|
||||
* must be done using the reserved name "$global$" so "C" code
|
||||
* can find it. The stack grows towards the higher addresses.
|
||||
*/
|
||||
|
||||
#if 0
|
||||
.subspa $DATA$,QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=16
|
||||
.subspa $SHORTDATA$,QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=24
|
||||
.subspa $GLOBAL$,QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=40
|
||||
.export $global$
|
||||
$global$
|
||||
.subspa $SHORTBSS$,QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=80,ZERO
|
||||
.subspa $BSS$,QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=82,ZERO
|
||||
|
||||
.subspa $STACK$,QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=88,ZERO
|
||||
#endif
|
||||
|
||||
.export crt_stack
|
||||
crt_stack
|
||||
.comm 0x1000
|
||||
|
||||
.end
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
@@ -1,41 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
|
||||
VPATH = @srcdir@:@srcdir@/../../../shared
|
||||
|
||||
PGM = $(ARCH)/startup.rel
|
||||
|
||||
C_FILES = bspclean.c bsplibc.c bsppost.c bspstart.c bootcard.c main.c sbrk.c \
|
||||
setvec.c gnatinstallhandler.c
|
||||
C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT))
|
||||
|
||||
OBJS = $(C_O_FILES)
|
||||
|
||||
include $(top_srcdir)/../../../../automake/compile.am
|
||||
include $(top_srcdir)/../../../../automake/lib.am
|
||||
|
||||
#
|
||||
# (OPTIONAL) Add local stuff here using +=
|
||||
#
|
||||
|
||||
$(PGM): $(OBJS)
|
||||
$(make-rel)
|
||||
|
||||
# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
|
||||
|
||||
bsplib_DATA = linkcmds
|
||||
|
||||
$(PROJECT_RELEASE)/lib/linkcmds: linkcmds
|
||||
$(INSTALL_DATA) $< $@
|
||||
|
||||
TMPINSTALL_FILES += $(PROJECT_RELEASE)/lib/linkcmds
|
||||
|
||||
all-local: $(ARCH) $(OBJS) $(PGM) $(TMPINSTALL_FILES)
|
||||
|
||||
.PRECIOUS: $(PGM)
|
||||
|
||||
EXTRA_DIST = bspclean.c bspstart.c setvec.c
|
||||
|
||||
include $(top_srcdir)/../../../../automake/local.am
|
||||
@@ -1,35 +0,0 @@
|
||||
/* bsp_cleanup()
|
||||
*
|
||||
* This routine normally is part of start.s and returns
|
||||
* control to a monitor but on the HP PA-RISC simulator
|
||||
* we do that directly from main.c.
|
||||
*
|
||||
* INPUT: NONE
|
||||
*
|
||||
* OUTPUT: NONE
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#include <bsp.h>
|
||||
|
||||
/*
|
||||
* The app has "exited" (called rtems_shutdown_executive)
|
||||
*/
|
||||
|
||||
void bsp_cleanup( void )
|
||||
{
|
||||
/*
|
||||
* Invoke any fatal error extension and "halt"
|
||||
* By definition, rtems_fatal_error_occurred does not return.
|
||||
*/
|
||||
|
||||
rtems_fatal_error_occurred(0);
|
||||
}
|
||||
@@ -1,241 +0,0 @@
|
||||
/*
|
||||
* This routine starts the application. It includes application,
|
||||
* board, and monitor specific initialization and configuration.
|
||||
* The generic CPU dependent initialization has been performed
|
||||
* before this routine is invoked.
|
||||
*
|
||||
* 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 <string.h>
|
||||
|
||||
#include <bsp.h>
|
||||
#include <rtems/libio.h>
|
||||
#include <rtems/libcsupport.h>
|
||||
|
||||
extern rtems_configuration_table Configuration;
|
||||
|
||||
rtems_configuration_table BSP_Configuration;
|
||||
rtems_cpu_table Cpu_table;
|
||||
|
||||
int cpu_number;
|
||||
|
||||
#define WORKSPACE_SIZE (1024 * 1024)
|
||||
rtems_unsigned8 MY_WORK_SPACE[ WORKSPACE_SIZE ];
|
||||
|
||||
/*
|
||||
* Amount to increment itimer by each pass
|
||||
* It is a variable instead of a #define to allow the 'looptest'
|
||||
* script to bump it without recompiling rtems
|
||||
*/
|
||||
|
||||
rtems_unsigned32 CPU_HPPA_CLICKS_PER_TICK;
|
||||
|
||||
#if SIMHPPA_FAST_IDLE
|
||||
|
||||
/*
|
||||
* Many of the tests are very slow on the simulator because they have
|
||||
* have 5 second delays hardwired in.
|
||||
* Try to speed those tests up by speeding up the clock when in idle
|
||||
*/
|
||||
|
||||
rtems_extension fast_idle_switch_hook(
|
||||
rtems_tcb *current_task,
|
||||
rtems_tcb *heir_task
|
||||
)
|
||||
{
|
||||
static rtems_unsigned32 normal_clock = ~0;
|
||||
static rtems_unsigned32 fast_clock;
|
||||
|
||||
/* init our params on first call */
|
||||
if (normal_clock == (rtems_unsigned32) ~0)
|
||||
{
|
||||
normal_clock = CPU_HPPA_CLICKS_PER_TICK;
|
||||
fast_clock = CPU_HPPA_CLICKS_PER_TICK / 0x100;
|
||||
if (fast_clock == 0) /* who? me? pathological? never! */
|
||||
fast_clock++;
|
||||
}
|
||||
|
||||
/*
|
||||
* Checking for 'name' field of 'IDLE' is not the best/safest,
|
||||
* but its the best we could think of at the moment.
|
||||
*/
|
||||
|
||||
if (heir_task == _Thread_Idle)
|
||||
CPU_HPPA_CLICKS_PER_TICK = fast_clock;
|
||||
else if (current_task == _Thread_Idle)
|
||||
CPU_HPPA_CLICKS_PER_TICK = normal_clock;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Use the shared implementations of the following routines
|
||||
*/
|
||||
|
||||
void bsp_postdriver_hook(void);
|
||||
void bsp_libc_init( void *, unsigned32, int );
|
||||
|
||||
/*
|
||||
* Function: bsp_pretasking_hook
|
||||
* Created: 95/03/10
|
||||
*
|
||||
* Description:
|
||||
* BSP pretasking hook. Called just before drivers are initialized.
|
||||
* Used to setup libc and install any BSP extensions.
|
||||
*
|
||||
* Notes:
|
||||
* Must not use libc (to do io) from here, since drivers are
|
||||
* not yet initialized.
|
||||
*/
|
||||
|
||||
void bsp_pretasking_hook(void)
|
||||
{
|
||||
extern int end;
|
||||
rtems_unsigned32 heap_start;
|
||||
|
||||
heap_start = (rtems_unsigned32) &end;
|
||||
if (heap_start & (CPU_ALIGNMENT-1))
|
||||
heap_start = (heap_start + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1);
|
||||
|
||||
bsp_libc_init((void *) heap_start, 64 * 1024, 0);
|
||||
|
||||
/*
|
||||
* on MP systems, always use the print buffer
|
||||
* instead of the (broken) system calls
|
||||
*/
|
||||
|
||||
if (BSP_Configuration.User_multiprocessing_table)
|
||||
use_print_buffer = 1;
|
||||
|
||||
#ifdef SIMHPPA_ROM
|
||||
use_print_buffer = 1;
|
||||
#endif
|
||||
|
||||
#if SIMHPPA_FAST_IDLE
|
||||
/*
|
||||
* Install the fast idle task switch extension
|
||||
*
|
||||
* on MP systems, might now want to do this; it confuses at least
|
||||
* one test (mp06)
|
||||
*/
|
||||
|
||||
#if 0
|
||||
if (BSP_Configuration.User_multiprocessing_table == 0)
|
||||
#endif
|
||||
{
|
||||
rtems_extensions_table fast_idle_extension;
|
||||
rtems_id extension_id;
|
||||
rtems_status_code rc;
|
||||
|
||||
memset(&fast_idle_extension, 0, sizeof(fast_idle_extension));
|
||||
|
||||
fast_idle_extension.thread_switch = fast_idle_switch_hook;
|
||||
|
||||
rc = rtems_extension_create(rtems_build_name('F', 'D', 'L', 'E'),
|
||||
&fast_idle_extension, &extension_id);
|
||||
if (rc != RTEMS_SUCCESSFUL)
|
||||
rtems_fatal_error_occurred(rc);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void bsp_start(void)
|
||||
{
|
||||
/*
|
||||
* Set cpu_number to accurately reflect our cpu number
|
||||
*/
|
||||
|
||||
#ifdef hppa7200
|
||||
/*
|
||||
* Use HPPA_DR0 if supported
|
||||
*/
|
||||
{
|
||||
int dr0;
|
||||
HPPA_ASM_MFCPU(HPPA_DR0, dr0);
|
||||
cpu_number = (dr0 >> 4) & 0x7;
|
||||
}
|
||||
#else
|
||||
if (Configuration.User_multiprocessing_table)
|
||||
cpu_number = Configuration.User_multiprocessing_table->node - 1;
|
||||
else
|
||||
cpu_number = 0;
|
||||
#endif
|
||||
|
||||
BSP_Configuration.work_space_start = (void *)MY_WORK_SPACE;
|
||||
if (BSP_Configuration.work_space_size)
|
||||
BSP_Configuration.work_space_size = WORKSPACE_SIZE;
|
||||
|
||||
/*
|
||||
* Set up our hooks
|
||||
* Make sure libc_init is done before drivers init'd so that
|
||||
* they can use atexit()
|
||||
*/
|
||||
|
||||
Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */
|
||||
Cpu_table.postdriver_hook = bsp_postdriver_hook; /* register drivers */
|
||||
|
||||
/*
|
||||
* Don't zero out the workspace. The simulator did it for us.
|
||||
*/
|
||||
|
||||
Cpu_table.do_zero_of_workspace = FALSE;
|
||||
Cpu_table.interrupt_stack_size = CONFIGURE_INTERRUPT_STACK_MEMORY;
|
||||
|
||||
/*
|
||||
* Set this artificially low for the simulator
|
||||
*/
|
||||
|
||||
Cpu_table.itimer_clicks_per_microsecond = 1;
|
||||
|
||||
#if 0
|
||||
/*
|
||||
* Commented by DIVISION INC. External interrupt
|
||||
* processing is now divorced from RTEMS for HPPA.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Determine the external interrupt processing order
|
||||
* the external interrupt handler walks thru this table, in
|
||||
* order checking for posted interrupts.
|
||||
*/
|
||||
|
||||
Cpu_table.external_interrupts = 0;
|
||||
|
||||
Cpu_table.external_interrupt[ Cpu_table.external_interrupts ] =
|
||||
HPPA_INTERRUPT_EXTERNAL_INTERVAL_TIMER;
|
||||
Cpu_table.external_interrupts++;
|
||||
|
||||
if ( Configuration.User_multiprocessing_table ) {
|
||||
Cpu_table.external_interrupt[ Cpu_table.external_interrupts ] =
|
||||
HPPA_INTERRUPT_EXTERNAL_10;
|
||||
Cpu_table.external_interrupts++;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if SIMHPPA_FAST_IDLE
|
||||
/*
|
||||
* Add 1 extension for fast idle
|
||||
*/
|
||||
|
||||
BSP_Configuration.maximum_extensions++;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Set the "clicks per tick" for the simulator
|
||||
* used by libcpu/hppa/clock/clock.c to schedule interrupts
|
||||
*
|
||||
* Set it only if 0 to allow for simulator setting it via script
|
||||
* on test startup.
|
||||
*/
|
||||
|
||||
if (CPU_HPPA_CLICKS_PER_TICK == 0)
|
||||
CPU_HPPA_CLICKS_PER_TICK = 0x4000;
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
/* Script for -n: mix text and data on same page */
|
||||
OUTPUT_FORMAT("elf32-hppa")
|
||||
OUTPUT_ARCH(hppa)
|
||||
ENTRY("$START$")
|
||||
SEARCH_DIR("/opt/rtems/hppa1.1-rtems/lib");
|
||||
SECTIONS
|
||||
{
|
||||
.text 0x1000 +0x1000:
|
||||
{
|
||||
__text_start = .;
|
||||
CREATE_OBJECT_SYMBOLS
|
||||
*(.PARISC.stubs)
|
||||
*(.text)
|
||||
|
||||
/*
|
||||
* Special FreeBSD sysctl sections.
|
||||
*/
|
||||
. = ALIGN (16);
|
||||
__start_set_sysctl_set = .;
|
||||
*(set_sysctl_*);
|
||||
__stop_set_sysctl_set = ABSOLUTE(.);
|
||||
*(set_domain_*);
|
||||
*(set_pseudo_*);
|
||||
|
||||
etext = .;
|
||||
_etext = .;
|
||||
}
|
||||
. = 0x40000000;
|
||||
.data :
|
||||
{
|
||||
. = . + 0x1000 ;
|
||||
__data_start = .;
|
||||
*(.data)
|
||||
CONSTRUCTORS
|
||||
edata = .;
|
||||
_edata = .;
|
||||
}
|
||||
. = 0x40000000 + SIZEOF(.data);
|
||||
.bss :
|
||||
{
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
end = . ;
|
||||
_end = . ;
|
||||
}
|
||||
}
|
||||
@@ -1,65 +0,0 @@
|
||||
/* set_vector
|
||||
*
|
||||
* This routine installs an interrupt vector on the HP PA-RISC simulator.
|
||||
*
|
||||
* INPUT:
|
||||
* handler - interrupt handler entry point
|
||||
* vector - vector number
|
||||
* type - 0 indicates raw hardware connect
|
||||
* 1 indicates RTEMS interrupt connect
|
||||
*
|
||||
* NOTE 'type' is ignored on hppa; all interrupts are owned by RTEMS
|
||||
*
|
||||
* RETURNS:
|
||||
* address of previous interrupt handler
|
||||
*
|
||||
* 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 <bsp.h>
|
||||
|
||||
/*
|
||||
* Install an interrupt handler in the right place
|
||||
* given its vector number from cpu/hppa.h
|
||||
* There are 2 places an interrupt can be installed
|
||||
* _ISR_Vector_table
|
||||
* bsp interrupt XXX: nyi
|
||||
*
|
||||
* We decide which based on the vector number
|
||||
*/
|
||||
|
||||
rtems_isr_entry
|
||||
set_vector( /* returns old vector */
|
||||
rtems_isr_entry handler, /* isr routine */
|
||||
rtems_vector_number vector, /* vector number */
|
||||
int type /* RTEMS or RAW intr */
|
||||
)
|
||||
{
|
||||
rtems_isr_entry previous_isr;
|
||||
|
||||
/* is it an on chip interrupt? */
|
||||
/* XXX this should say CPU_INTERRUPT_NUMBER_OF_VECTORS */
|
||||
if (vector < HPPA_INTERRUPT_MAX)
|
||||
{
|
||||
rtems_interrupt_catch(handler, vector, &previous_isr);
|
||||
}
|
||||
#if 0 /* XXX */
|
||||
else if ((vector >= HPPA_INTERRUPT_BSP_BASE) &&
|
||||
(vector < (HPPA_INTERRUPT_BSP_BASE + HPPA_BSP_INTERRUPTS)))
|
||||
{
|
||||
pxfl_interrupt_install(handler,
|
||||
vector - HPPA_INTERRUPT_BSP_BASE,
|
||||
(rtems_isr_entry *) &previous_isr);
|
||||
}
|
||||
#endif
|
||||
|
||||
return previous_isr;
|
||||
}
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
#
|
||||
# Timing Test Suite Results for the PA-RISC Simulator.
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
Times are not available for the PA-RISC Simulator.
|
||||
@@ -1,18 +0,0 @@
|
||||
aclocal.m4
|
||||
autom4te*.cache
|
||||
config.cache
|
||||
config.guess
|
||||
config.h
|
||||
config.h.in
|
||||
config.log
|
||||
config.status
|
||||
config.sub
|
||||
configure
|
||||
depcomp
|
||||
install-sh
|
||||
Makefile
|
||||
Makefile.in
|
||||
missing
|
||||
mkinstalldirs
|
||||
stamp-h
|
||||
stamp-h.in
|
||||
@@ -1,71 +0,0 @@
|
||||
2003-08-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Reflect having moved aclocal/.
|
||||
|
||||
2003-08-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Reflect having moved automake/.
|
||||
|
||||
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Use rtems-bugs@rtems.com as bug report email address.
|
||||
|
||||
2003-03-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Remove AC_CONFIG_AUX_DIR.
|
||||
|
||||
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: AM_INIT_AUTOMAKE([1.7.2]).
|
||||
|
||||
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: AC_PREREQ(2.57).
|
||||
|
||||
2002-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* .cvsignore: Reformat.
|
||||
Add autom4te*cache.
|
||||
Remove autom4te.cache.
|
||||
|
||||
2002-04-01 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Remove AC_EXEEXT (obsolete).
|
||||
|
||||
2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac:
|
||||
AC_INIT(package,_RTEMS_VERSION,_RTEMS_BUGS).
|
||||
AM_INIT_AUTOMAKE([no-define foreign 1.6]).
|
||||
* Makefile.am: Remove AUTOMAKE_OPTIONS.
|
||||
|
||||
2001-10-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* .cvsignore: Add autom4te.cache for autoconf > 2.52.
|
||||
* configure.in: Remove.
|
||||
* configure.ac: New file, generated from configure.in by autoupdate.
|
||||
|
||||
2001-02-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* .cvsignore: Add stamp-h
|
||||
|
||||
2001-01-24 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* config.h.in: Automatically generated. Remove from CVS.
|
||||
|
||||
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
|
||||
|
||||
2000-11-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Switch to ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal.
|
||||
|
||||
2000-10-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: ACLOCAL_AMFLAGS= -I $(RTEMS_TOPdir)/macros.
|
||||
Switch to GNU canonicalization.
|
||||
|
||||
2000-08-10 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* ChangeLog: New file.
|
||||
@@ -1,16 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
ACLOCAL_AMFLAGS = -I ../../../../../aclocal
|
||||
|
||||
noinst_PROGRAMS = print_dump
|
||||
|
||||
print_dump_SOURCES = print_dump.c
|
||||
|
||||
## HACK: install to build-tree
|
||||
install-exec-local: $(PROGRAMS)
|
||||
$(mkinstalldirs) $(PROJECT_ROOT)/simhppa/bin
|
||||
$(INSTALL_PROGRAM) print_dump $(PROJECT_ROOT)/simhppa/bin
|
||||
|
||||
include $(top_srcdir)/../../../../../automake/local.am
|
||||
@@ -1,25 +0,0 @@
|
||||
## Process this file with autoconf to produce a configure script.
|
||||
##
|
||||
## $Id$
|
||||
|
||||
AC_PREREQ(2.57)
|
||||
AC_INIT([rtems-c-src-lib-libbsp-hppa1.1-simhppa-tools],[_RTEMS_VERSION],[rtems-bugs@rtems.com])
|
||||
AC_CONFIG_SRCDIR([print_dump.c])
|
||||
RTEMS_TOP(../../../../../../..)
|
||||
|
||||
RTEMS_CANONICAL_TARGET_CPU
|
||||
|
||||
AM_INIT_AUTOMAKE([no-define foreign 1.7.2])
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
AC_PROG_CC
|
||||
|
||||
AC_CHECK_FUNCS(strerror)
|
||||
AM_CONFIG_HEADER(config.h)
|
||||
|
||||
RTEMS_PROJECT_ROOT
|
||||
RTEMS_TOOLPATHS
|
||||
|
||||
# Explicitly list all Makefiles here
|
||||
AC_CONFIG_FILES([Makefile])
|
||||
AC_OUTPUT
|
||||
@@ -1,338 +0,0 @@
|
||||
/*
|
||||
* print_dump
|
||||
*
|
||||
* COPYRIGHT (c) 1994 by Division Incorporated
|
||||
*
|
||||
* 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$
|
||||
*/
|
||||
|
||||
#define GETOPTARGS "v"
|
||||
|
||||
char *USAGE = "\
|
||||
usage: print_dump [ -v ] \n\
|
||||
-v -- verbose\n\
|
||||
Reads HP simulator 'memdump' output of 'print_buffer' structure
|
||||
on stdin. Dumps it out in vanilla ASCII.
|
||||
";
|
||||
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <ctype.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <memory.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#ifndef VMS
|
||||
#ifndef HAVE_STRERROR
|
||||
#if defined(__linux__) && (__GLIBC__ < 2)
|
||||
extern char *sys_errlist[];
|
||||
#endif
|
||||
|
||||
#define strerror( _err ) \
|
||||
((_err) < sys_nerr) ? sys_errlist [(_err)] : "unknown error"
|
||||
|
||||
#else /* HAVE_STRERROR */
|
||||
char *strerror ();
|
||||
#endif
|
||||
#else /* VMS */
|
||||
char *strerror (int,...);
|
||||
#endif
|
||||
|
||||
#define Failed(x) (((int) (x)) == -1)
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
#define STREQ(a,b) (strcmp(a,b) == 0)
|
||||
#define NUMELEMS(arr) (sizeof(arr) / sizeof(arr[0]))
|
||||
|
||||
/*
|
||||
* Definitions for unsigned "ints"; especially for use in data structures
|
||||
* that will be shared among (potentially) different cpu's (we punt on
|
||||
* byte ordering problems tho)
|
||||
*/
|
||||
|
||||
typedef unsigned char u8;
|
||||
typedef unsigned short u16;
|
||||
typedef unsigned int u32;
|
||||
|
||||
typedef union uval {
|
||||
u8 uv_chars[4];
|
||||
u16 uv_words[2];
|
||||
u32 uv_long;
|
||||
void *uv_ptr[sizeof(long) / sizeof(void *)];
|
||||
} uval_t;
|
||||
|
||||
|
||||
/*
|
||||
* vars controlled by command line options
|
||||
*/
|
||||
|
||||
int verbose = FALSE; /* be verbose */
|
||||
|
||||
extern char *optarg; /* getopt(3) control vars */
|
||||
extern int optind, opterr;
|
||||
extern int errno;
|
||||
|
||||
char *progname; /* for error() */
|
||||
|
||||
void error(int errn, ...);
|
||||
|
||||
#define ERR_ERRNO (1<<((sizeof(int) * 8) - 2)) /* hi bit; use 'errno' */
|
||||
#define ERR_FATAL (ERR_ERRNO / 2) /* error is fatal; no return */
|
||||
#define ERR_ABORT (ERR_ERRNO / 4) /* error is fatal; abort */
|
||||
#define ERR_MASK (ERR_ERRNO | ERR_FATAL | ERR_ABORT) /* all */
|
||||
|
||||
int process(void);
|
||||
void prchar(unsigned int ch);
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char **argv, char **env)
|
||||
{
|
||||
register int c;
|
||||
int showusage = FALSE; /* usage error? */
|
||||
|
||||
/*
|
||||
* figure out invocation leaf-name
|
||||
*/
|
||||
|
||||
if ((progname = strrchr(argv[0], '/')) == (char *) NULL)
|
||||
progname = argv[0];
|
||||
else
|
||||
progname++;
|
||||
|
||||
argv[0] = progname; /* for getopt err reporting */
|
||||
|
||||
/*
|
||||
* Check options and arguments.
|
||||
*/
|
||||
|
||||
opterr = 0; /* we'll report all errors */
|
||||
while ((c = getopt(argc, argv, GETOPTARGS)) != EOF)
|
||||
switch (c)
|
||||
{
|
||||
case 'v': /* toggle verbose */
|
||||
verbose = ! verbose;
|
||||
break;
|
||||
|
||||
case '?':
|
||||
showusage = TRUE;
|
||||
}
|
||||
|
||||
if (showusage)
|
||||
{
|
||||
(void) fprintf(stderr, "%s", USAGE);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
return process();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* process(arg)
|
||||
*
|
||||
* Input looks like this
|
||||
*
|
||||
* Starting address: 00000001.480035a0
|
||||
* -----------------------------------
|
||||
|
||||
+0000 / 0d0a0d0a 2a2a2a20 53454d20 54455354 202d2d20 4e4f4445 2032202a 2a2a0d0a
|
||||
+0020 / 73703a20 30783433 30303030 31300d0a 30783438 30613161 38383a20 676f7420
|
||||
....
|
||||
+0b40 / xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
|
||||
|
||||
*
|
||||
* The 'xxxxxxxxx' shows up if the page has not been allocated.
|
||||
*/
|
||||
|
||||
int
|
||||
process(void)
|
||||
{
|
||||
uval_t b[8];
|
||||
u32 ignore;
|
||||
char *p;
|
||||
int i;
|
||||
int failed_once;
|
||||
|
||||
char line[1024];
|
||||
|
||||
#define PRINT_BUFFER_SIZE (16 * 1024)
|
||||
struct {
|
||||
int index;
|
||||
int size;
|
||||
u8 buffer[PRINT_BUFFER_SIZE];
|
||||
} print_buffer;
|
||||
|
||||
/* we stuff the data into print_buffer using memcpy() */
|
||||
p = (char *) &print_buffer;
|
||||
|
||||
failed_once = 0;
|
||||
|
||||
while (gets(line))
|
||||
{
|
||||
char *cp;
|
||||
|
||||
/* hack; deal with the 'xxxxxxxx' problem noted above */
|
||||
for (cp=line; *cp; cp++)
|
||||
if (*cp == 'x')
|
||||
*cp = '0';
|
||||
|
||||
if (*line != '+')
|
||||
continue;
|
||||
if (sscanf(line, "+%x / %x %x %x %x %x %x %x %x\n",
|
||||
&ignore,
|
||||
&b[0].uv_long,
|
||||
&b[1].uv_long,
|
||||
&b[2].uv_long,
|
||||
&b[3].uv_long,
|
||||
&b[4].uv_long,
|
||||
&b[5].uv_long,
|
||||
&b[6].uv_long,
|
||||
&b[7].uv_long) != 9)
|
||||
{
|
||||
if (failed_once)
|
||||
error(ERR_FATAL, "2nd format problem; giving up");
|
||||
error(0, "format problem in line: `%s`", line);
|
||||
failed_once = 1;
|
||||
}
|
||||
|
||||
memcpy((void *) p, (void *) b, sizeof(b));
|
||||
p += sizeof(b);
|
||||
}
|
||||
|
||||
if (verbose)
|
||||
printf("buffer size: %d\n", print_buffer.size);
|
||||
|
||||
if (print_buffer.size < 0)
|
||||
error(ERR_FATAL, "size is too small");
|
||||
|
||||
if (print_buffer.size != sizeof(print_buffer.buffer))
|
||||
{
|
||||
error(ERR_FATAL, "buffer size mismatch, expected %d",
|
||||
sizeof(print_buffer.buffer));
|
||||
/* XXX we really should just dynamically allocate the buffer */
|
||||
}
|
||||
|
||||
i = print_buffer.index + 1;
|
||||
while (i != print_buffer.index)
|
||||
{
|
||||
unsigned int c;
|
||||
c = print_buffer.buffer[i++];
|
||||
if (c && (c != '\r'))
|
||||
prchar(c);
|
||||
i %= print_buffer.size;
|
||||
}
|
||||
printf("\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* de-controlify */
|
||||
char *de_control[] = {
|
||||
"^@", "^A", "^B", "^C", "^D", "^E", "^F", "^G", "^H", "^I", "^J", "^K",
|
||||
"^L", "^M", "^N", "^O", "^P", "^Q", "^R", "^S", "^T", "^U", "^V", "^W",
|
||||
"^X", "^Y", "^Z", "^[", "^\\", "^]", "^~", "^_",
|
||||
" ", "!", "\"", "#", "$", "%", "&", "'", "(", ")", "*", "+", ",", "-",
|
||||
".", "/", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ";",
|
||||
"<", "=", ">", "?", "@", "A", "B", "C", "D", "E", "F", "G", "H", "I",
|
||||
"J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W",
|
||||
"X", "Y", "Z", "[", "\\", "]", "^", "_", "`", "a", "b", "c", "d", "e",
|
||||
"f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s",
|
||||
"t", "u", "v", "w", "x", "y", "z", "{", "|", "}", "~", "^?",
|
||||
"M-^@", "M-^A", "M-^B", "M-^C", "M-^D", "M-^E", "M-^F", "M-^G",
|
||||
"M-^H", "M-^I", "M-^J", "M-^K", "M-^L", "M-^M", "M-^N", "M-^O",
|
||||
"M-^P", "M-^Q", "M-^R", "M-^S", "M-^T", "M-^U", "M-^V", "M-^W",
|
||||
"M-^X", "M-^Y", "M-^Z", "M-^[", "M-^\\", "M-^]", "M-^~", "M-^_",
|
||||
"M- ", "M-!", "M-\"", "M-#", "M-$", "M-%", "M-&", "M-'",
|
||||
"M-(", "M-)", "M-*", "M-+", "M-,", "M--", "M-.", "M-/",
|
||||
"M-0", "M-1", "M-2", "M-3", "M-4", "M-5", "M-6", "M-7",
|
||||
"M-8", "M-9", "M-:", "M-;", "M-<", "M-=", "M->", "M-?",
|
||||
"M-@", "M-A", "M-B", "M-C", "M-D", "M-E", "M-F", "M-G",
|
||||
"M-H", "M-I", "M-J", "M-K", "M-L", "M-M", "M-N", "M-O",
|
||||
"M-P", "M-Q", "M-R", "M-S", "M-T", "M-U", "M-V", "M-W",
|
||||
"M-X", "M-Y", "M-Z", "M-[", "M-\\", "M-]", "M-^", "M-_",
|
||||
"M-`", "M-a", "M-b", "M-c", "M-d", "M-e", "M-f", "M-g",
|
||||
"M-h", "M-i", "M-j", "M-k", "M-l", "M-m", "M-n", "M-o",
|
||||
"M-p", "M-q", "M-r", "M-s", "M-t", "M-u", "M-v", "M-w",
|
||||
"M-x", "M-y", "M-z", "M-{", "M-|", "M-}", "M-~", "M-^?"
|
||||
};
|
||||
|
||||
/*
|
||||
* prchar(ch); print ch in a readable format, ie ^X or X or ~^X or DEL, etc.
|
||||
*/
|
||||
|
||||
void
|
||||
prchar(unsigned int ch)
|
||||
{
|
||||
if (isprint(ch) || isspace(ch))
|
||||
putchar(ch);
|
||||
else
|
||||
printf("%s", de_control[ch]);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* error(errn, arglist)
|
||||
* report an error to stderr using printf(3) conventions.
|
||||
* Any output is preceded by '<progname>: '
|
||||
*
|
||||
* Uses ERR_EXIT bit to request exit(errn)
|
||||
* ERR_ABORT to request abort()
|
||||
* ERR_ERRNO to indicate use of errno instead of argument.
|
||||
*
|
||||
* If resulting 'errn' is non-zero, it is assumed to be an 'errno' and its
|
||||
* associated error message is appended to the output.
|
||||
*/
|
||||
|
||||
/*VARARGS*/
|
||||
|
||||
void
|
||||
error(int error_flag, ...)
|
||||
{
|
||||
va_list arglist;
|
||||
register char *format;
|
||||
int local_errno;
|
||||
|
||||
extern int errno;
|
||||
|
||||
(void) fflush(stdout); /* in case stdout/stderr same */
|
||||
|
||||
local_errno = error_flag & ~ERR_MASK;
|
||||
if (error_flag & ERR_ERRNO) /* use errno? */
|
||||
local_errno = errno;
|
||||
|
||||
va_start(arglist, error_flag);
|
||||
format = va_arg(arglist, char *);
|
||||
(void) fprintf(stderr, "%s: ", progname);
|
||||
(void) vfprintf(stderr, format, arglist);
|
||||
va_end(arglist);
|
||||
|
||||
if (local_errno)
|
||||
(void) fprintf(stderr, " (%s)\n", strerror(local_errno));
|
||||
else
|
||||
(void) fprintf(stderr, "\n");
|
||||
|
||||
(void) fflush(stderr);
|
||||
|
||||
if (error_flag & (ERR_FATAL | ERR_ABORT))
|
||||
{
|
||||
if (error_flag & ERR_FATAL)
|
||||
{
|
||||
error(0, local_errno ? "fatal error, exiting" : "exiting");
|
||||
exit(local_errno);
|
||||
}
|
||||
else
|
||||
{
|
||||
error(0, "fatal error, aborting");
|
||||
abort();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
@@ -1,31 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
|
||||
PGM = $(ARCH)/tty.rel
|
||||
|
||||
C_FILES = tty.c
|
||||
C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT))
|
||||
|
||||
OBJS = $(C_O_FILES)
|
||||
|
||||
include $(top_srcdir)/../../../../automake/compile.am
|
||||
include $(top_srcdir)/../../../../automake/lib.am
|
||||
|
||||
#
|
||||
# (OPTIONAL) Add local stuff here using +=
|
||||
#
|
||||
|
||||
$(PGM): $(OBJS)
|
||||
$(make-rel)
|
||||
|
||||
# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile
|
||||
|
||||
all-local: $(ARCH) $(OBJS) $(PGM)
|
||||
|
||||
.PRECIOUS: $(PGM)
|
||||
|
||||
EXTRA_DIST = tty.c
|
||||
|
||||
include $(top_srcdir)/../../../../automake/local.am
|
||||
@@ -1,247 +0,0 @@
|
||||
/*
|
||||
* Tty IO Driver
|
||||
* This is a "libio" driver based on libc/support/generic/libio interface
|
||||
* which is on top of the RTEMS IO manager.
|
||||
*
|
||||
* These provide UNIX-like read and write calls for the C library.
|
||||
*
|
||||
* COPYRIGHT (c) 1994 by Division Incorporated
|
||||
*
|
||||
* 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 <rtems/libio.h>
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
#define PRINT_BUFFER_SIZE (16 * 1024)
|
||||
|
||||
/*
|
||||
* NOTE: this structure is dumplicated in print_dump.c utility
|
||||
*/
|
||||
|
||||
struct {
|
||||
int index;
|
||||
int size;
|
||||
char buffer[PRINT_BUFFER_SIZE];
|
||||
} print_buffer;
|
||||
|
||||
/* always use printf buffer if non-zero */
|
||||
int use_print_buffer;
|
||||
|
||||
static int host_read_syscall(int fd, char *buffer, int count);
|
||||
static int host_write_syscall(int fd, char *buffer, int count);
|
||||
|
||||
rtems_device_driver
|
||||
console_initialize(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void * arg
|
||||
)
|
||||
{
|
||||
rtems_status_code status;
|
||||
|
||||
status = rtems_io_register_name("/dev/tty00",
|
||||
major,
|
||||
(rtems_device_minor_number) 0);
|
||||
if (status != RTEMS_SUCCESSFUL)
|
||||
rtems_fatal_error_occurred(status);
|
||||
|
||||
return RTEMS_SUCCESSFUL;
|
||||
}
|
||||
|
||||
rtems_device_driver
|
||||
console_open(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void * arg
|
||||
)
|
||||
{
|
||||
return RTEMS_SUCCESSFUL;
|
||||
}
|
||||
|
||||
rtems_device_driver
|
||||
console_close(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void * arg
|
||||
)
|
||||
{
|
||||
return RTEMS_SUCCESSFUL;
|
||||
}
|
||||
|
||||
rtems_device_driver
|
||||
console_control(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void * arg
|
||||
)
|
||||
{
|
||||
return RTEMS_SUCCESSFUL;
|
||||
}
|
||||
|
||||
|
||||
rtems_device_driver
|
||||
console_read(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void * arg
|
||||
)
|
||||
{
|
||||
rtems_libio_rw_args_t *rw_args;
|
||||
int count = 0;
|
||||
|
||||
rw_args = (rtems_libio_rw_args_t *) arg;
|
||||
|
||||
/*
|
||||
* If we are printing to a buffer, then just return newline on all
|
||||
* read's. If we return 0 bytes read, then the pause() calls in
|
||||
* the RTEMS tests get hosed (pause() does a gets())
|
||||
*/
|
||||
|
||||
if ( use_print_buffer )
|
||||
{
|
||||
*rw_args->buffer = '\n';
|
||||
count = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
count = host_read_syscall(0, rw_args->buffer, rw_args->count);
|
||||
}
|
||||
|
||||
if (count >= 0)
|
||||
{
|
||||
rw_args->bytes_moved = count;
|
||||
return RTEMS_SUCCESSFUL;
|
||||
}
|
||||
return RTEMS_UNSATISFIED;
|
||||
}
|
||||
|
||||
rtems_device_driver
|
||||
console_write(
|
||||
rtems_device_major_number major,
|
||||
rtems_device_minor_number minor,
|
||||
void * arg
|
||||
)
|
||||
{
|
||||
unsigned32 level;
|
||||
rtems_libio_rw_args_t *rw_args;
|
||||
int count = 0;
|
||||
int fd = 1; /* XXX fixme; needs to be saved in iop */
|
||||
|
||||
rw_args = (rtems_libio_rw_args_t *) arg;
|
||||
|
||||
/*
|
||||
* HACK alert
|
||||
*
|
||||
* Some of the simulators have real problems when multi cpu and
|
||||
* using the system calls. Until this is fixed, if we are multi
|
||||
* cpu then we write to a printf buffer
|
||||
*/
|
||||
|
||||
if ( use_print_buffer )
|
||||
{
|
||||
/* save size in memory for dumper */
|
||||
if (print_buffer.size == 0)
|
||||
print_buffer.size = PRINT_BUFFER_SIZE;
|
||||
|
||||
while (rw_args->count-- > 0)
|
||||
{
|
||||
rtems_interrupt_disable(level);
|
||||
print_buffer.buffer[print_buffer.index] = *rw_args->buffer++;
|
||||
print_buffer.index++;
|
||||
print_buffer.index &= (PRINT_BUFFER_SIZE - 1);
|
||||
print_buffer.buffer[print_buffer.index] = 0;
|
||||
rtems_interrupt_enable(level);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
#if 1
|
||||
/*
|
||||
* if on a multi cpu system and writing to stdout, redirect to stderr
|
||||
* so we can keep them separate
|
||||
*/
|
||||
|
||||
if ((cpu_number == 1) && (fd == 1))
|
||||
fd = 2;
|
||||
#endif
|
||||
count = host_write_syscall(fd, rw_args->buffer, rw_args->count);
|
||||
}
|
||||
|
||||
if (count >= 0)
|
||||
{
|
||||
rw_args->bytes_moved = count;
|
||||
return RTEMS_SUCCESSFUL;
|
||||
}
|
||||
return RTEMS_UNSATISFIED;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Host system call hack.
|
||||
* This little trick gets all the args in the right registers
|
||||
* for the system call and permits simpler inline asm.
|
||||
* Since this whole thing (syscalls under simulator) is a hack,
|
||||
* this little bit more is not going to hurt anything.
|
||||
*/
|
||||
|
||||
|
||||
static int
|
||||
host_read_syscall(
|
||||
int fd,
|
||||
char *buffer,
|
||||
int count
|
||||
)
|
||||
{
|
||||
unsigned32 level;
|
||||
int rc;
|
||||
|
||||
rtems_interrupt_disable(level);
|
||||
|
||||
/* This is an HPUX system call, with return value copied out */
|
||||
asm volatile (" stw %%r19,-28(0,%%r30)\n\
|
||||
ldil L%%0xc0000000,%%r1\n\
|
||||
ble 4(7,%%r1)\n\
|
||||
ldi 3,%%r22\n\
|
||||
ldw -28(0,%%r30),%%r19\n\
|
||||
copy %%r28, %0"
|
||||
: "=r" (rc)
|
||||
: );
|
||||
|
||||
rtems_interrupt_enable(level);
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int
|
||||
host_write_syscall(
|
||||
int fd,
|
||||
char *buffer,
|
||||
int count
|
||||
)
|
||||
{
|
||||
unsigned32 level;
|
||||
int rc;
|
||||
|
||||
rtems_interrupt_disable(level);
|
||||
|
||||
/* This is an HPUX system call, with return value copied out */
|
||||
asm volatile (" stw %%r19,-28(0,%%r30)\n\
|
||||
ldil L%%0xc0000000,%%r1\n\
|
||||
ble 4(7,%%r1)\n\
|
||||
ldi 4,%%r22\n\
|
||||
ldw -28(0,%%r30),%%r19\n\
|
||||
copy %%r28, %0"
|
||||
: "=r" (rc)
|
||||
: );
|
||||
|
||||
rtems_interrupt_enable(level);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
@@ -1,37 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
# pieces to pick up out of libcpu/hppa
|
||||
CPU_FILES = clock milli timer
|
||||
|
||||
if HAS_MP
|
||||
GENERIC_MP_REL_FILES = shmdr
|
||||
endif
|
||||
GENERIC_FILES = $(GENERIC_MP_REL_FILES)
|
||||
|
||||
if HAS_MP
|
||||
BSP_MP_O_FILES = shmsupp
|
||||
endif
|
||||
BSP_FILES = startup tty $(BSP_MP_O_FILES)
|
||||
|
||||
include $(top_srcdir)/../../../../automake/compile.am
|
||||
include $(top_srcdir)/../../../../automake/lib.am
|
||||
|
||||
# bummer; have to use $foreach since % pattern subst rules only replace 1x
|
||||
OBJS = $(foreach piece, $(BSP_FILES), $(wildcard ../$(piece)/$(ARCH)/*.$(OBJEXT))) \
|
||||
$(foreach piece, $(CPU_FILES), ../../../../libcpu/$(RTEMS_CPU)/$(piece)/$(ARCH)/$(piece).rel) \
|
||||
$(foreach piece, $(GENERIC_FILES), ../../../$(piece)/$(ARCH)/$(piece).rel)
|
||||
|
||||
LIB = $(ARCH)/libbsp.a
|
||||
|
||||
#
|
||||
# (OPTIONAL) Add local stuff here using +=
|
||||
#
|
||||
|
||||
$(LIB): $(OBJS)
|
||||
$(make-library)
|
||||
|
||||
all-local: $(ARCH) $(LIB)
|
||||
|
||||
include $(top_srcdir)/../../../../automake/local.am
|
||||
Reference in New Issue
Block a user