summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/unix/posix/tools
diff options
context:
space:
mode:
authorRalf Corsepius <ralf.corsepius@rtems.org>2009-10-14 12:17:42 +0000
committerRalf Corsepius <ralf.corsepius@rtems.org>2009-10-14 12:17:42 +0000
commit87a04019fb626d90af690e6a9e985951ed9f4673 (patch)
tree8ce47ee7f81a5d126c59c3dc3204120a059a5f9b /c/src/lib/libbsp/unix/posix/tools
parent2009-10-14 Ralf Corsépius <ralf.corsepius@rtems.org> (diff)
downloadrtems-87a04019fb626d90af690e6a9e985951ed9f4673.tar.bz2
Remove (Abandoned).
Diffstat (limited to 'c/src/lib/libbsp/unix/posix/tools')
-rw-r--r--c/src/lib/libbsp/unix/posix/tools/.cvsignore12
-rw-r--r--c/src/lib/libbsp/unix/posix/tools/ChangeLog118
-rw-r--r--c/src/lib/libbsp/unix/posix/tools/Makefile.am45
-rw-r--r--c/src/lib/libbsp/unix/posix/tools/configure.ac31
-rw-r--r--c/src/lib/libbsp/unix/posix/tools/looptest.in93
-rw-r--r--c/src/lib/libbsp/unix/posix/tools/runtest.in255
-rw-r--r--c/src/lib/libbsp/unix/posix/tools/semdump.in59
-rw-r--r--c/src/lib/libbsp/unix/posix/tools/shmdump.in134
8 files changed, 0 insertions, 747 deletions
diff --git a/c/src/lib/libbsp/unix/posix/tools/.cvsignore b/c/src/lib/libbsp/unix/posix/tools/.cvsignore
deleted file mode 100644
index 1421df2837..0000000000
--- a/c/src/lib/libbsp/unix/posix/tools/.cvsignore
+++ /dev/null
@@ -1,12 +0,0 @@
-aclocal.m4
-autom4te*.cache
-config.cache
-config.log
-config.status
-configure
-looptest
-Makefile
-Makefile.in
-runtest
-semdump
-shmdump
diff --git a/c/src/lib/libbsp/unix/posix/tools/ChangeLog b/c/src/lib/libbsp/unix/posix/tools/ChangeLog
deleted file mode 100644
index 28e973e73d..0000000000
--- a/c/src/lib/libbsp/unix/posix/tools/ChangeLog
+++ /dev/null
@@ -1,118 +0,0 @@
-2008-03-11 Joel Sherrill <joel.sherrill@oarcorp.com>
-
- * runtest.in: Skip all fatal error tests.
-
-2007-09-04 Joel Sherrill <joel.sherrill@OARcorp.com>
-
- * runtest.in: Add capture to list of interative tests to skip in batch
- mode.
-
-2007-01-26 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * Makefile.am: Use MKDIR_P instead of mkdir_p.
-
-2006-12-02 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * configure.ac: New BUG-REPORT address.
-
-2006-10-17 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * configure.ac: Require autoconf-2.60. Require automake-1.10.
-
-2004-09-24 Ralf Corsepius <ralf_corsepius@rtems.org>
-
- * configure.ac: Require automake > 1.9.
-
-2004-01-30 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
-
- * configure.ac: Add RTEMS_ENV_RTEMSBSP.
-
-2004-01-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
-
- * Makefile.am: Re-add dirstamps to PRE/TMPINSTALL_FILES.
- Add PRE/TMPINSTALL_FILES to CLEANFILES.
-
-2003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
-
- * Makefile.am: Reworked.
-
-2003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
-
- * configure.ac: Require automake >= 1.8, autoconf >= 2.59.
-
-2003-12-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
-
- * Makefile.am: Misc cleanups and fixes.
-
-2003-10-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
-
- * configure.ac: Use AC_PATH_PROG(PERL,perl) instead of
- RTEMS_PATH_PERL.
-
-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-14 Joel Sherrill <joel@OARcorp.com>
-
- * runtest.in: Add fileio to list of interactive tests.
-
-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-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-09-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
-
- * Makefile.am: Use 'TMPINSTALL_FILES ='.
-
-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.
diff --git a/c/src/lib/libbsp/unix/posix/tools/Makefile.am b/c/src/lib/libbsp/unix/posix/tools/Makefile.am
deleted file mode 100644
index 84ff77aa61..0000000000
--- a/c/src/lib/libbsp/unix/posix/tools/Makefile.am
+++ /dev/null
@@ -1,45 +0,0 @@
-##
-## $Id$
-##
-
-ACLOCAL_AMFLAGS = -I ../../../../../aclocal
-
-transform =
-bsptools_bindir = ${exec_prefix}/@RTEMS_BSP@/tests
-bsptools_bin_SCRIPTS = runtest looptest
-
-if PERL
-bsptools_bin_SCRIPTS += shmdump semdump
-endif
-
-## HACK: install to build-tree
-all-local: $(TMPINSTALL_FILES)
-
-TMPINSTALL_FILES =
-
-$(PROJECT_ROOT)/@RTEMS_BSP@/tests/$(dirstamp):
- @$(MKDIR_P) $(PROJECT_ROOT)/@RTEMS_BSP@/tests
- @: > $(PROJECT_ROOT)/@RTEMS_BSP@/tests/$(dirstamp)
-TMPINSTALL_FILES += $(PROJECT_ROOT)/@RTEMS_BSP@/tests/$(dirstamp)
-
-$(PROJECT_ROOT)/@RTEMS_BSP@/tests/runtest: runtest $(PROJECT_ROOT)/@RTEMS_BSP@/tests/$(dirstamp)
- $(INSTALL_SCRIPT) $< $(PROJECT_ROOT)/@RTEMS_BSP@/tests/runtest
-TMPINSTALL_FILES += $(PROJECT_ROOT)/@RTEMS_BSP@/tests/runtest
-
-$(PROJECT_ROOT)/@RTEMS_BSP@/tests/looptest: looptest $(PROJECT_ROOT)/@RTEMS_BSP@/tests/$(dirstamp)
- $(INSTALL_SCRIPT) $< $(PROJECT_ROOT)/@RTEMS_BSP@/tests/looptest
-TMPINSTALL_FILES += $(PROJECT_ROOT)/@RTEMS_BSP@/tests/looptest
-
-if PERL
-$(PROJECT_ROOT)/@RTEMS_BSP@/tests/shmdump: shmdump $(PROJECT_ROOT)/@RTEMS_BSP@/tests/$(dirstamp)
- $(INSTALL_SCRIPT) $< $(PROJECT_ROOT)/@RTEMS_BSP@/tests/shmdump
-TMPINSTALL_FILES += $(PROJECT_ROOT)/@RTEMS_BSP@/tests/shmdump
-
-$(PROJECT_ROOT)/@RTEMS_BSP@/tests/semdump: semdump $(PROJECT_ROOT)/@RTEMS_BSP@/tests/$(dirstamp)
- $(INSTALL_SCRIPT) $< $(PROJECT_ROOT)/@RTEMS_BSP@/tests/semdump
-TMPINSTALL_FILES += $(PROJECT_ROOT)/@RTEMS_BSP@/tests/semdump
-endif
-
-CLEANFILES = $(TMPINSTALL_FILES)
-
-include $(top_srcdir)/../../../../../automake/host.am
diff --git a/c/src/lib/libbsp/unix/posix/tools/configure.ac b/c/src/lib/libbsp/unix/posix/tools/configure.ac
deleted file mode 100644
index 44659edd6f..0000000000
--- a/c/src/lib/libbsp/unix/posix/tools/configure.ac
+++ /dev/null
@@ -1,31 +0,0 @@
-## Process this file with autoconf to produce a configure script.
-##
-## $Id$
-
-AC_PREREQ(2.60)
-AC_INIT([rtems-c-src-lib-libbsp-unix-posix-tools],[_RTEMS_VERSION],[http://www.rtems.org/bugzilla])
-AC_CONFIG_SRCDIR([runtest.in])
-RTEMS_TOP(../../../../../../..)
-
-RTEMS_CANONICAL_TARGET_CPU
-
-AM_INIT_AUTOMAKE([no-define foreign 1.10])
-AM_MAINTAINER_MODE
-
-RTEMS_ENV_RTEMSBSP
-
-RTEMS_PATH_KSH
-AC_PATH_PROG(PERL,perl)
-
-AM_CONDITIONAL(PERL,test -n "$PERL")
-
-RTEMS_PROJECT_ROOT
-RTEMS_TOOLPATHS
-
-# Explicitly list all Makefiles here
-AC_CONFIG_FILES([Makefile
-runtest
-shmdump
-looptest
-semdump])
-AC_OUTPUT
diff --git a/c/src/lib/libbsp/unix/posix/tools/looptest.in b/c/src/lib/libbsp/unix/posix/tools/looptest.in
deleted file mode 100644
index 0f6965fe2b..0000000000
--- a/c/src/lib/libbsp/unix/posix/tools/looptest.in
+++ /dev/null
@@ -1,93 +0,0 @@
-#!@KSH@ -p
-#
-# $Id$
-#
-
-# progname=`basename $0`
-progname=${0##*/} # fast basename hack for ksh, bash
-
-# must be uppercase hex; dc is feeble minded
-clicks_per_tick="1"
-# default is 0x3
-hexbump=1
-iterations=10
-
-USAGE=\
-"usage: $progname [ -opts ] file [ file ... ]
- -o options -- specify options to be passed to runtest
- -c clicks -- specify (hex) value for clicks / tick (default $clicks_per_tick)
- -n iterations -- num times to loop thru specified tests (default $iterations)
- -b hexbump -- increment clicks-per-ticks this much each loop (default $hexbump)
- -v -- verbose"
-
-# log an error to stderr
-prerr()
-{
- echo "$*" >&2
-}
-
-fatal() {
- [ "$1" ] && prerr $*
- prerr "$USAGE"
- exit 1
-}
-
-warn() {
- [ "$1" ] && prerr $*
-}
-
-#
-# process the options
-#
-# defaults for getopt vars
-#
-
-verbose=""
-extra_options=""
-
-while getopts vo:c:n:b: OPT
-do
- case "$OPT" in
- v)
- verbose="yes";;
- o)
- extra_options="$OPTARG";;
- c)
- clicks_per_ticks="$OPTARG";;
- n)
- iterations="$OPTARG";;
- b)
- hexbump="$OPTARG";;
- *)
- fatal;;
- esac
-done
-((shiftcount = $OPTIND - 1))
-shift $shiftcount
-
-args=$*
-
-#
-# Run the tests
-# After each run, rename 'log' to log.$clicks_per_tick
-#
-
-tests="$args"
-
-while [ $iterations -gt 0 ]
-do
- ./runtest $extra_options -c $clicks_per_tick $tests
- rm -rf log.$clicks_per_tick.OLD
- [ -d log.$clicks_per_tick ] && mv log.$clicks_per_tick log.$clicks_per_tick.OLD
- mv log log.$clicks_per_tick
-
- ((iterations = $iterations - 1))
- clicks_per_tick=`echo 16 o 16 i $clicks_per_tick $hexbump + p q | dc`
-done
-
-exit 0
-
-# Local Variables: ***
-# mode:ksh ***
-# End: ***
-
diff --git a/c/src/lib/libbsp/unix/posix/tools/runtest.in b/c/src/lib/libbsp/unix/posix/tools/runtest.in
deleted file mode 100644
index 7a5eefa627..0000000000
--- a/c/src/lib/libbsp/unix/posix/tools/runtest.in
+++ /dev/null
@@ -1,255 +0,0 @@
-#!@KSH@ -p
-#
-# Run rtems tests on a POSIX-ish UNIX
-#
-# $Id$
-#
-
-trap "test_exit 1" 1 2 3 13 14 15
-
-trap "test_exit 1" 1 2 3 13 14 15
-
-# progname=`basename $0`
-progname=${0##*/} # fast basename hack for ksh, bash
-
-USAGE=\
-"usage: $progname [ -opts ] test [ test ... ]
- -c clicks -- specify (hex) value for clicks / tick
- -v -- verbose
- -l logdir -- specify log directory (default is 'logdir')
-
- Specify test as 'test' or 'test.exe'.
- All multiprocessing tests *must* be specified simply as 'mp01', etc.
-"
-
-# export everything
-set -a
-
-# log an error to stderr
-prerr()
-{
- echo "$*" >&2
-}
-
-fatal() {
- [ "$1" ] && prerr $*
- prerr "$USAGE"
- exit 1
-}
-
-warn() {
- [ "$1" ] && prerr $*
-}
-
-# print args, 1 per line
-ml_echo()
-{
- for l
- do
- echo "$l"
- done
-}
-
-killem()
-{
- kill -9 $pid $pid1 $pid2 2> /dev/null
-}
-
-
-killem()
-{
- kill -9 $pid $pid1 $pid2 2> /dev/null
-}
-
-
-test_exit()
-{
- exit_code=$1
-
- killem
-
- killem
-
- rm -f ${logfile}.tmp*
-
- exit $exit_code
-}
-
-#
-# process the options
-#
-# defaults for getopt vars
-#
-
-verbose=""
-extra_options=""
-clicks_per_tick=""
-logdir=log
-# how long can we run; rtems tests might run 300 seconds
-max_run_time=400
-run_to_completion="yes"
-
-while getopts vo:c:l: OPT
-do
- case "$OPT" in
- v)
- verbose="yes";;
- l)
- logdir="$OPTARG";;
- o)
- extra_options="$OPTARG";;
- c)
- clicks_per_tick="$OPTARG";;
- *)
- fatal;;
- esac
-done
-
-let $((shiftcount = $OPTIND - 1))
-shift $shiftcount
-
-args=$*
-
-#
-# Run the tests
-#
-
-tests="$args"
-if [ ! "$tests" ]
-then
- set -- `echo *.exe`
- tests="$*"
-fi
-
-[ -d $logdir ] || mkdir $logdir || fatal "could not create log directory ($logdir)"
-
-for tfile in $tests
-do
-
- tname=`echo $tfile | sed -e 's/\.exe$//'`
- tname=`basename $tname`
-
- TEST_TYPE="single"
-
- case $tname in
- capture* | monitor* | termios* | fileio* | pppd*)
- if [ $run_to_completion = "yes" ]
- then
- warn "Skipping $tname; it is interactive"
- continue
- fi
- ;;
- *-node2*)
- warn "Skipping $tname; 'runtest' runs both nodes when for *-node1"
- continue;;
- *-node1*)
- tname=`echo $tname | sed 's/-node.*//'`
- warn "Running both nodes associated with $tname"
- TEST_TYPE="mp"
- ;;
- stackchk*|*fatal*|malloctest*|termio*)
- warn "Skipping $tname; it locks up or takes a VERY long time to run"
- continue
- ;;
- esac
-
- if [ $TEST_TYPE = "mp" ]
- then
- logfile1=$logdir/${tname}_1
- infofile1=$logfile1.info
- logfile2=$logdir/${tname}_2
- infofile2=$logfile2.info
-
- rm -f ${logfile1}
- rm -f ${logfile2}
-
- date=`date`
- echo "Starting $tname at $date"
-
- ./${tname}-node1.exe > $logfile1 2>&1 &
- pid1=$!
- ./${tname}-node2.exe > $logfile2 2>&1 &
- pid2=$!
-
- # Wait for both cpu's to complete, ensuring they don't run forever...
- time_run=0
- while [ $time_run -lt $max_run_time ]
- do
- # sleep 5s at a time waiting for jobs to finish or timer to expire
- # if job has exited, then we exit, too.
- sleep 5
- kill -0 $pid1 2> /dev/null
- running1=$?
- kill -0 $pid2 2> /dev/null
- running2=$?
- if [ $running1 -eq 0 ] && [ $running2 -eq 0 ] # both still running
- then
- time_run=$((time_run + 5))
- if [ $time_run -ge $max_run_time ]
- then
- echo "$tname ran too long; killing it"
- ran_too_long="yes"
- fi
- else
- ran_too_long="no"
- # if one is still running, have to kill them
- if [ $running1 -ne $running2 ]
- then
- sleep 10 # give other node a chance to gracefully die
- fi
- break
- fi
- done
-
- # make sure they are gone
- kill -9 $pid1 2> /dev/null
- kill -9 $pid2 2> /dev/null
- fi
-
- if [ $TEST_TYPE = "single" ]
- then
- logfile=$logdir/$tname
- infofile=$logfile.info
-
- rm -f ${logfile}
-
- date=`date`
- echo "Starting $tname.exe at $date"
-
- ./$tname.exe > $logfile 2>&1 &
- pid=$!
-
- # Make sure it won't run forever...
- time_run=0
- while [ $time_run -lt $max_run_time ]
- do
- # sleep 5s at a time waiting for job to finish or timer to expire
- # if job has exited, then we exit, too.
- sleep 5
- kill -0 $pid 2> /dev/null
- running=$?
- if [ $running -eq 0 ]
- then
- time_run=$((time_run + 5))
- if [ $time_run -ge $max_run_time ]
- then
- kill -9 $pid 2> /dev/null
- ran_too_long="yes"
- fi
- else
- ran_too_long="no"
- break
- fi
- done
- fi
-
- pid=""
-
-done
-
-test_exit 0
-
-# Local Variables: ***
-# mode:ksh ***
-# End: ***
-
diff --git a/c/src/lib/libbsp/unix/posix/tools/semdump.in b/c/src/lib/libbsp/unix/posix/tools/semdump.in
deleted file mode 100644
index 53710a629e..0000000000
--- a/c/src/lib/libbsp/unix/posix/tools/semdump.in
+++ /dev/null
@@ -1,59 +0,0 @@
-#!@PERL@
-#
-# $Id$
-#
-eval "exec @PERL@ -S $0 $*"
- if $running_under_some_shell;
-
-# dump semaphore array values tony@divnc.com
-
-require 'sys/sem.ph';
-require 'getopts.pl';
-&Getopts("vhi:k:"); # verbose, help, id, key
-
-if ($opt_h || ($opt_i && $opt_k))
-{
- print STDERR <<NO_MORE_HELP;
-semdump
-
- Dump info about specified semaphore.
-
-Usage: $0 [-v] { -i semid | -k semkey }
-
- -v -- possibly more verbose
- -i semid -- semaphore id
- -k semkey -- semaphore key
- -h -- help
-
- anything else == this help message
-NO_MORE_HELP
- exit 1;
-}
-
-$verbose = $opt_v;
-$id = $opt_i;
-$key = $opt_k;
-
-if ($key)
-{
- $key = oct($key) if $key =~ /^0/;
- die "Could not convert key to id; $!" unless $id = semget($key, 1, 0);
-}
-
-# I don't know to find out how many sem's are attached to the id
-# so just keep reading them until we get an error.
-
-printf("KEY: 0x%X (%d) ", $key, $key) if $key;
-print "ID: $id\n";
-
-semlist:
-for ($semnum=0; $semnum < 10; $semnum++)
-{
- $val = semctl($id, $semnum, &GETVAL, 0);
- $val || ($val = -1);
-
- last semlist if ($val == -1);
-
- printf " %d: %d\n", $semnum, $val;
-}
-
diff --git a/c/src/lib/libbsp/unix/posix/tools/shmdump.in b/c/src/lib/libbsp/unix/posix/tools/shmdump.in
deleted file mode 100644
index fa965702ca..0000000000
--- a/c/src/lib/libbsp/unix/posix/tools/shmdump.in
+++ /dev/null
@@ -1,134 +0,0 @@
-#!@PERL@
-#
-# $Id$
-#
-eval "exec @PERL@ -S $0 $*"
- if $running_under_some_shell;
-
-# dump shared memory segment tony@divnc.com
-
-require 'sys/shm.ph';
-require 'getopts.pl';
-&Getopts("vhi:k:f:l:b:w"); # verbose, help, id, key, first, length, word, base
-
-if ($opt_h || ($opt_i && $opt_k))
-{
- print STDERR <<NO_MORE_HELP;
-shmdump
-
- Dump contents of specifed shared memory segment.
-
-Usage: $0 [options]
-
- -h -- help
- -v -- possibly more verbose
- -i shmid -- shm id
- -k shmkey -- shm key
- -f first -- start of partial dump
- -l length -- length of partial dump
- -w -- dump as 4byte words instead of bytes
- -b base -- use 'base' as base address for output
-
- anything else == this help message
-NO_MORE_HELP
- exit 1;
-}
-
-$verbose = $opt_v;
-$id = $opt_i;
-$key = $opt_k;
-$offset = $opt_f;
-$print_length = $opt_l;
-$base = $opt_b;
-$word_dump = $opt_w;
-
-if ($key)
-{
- # ensure key is an integer
- $key = oct($key) if $key =~ /^0/;
- die "Could not convert key to id; $!" unless $id = shmget($key, 1, 0);
-}
-
-# ensure integerhood in case of leading '0x'
-$base = oct($base) if $base =~ /^0/;
-$offset = oct($offset) if $offset =~ /^0/;
-$print_length = oct($print_length) if $print_length =~ /^0/;
-
-if ( ! shmctl($id, &IPC_STAT, $shmid_ds))
-{
- die "shmctl(2) for id $id failed -- (I was trying to get size): $!";
-}
-
-# Pick the length out.
-# It is at byte offset 0x30 on hpux9 and probably hpux10
-# Also get the key if we don't have it already. Don't need it tho...
-$length = unpack("I", substr($shmid_ds, 0x30, 4));
-$key = unpack("I", substr($shmid_ds, 0x14, 4)) if ! $key;
-
-# poke around looking for length and key
-# print "I guess: length: $length, key: $key\n";
-# print "****$shmid_ds****\n"; die "";
-
-# make sure offset and print length make sense
-$print_length = $length if ! $print_length;
-if (($offset + $print_length) > $length)
-{
- die "offset ($offset) and length ($print_length) go beyond end of segment ($length bytes)";
-}
-
-printf("KEY: 0x%X (%d) ", $key, $key) if ($key);
-printf "ID: $id\n";
-printf " %d bytes (0x%X), %d words, logical base is 0x%X\n",
- $length, $length, $length / 4, $base;
-if ($offset || ($print_length != $length))
-{
- printf " printing %X (%d) bytes starting at offset 0x%X (%d)\n",
- $print_length, $print_length, $offset, $offset;
-}
-printf "\n";
-
-if ( ! shmread($id, $shm_data, $offset, $print_length))
-{
- die "could not attach and read from shmid $id: $!";
-}
-
-# the dump code below derived from "Real Perl Programs" example "xdump"
-# from Camel book
-
-$base += $offset;
-$offset = 0;
-for ($len = $print_length; $len >= 16; )
-{
- $data = substr($shm_data, $offset, 16);
-
- @array = unpack('N4', $data);
- $data =~ tr/\0-\37\177-\377/./;
- printf "%8.8lX %8.8lX %8.8lX %8.8lX %8.8lX |%s|\n",
- $base, @array, $data;
-
- $offset += 16;
- $base += 16;
- $len -= 16;
-}
-
-# Now finish up the end a byte at a time
-
-if ($len)
-{
- $data = substr($shm_data, $offset, $len);
- @array = unpack('C*', $data);
- for (@array)
- {
- $_ = sprintf('%2.2X', $_);
- }
-
- push(@array, ' ') while $len++ < 16;
-
- $data =~ tr/\0-\37\177-\377/./;
- $data =~ s/[^ -~]/./g;
-
- printf "%8.8lX ", $base;
- printf "%s%s%s%s %s%s%s%s %s%s%s%s %s%s%s%s |%-16s|\n",
- @array, $data;
-}
-