summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/unix/posix/tools/semdump.in
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1998-10-14 20:19:30 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1998-10-14 20:19:30 +0000
commit11cfb6f7f6326e79b4a930716c340b65d76d0683 (patch)
tree407c08b76ce570ebc0c5b218aa914a1449808f20 /c/src/lib/libbsp/unix/posix/tools/semdump.in
parentPatch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>: (diff)
downloadrtems-11cfb6f7f6326e79b4a930716c340b65d76d0683.tar.bz2
Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:
1. Rtems contains some perl scripts that use hard-coded paths to /usr/bin/perl or /usr/local/bin/perl I have already fixed these problems by adding some checks to configure.in. While doing this, I also cleaned up some more autoconf related problems for generating shell scripts. This patch might seem a bit scary to you, but I am quite confident it won't break something (I've been testing it for almost a week now, however it might introduce typos for a limited number configurations I don't have access to - But it shouldn't be a problem for you to test them :-). I expect to get this finished tonight, hence you will very likely have the patch when you get up tomorrow. Changes: * Check for PERL and disable all PERL scripts if perl wasn't found. * Generate all KSHELL-scripts with autoconf instead of make-script * Automatic dependency handling for autoconf generated KSHELL or PERL scripts (make/rtems.cfg) Notes: * this patch contains new files and deletes some other files. * The patch is relative to rtems-4.0.0-beta4 with my previous rtems-rc-981014-1.diff patch applied. Testing: I tested it with sh-rtems and posix under linux. Now all targets which are touched by this patch and which are not used while building for sh-rtems and posix still need to be tested. AFAIS, only the sparc/erc32 BSP should be affected by this criterion. And if you like to, you should also consider testing it on a Cygwin32 and a Solaris host for one arbitrary BSP.
Diffstat (limited to 'c/src/lib/libbsp/unix/posix/tools/semdump.in')
-rw-r--r--c/src/lib/libbsp/unix/posix/tools/semdump.in59
1 files changed, 59 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/unix/posix/tools/semdump.in b/c/src/lib/libbsp/unix/posix/tools/semdump.in
new file mode 100644
index 0000000000..53710a629e
--- /dev/null
+++ b/c/src/lib/libbsp/unix/posix/tools/semdump.in
@@ -0,0 +1,59 @@
+#!@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;
+}
+