aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Wemm <peter@FreeBSD.org>1996-05-04 07:22:23 +0000
committerPeter Wemm <peter@FreeBSD.org>1996-05-04 07:22:23 +0000
commit369dee27a38095a04cbcdab971ee5a44d002bcf9 (patch)
treee2ed2b657261333e0a31ba5afef466c804f5c85c
parentc1e8e76993116fe1c8a47b7c92445c2033ba5b74 (diff)
downloadsrc-vendor/stallion.tar.gz
src-vendor/stallion.zip
Import the user-mode parts of the v0.0.5alpha Stallion driver.vendor/stallion/v0_0_5_alphavendor/stallion
Submitted by: Greg Ungerer (gerg@stallion.oz.au) (Note, patches to compile/install to follow)
Notes
Notes: svn path=/vendor/stallion/dist/; revision=15606 svn path=/vendor/stallion/v0_0_5_alpha/; revision=15608; tag=vendor/stallion/v0_0_5_alpha
-rw-r--r--usr.sbin/stallion/bootcode/2681.sys.uu653
-rw-r--r--usr.sbin/stallion/bootcode/cdk.sys.uu733
-rw-r--r--usr.sbin/stallion/stlload/stlload.c564
-rw-r--r--usr.sbin/stallion/stlstats/stlstats.c603
4 files changed, 2553 insertions, 0 deletions
diff --git a/usr.sbin/stallion/bootcode/2681.sys.uu b/usr.sbin/stallion/bootcode/2681.sys.uu
new file mode 100644
index 000000000000..8da74933103d
--- /dev/null
+++ b/usr.sbin/stallion/bootcode/2681.sys.uu
@@ -0,0 +1,653 @@
+begin 440 2681.sys
+M````````````````````````````````````````````````````````````
+M``````!>`0``````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M`-(1SV0``````````````````````````````````````!``````8V1K:"YC
+M```F`````````````````(@5````````````````K@4```,``````````&YO
+M(&-D,30P,"!D<FEV97(@:6YS=&%L;&5D`&YO(&5C8G5S(&1R:79E<B!I;G-T
+M86QL960`;65M;W)Y(&UA;&QO8R!F86EL960```````!!4U-%4E1)3TX@1D%)
+M3%5212!A="`E<R@E9"D*``"F`$E.1D]230!705).24Y'`$9!5$%,`%!!3DE#
+M`$524D]2("5S.B`E<R@E9"DZ(``*`,8`S0#5`-L`X0`Q+C`N,P`H0RD@0V]P
+M>7)I9VAT(%-T86QL:6]N(%1E8VAN;VQO9VEE<R`Q.3DS("T@,3DY-0`*"BTM
+M+2TM+2TM+2TM+2TM+2`@4W1A;&QI;VX@26YT96QL:6=E;G0@0V]M;75N:6-A
+M=&EO;G,@4')O8V5S<V]R("`M+2TM+2TM+2TM+2TM+2T*`"`@("`@("`@("`@
+M("`@("`E<PH*`"`@0F]A<F0@5'EP92`@("`@("`@("`@("`@("`@("`E,F0@
+M("`@("`@("`@("!#;V1E(%9E<G-I;VX@("`@("`@("`@("`@("`E<PH`("!-
+M96UO<GD@5&]T86P@("`@("`@("`@(#!X)3`V;'@@("`@("`@("`@("!-96UO
+M<GD@57-E9"`@("`@("`@("`@("`P>"4P-FQX"@`@($UE;6]R>2!&<F5E("`@
+M("`@("`@("`@,'@E,#9L>"`@("`@("`@("`@($UE;6]R>2!-87`@("`@("`@
+M("`@("`@(#!X)3`V;'@*`"`@0V]D92!3:7IE("`@("`@("`@("`@("`P>"4P
+M-FQX("`@("`@("`@("`@1&%T82!3:7IE("`@("`@("`@("`@("`@,'@E,#9L
+M>`H`("!#;V1E(%-E9VUE;G0@("`@("`@("`@("`@,'@E,#1X("`@("`@("`@
+M("`@1&%T82!396=M96YT("`@("`@("`@("`@("`P>"4P-'@*`"`@4W1A8VL@
+M4V5G;65N="`@("`@("`@("`@(#!X)3`T>"`@("`@("`@("`@($5X=')A(%-E
+M9VUE;G0@("`@("`@("`@("`@,'@E,#1X"@H`("!!<WEN8VAR;VYO=7,@4&%N
+M96QS("`@("`@("`@("`E9"`@("`@("`@("`@($%S>6YC:')O;F]U<R!0;W)T
+M<R`@("`@("`@("`@("4R9`H`"BTM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
+M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
+M+2TM+2TM+2T*"@````$&`3`Q,C,T-38W.#EA8F-D968``!H$```_*T4K2RM1
+M*U<K72MC*VDK;RMU*WLK@2N'*XTKE"N;*Z(KJ2NP*[<KOBO%*\PKTRO:*^$K
+MZ"OO*_8K_2L$+`LL$BP9+"`L)RPN+#4L/"Q#+$HL42Q8+%\L9BQM+'0L>RR"
+M+(DLD"R7+)XLI2RL++,LNBS!+,@LSRS6+-TLY"SK+#(V.#$N8P``L`0`````
+M````````,@```$L```!N````A@```)8```#(````+`$``%@"``"P!```"`<`
+M`&`)``#`$@``@"4```!+````E@```.$``&``8`#@`&``8`#@`&``8`!@`&``
+MX`!@`&``8`#@`&``8``````````1`"(`,P`S`$0`50!F`*H`B`"9`+L`S`#,
+M`,P``````!``@`"0```!$`&``9`!``(0`B`",`)``E`"8`)P`@``$`"``)``
+M``$0`2`!,`%``5`!8`%P`8`!D`&@`;`!P`'0`>`!\`$``A`"(`(P`D`"4`)@
+M`G`"@`*0`J`"L`)``$``FD=\0@``,"\`,?0Q``"4-18WUCBH2P``````````
+M`````"5D`"X```````````````#ZO``$,\".T([`N``!CM@SP([`)H$^``*G
+M\G4G)H$^`@))H74>)H$^!`)28W45)H$^!@(A\74,)J$*`B:+'@P"ZV*0N5K0
+M,_:.QB:A```FB0X``+X`$(L6``".QB8Y#@``=`J!Q@`0@?X`@'+I,]*.PB:C
+M``",R+M07(/C\,'K!`/80X[#)J$``":)#@``BQ8``"8Y#@``=0DFHP``0SO>
+M<N$SP*,,`,<&#@```(O3P>($`18,`(,6#@``B]/!Z@P!%@X`H0P`BQ8.`+E0
+M7(D.&`"#P1^#X?"+\8OY*\&#V@#!Z`3!X@P+T(["3TZ,R([8_?.D_`9H^@#+
+MN``!CMBYH!Z+\8OYB]F)'B0``QX@`(/##X/C\(O#P>@$*]".PDY/_?.D_(S`
+MCMB.P([0B^.#[`2_X`4SP+F@'HD.'``KS_SSJHS(HP8`C-BC!``NHW`!C-"C
+M"@",P*,(`(S8P>`$HQ0`C-C!Z`RC%@#HRAWK_@``R`0``%=6BT8(F8L>#@<Y
+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
+;TP7H#LB#Q`(KP*,2!Z,0!^ETK@``````````
+`
+end
diff --git a/usr.sbin/stallion/bootcode/cdk.sys.uu b/usr.sbin/stallion/bootcode/cdk.sys.uu
new file mode 100644
index 000000000000..8d000833916f
--- /dev/null
+++ b/usr.sbin/stallion/bootcode/cdk.sys.uu
@@ -0,0 +1,733 @@
+begin 440 cdk.sys
+M````````````````````````````````````````````````````````````
+M``````!@`0``````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M`-(1SV0``````````````````````````````````````!``````8V1K:"YC
+M```F`````````````````.`5`````````````,($``!F!0,``````````&YO
+M(#(V.#$@9')I=F5R(&EN<W1A;&QE9`!M96UO<GD@;6%L;&]C(&9A:6QE9```
+M`````$%34T525$E/3B!&04E,55)%(&%T("5S*"5D*0H``(H`24Y&3U)-`%=!
+M4DY)3D<`1D%404P`4$%.24,`15)23U(@)7,Z("5S*"5D*3H@``H`J@"Q`+D`
+MOP#%`#$N,"XS`"A#*2!#;W!Y<FEG:'0@4W1A;&QI;VX@5&5C:&YO;&]G:65S
+M(#$Y.3,@+2`Q.3DU``H*+2TM+2TM+2TM+2TM+2TM("!3=&%L;&EO;B!);G1E
+M;&QI9V5N="!#;VUM=6YI8V%T:6]N<R!0<F]C97-S;W(@("TM+2TM+2TM+2TM
+M+2TM+0H`("`@("`@("`@("`@("`@("5S"@H`("!";V%R9"!4>7!E("`@("`@
+M("`@("`@("`@("`@("4R9"`@("`@("`@("`@($-O9&4@5F5R<VEO;B`@("`@
+M("`@("`@("`@("5S"@`@($UE;6]R>2!4;W1A;"`@("`@("`@("`@,'@E,#9L
+M>"`@("`@("`@("`@($UE;6]R>2!5<V5D("`@("`@("`@("`@(#!X)3`V;'@*
+M`"`@365M;W)Y($9R964@("`@("`@("`@("`P>"4P-FQX("`@("`@("`@("`@
+M365M;W)Y($UA<"`@("`@("`@("`@("`@,'@E,#9L>`H`("!#;V1E(%-I>F4@
+M("`@("`@("`@("`@(#!X)3`V;'@@("`@("`@("`@("!$871A(%-I>F4@("`@
+M("`@("`@("`@("`P>"4P-FQX"@`@($-O9&4@4V5G;65N="`@("`@("`@("`@
+M("`P>"4P-'@@("`@("`@("`@("!$871A(%-E9VUE;G0@("`@("`@("`@("`@
+M(#!X)3`T>`H`("!3=&%C:R!396=M96YT("`@("`@("`@("`@,'@E,#1X("`@
+M("`@("`@("`@17AT<F$@4V5G;65N="`@("`@("`@("`@("`P>"4P-'@*"@`@
+M($%S>6YC:')O;F]U<R!086YE;',@("`@("`@("`@("5D("`@("`@("`@("`@
+M07-Y;F-H<F]N;W5S(%!O<G1S("`@("`@("`@("`@)3)D"@`*+2TM+2TM+2TM
+M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
+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
++-#GIZJ`````````V
+`
+end
diff --git a/usr.sbin/stallion/stlload/stlload.c b/usr.sbin/stallion/stlload/stlload.c
new file mode 100644
index 000000000000..d44c052de96b
--- /dev/null
+++ b/usr.sbin/stallion/stlload/stlload.c
@@ -0,0 +1,564 @@
+/*****************************************************************************/
+
+/*
+ * stlload.c -- stallion intelligent multiport down loader.
+ *
+ * Copyright (c) 1994-1996 Greg Ungerer (gerg@stallion.oz.au).
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Greg Ungerer.
+ * 4. Neither the name of the author nor the names of any co-contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*****************************************************************************/
+
+#include <stdio.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <time.h>
+#include <sys/stat.h>
+#include <sys/ioctl.h>
+
+#include "cdk.h"
+
+/*****************************************************************************/
+
+char *version = "0.0.5";
+char *defdevice = "/dev/staliomem%d";
+char *image = "/usr/lib/stallion/cdk.sys";
+char *oldimage = "/usr/lib/stallion/2681.sys";
+
+char *progname;
+char *memdevice;
+char devstr[128];
+int brdnr = 0;
+int verbose = 0;
+int reset = 0;
+
+/*
+ * Define a local buffer for copying the image into the shared memory.
+ */
+#define BUFSIZE 4096
+
+char buf[BUFSIZE];
+
+/*
+ * Define the timeout length when waiting for slave to start up.
+ * The quantity is measured in seconds.
+ */
+#define TIMEOUT 5
+
+/*
+ * Set up a default feature area structure.
+ */
+cdkfeature_t feature = { 0, 0, ETYP_CDK, 0, 0, 0, 0, 0 };
+
+/*
+ * Have local copys of the board signatures ready.
+ */
+cdkecpsig_t ecpsig;
+cdkonbsig_t onbsig;
+
+/*****************************************************************************/
+
+/*
+ * Declare internal function prototypes here.
+ */
+void usage(void);
+int ecpfindports(cdkecpsig_t *sigp);
+int onbfindports(cdkonbsig_t *sigp);
+int download(void);
+
+/*****************************************************************************/
+
+void usage()
+{
+ fprintf(stderr, "Usage: %s [OPTION]\n\n", progname);
+ fprintf(stderr, " -h print this information\n");
+ fprintf(stderr, " -v print full diagnotsic trace\n");
+ fprintf(stderr, " -V show version information and exit\n");
+ fprintf(stderr, " -i specify image file to use\n");
+ fprintf(stderr, " -b download board number\n");
+ fprintf(stderr, " -d specify memory device to use\n");
+ fprintf(stderr, " -B enable slave boot banner\n");
+ fprintf(stderr, " -R reset board only\n");
+ fprintf(stderr, " -t set size of TX slave buffer\n");
+ fprintf(stderr, " -r set size of RX slave buffer\n");
+ exit(0);
+}
+
+/*****************************************************************************/
+
+/*
+ * Given a boards signature determine how many ports it has. We need to
+ * know this to setup the slave feature arguments. This function is for
+ * ECP boards only.
+ */
+
+int ecpfindports(cdkecpsig_t *sigp)
+{
+ unsigned int id;
+ int bank, nrports;
+
+ nrports = 0;
+ for (bank = 0; (bank < 8); bank++) {
+ id = (unsigned int) sigp->panelid[bank];
+ if (id == 0xff)
+ break;
+ if ((id & 0x07) != bank)
+ break;
+ if (id & 0x20) {
+ nrports += 16;
+ bank++;
+ } else {
+ nrports += 8;
+ }
+ }
+
+ return(nrports);
+}
+
+/*****************************************************************************/
+
+/*
+ * Given a boards signature determine how many ports it has. We need to
+ * know this to setup the slave feature arguments. This function is for
+ * ONboards and Brumbys.
+ */
+
+int onbfindports(cdkonbsig_t *sigp)
+{
+ int i, nrports;
+
+ if (sigp->amask1) {
+ nrports = 32;
+ } else {
+ for (i = 0; (i < 16); i++) {
+ if (((sigp->amask0 << i) & 0x8000) == 0)
+ break;
+ }
+ nrports = i;
+ }
+
+ return(nrports);
+}
+
+/*****************************************************************************/
+
+/*
+ * Download an image to the slave board. There is a long sequence of
+ * things to do to get the slave running, but it is basically a simple
+ * process. Main things to do are: copy slave image into shared memory,
+ * start slave running and then read shared memory map.
+ */
+
+int download()
+{
+ unsigned char alivemarker;
+ time_t strttime;
+ int memfd, ifd;
+ int nrdevs, sigok, n, rc;
+
+ if (verbose)
+ printf("Opening shared memory device %s\n", memdevice);
+ if ((memfd = open(memdevice, O_RDWR)) < 0) {
+ fprintf(stderr,
+ "%s: failed to open memory device %s, errno=%d\n",
+ progname, memdevice, errno);
+ return(-1);
+ }
+
+/*
+ * Before starting the download must tell driver that we are about to
+ * stop its slave. This is only important if it is already running.
+ * Once we have told the driver its stopped then do a hardware reset
+ * on it, to get it into a known state.
+ */
+ if (verbose)
+ printf("Stoping any current slave\n");
+ if (ioctl(memfd, STL_BSTOP, 0) < 0) {
+ fprintf(stderr, "%s: ioctl(STL_BSTOP) failed, errno=%d\n",
+ progname, errno);
+ return(-1);
+ }
+
+ if (verbose)
+ printf("Reseting the board\n");
+ if (ioctl(memfd, STL_BRESET, 0) < 0) {
+ fprintf(stderr, "%s: ioctl(STL_BRESET) failed, errno=%d\n",
+ progname, errno);
+ return(-1);
+ }
+ if (reset)
+ return(0);
+
+/*
+ * After reseting the board we need to send an interrupt to the older
+ * board types to get them to become active. Do that now.
+ */
+ if (verbose)
+ printf("Interrupting board to activate shared memory\n");
+ if (ioctl(memfd, STL_BINTR, 0) < 0) {
+ fprintf(stderr, "%s: ioctl(STL_BINTR) failed, errno=%d\n",
+ progname, errno);
+ return(-1);
+ }
+ /*sleep(1);*/
+
+ if (verbose)
+ printf("Opening slave image file %s\n", image);
+ if ((ifd = open(image, O_RDONLY)) < 0) {
+ fprintf(stderr, "%s: failed to open image file %s, errno=%d\n",
+ progname, image, errno);
+ return(-1);
+ }
+
+/*
+ * At this point get the signature of the board from the shared memory.
+ * Do a double check that it is a board we know about. We will also need
+ * to calculate the number of ports on this board (to use later).
+ */
+ sigok = 0;
+ if (verbose)
+ printf("Reading ROM signature from board\n");
+
+ if (lseek(memfd, CDK_SIGADDR, SEEK_SET) != CDK_SIGADDR) {
+ fprintf(stderr,
+ "%s: lseek(%x) failed on memory file, errno=%d\n",
+ progname, CDK_FEATADDR, errno);
+ return(-1);
+ }
+ if (read(memfd, &ecpsig, sizeof(cdkecpsig_t)) < 0) {
+ fprintf(stderr, "%s: read of ROM signature failed, errno=%d\n",
+ progname, errno);
+ return(-1);
+ }
+ if (ecpsig.magic == ECP_MAGIC) {
+ nrdevs = ecpfindports(&ecpsig);
+ if (nrdevs < 0)
+ return(-1);
+ sigok++;
+ }
+
+ if (lseek(memfd, CDK_SIGADDR, SEEK_SET) != CDK_SIGADDR) {
+ fprintf(stderr,
+ "%s: lseek(%x) failed on memory file, errno=%d\n",
+ progname, CDK_FEATADDR, errno);
+ return(-1);
+ }
+ if (read(memfd, &onbsig, sizeof(cdkonbsig_t)) < 0) {
+ fprintf(stderr, "%s: read of ROM signature failed, errno=%d\n",
+ progname, errno);
+ return(-1);
+ }
+ if ((onbsig.magic0 == ONB_MAGIC0) && (onbsig.magic1 == ONB_MAGIC1) &&
+ (onbsig.magic2 == ONB_MAGIC2) &&
+ (onbsig.magic3 == ONB_MAGIC3)) {
+ nrdevs = onbfindports(&onbsig);
+ if (nrdevs < 0)
+ return(-1);
+ sigok++;
+ }
+
+ if (! sigok) {
+ fprintf(stderr, "%s: unknown signature from board\n", progname);
+ return(-1);
+ }
+
+ if (verbose)
+ printf("Board signature reports %d ports\n", nrdevs);
+
+/*
+ * Start to copy the image file into shared memory. The first thing to
+ * do is copy the vector region in from shared memory address 0. We will
+ * then skip over the signature and feature area and start copying the
+ * actual image data and code from 4k upwards.
+ */
+ if (verbose)
+ printf("Copying vector table into shared memory\n");
+ if ((n = read(ifd, buf, CDK_SIGADDR)) < 0) {
+ fprintf(stderr, "%s: read of image file failed, errno=%d\n",
+ progname, errno);
+ return(-1);
+ }
+ if (lseek(memfd, 0, SEEK_SET) != 0) {
+ fprintf(stderr,
+ "%s: lseek(%x) failed on memory file, errno=%d\n",
+ progname, CDK_FEATADDR, errno);
+ return(-1);
+ }
+ if (write(memfd, buf, n) < 0) {
+ fprintf(stderr,
+ "%s: write to memory device failed, errno=%d\n",
+ progname, errno);
+ return(-1);
+ }
+
+ if (lseek(ifd, 0x1000, SEEK_SET) != 0x1000) {
+ fprintf(stderr,
+ "%s: lseek(%x) failed on image file, errno=%d\n",
+ progname, CDK_FEATADDR, errno);
+ return(-1);
+ }
+ if (lseek(memfd, 0x1000, SEEK_SET) != 0x1000) {
+ fprintf(stderr,
+ "%s: lseek(%x) failed on memory device, errno=%d\n",
+ progname, CDK_FEATADDR, errno);
+ return(-1);
+ }
+
+/*
+ * Copy buffer size chunks of data from the image file into shared memory.
+ */
+ do {
+ if ((n = read(ifd, buf, BUFSIZE)) < 0) {
+ fprintf(stderr,
+ "%s: read of image file failed, errno=%d\n",
+ progname, errno);
+ return(-1);
+ }
+ if (write(memfd, buf, n) < 0) {
+ fprintf(stderr,
+ "%s: write to memory device failed, errno=%d\n",
+ progname, errno);
+ return(-1);
+ }
+ } while (n == BUFSIZE);
+
+ close(ifd);
+
+/*
+ * We need to down load the start up parameters for the slave. This is
+ * done via the feature area of shared memory. Think of the feature area
+ * as a way of passing "command line" arguments to the slave.
+ * FIX: should do something here to load "brdspec" as well...
+ */
+ feature.nrdevs = nrdevs;
+ if (verbose)
+ printf("Loading features into shared memory\n");
+ if (lseek(memfd, CDK_FEATADDR, SEEK_SET) != CDK_FEATADDR) {
+ fprintf(stderr,
+ "%s: lseek(%x) failed on memory device, errno=%d\n",
+ progname, CDK_FEATADDR, errno);
+ return(-1);
+ }
+ if (write(memfd, &feature, sizeof(cdkfeature_t)) < 0) {
+ fprintf(stderr,
+ "%s: write to memory device failed, errno=%d\n",
+ progname, errno);
+ return(-1);
+ }
+
+/*
+ * Wait for board alive marker to be set. The slave image will set the
+ * byte at address CDK_RDYADDR to 0x13 after it has successfully started.
+ * If this doesn't happen we timeout and fail.
+ */
+ if (verbose)
+ printf("Setting alive marker to 0\n");
+ if (lseek(memfd, CDK_RDYADDR, SEEK_SET) != CDK_RDYADDR) {
+ fprintf(stderr,
+ "%s: lseek(%x) failed on memory device, errno=%d\n",
+ progname, CDK_RDYADDR, errno);
+ return(-1);
+ }
+ alivemarker = 0;
+ if (write(memfd, &alivemarker, 1) < 0) {
+ fprintf(stderr,
+ "%s: write to memory device failed, errno=%d\n",
+ progname, errno);
+ return(-1);
+ }
+
+/*
+ * At this point the entire image is loaded into shared memory. To start
+ * it executiong we poke the board with an interrupt.
+ */
+ if (verbose)
+ printf("Interrupting board to start slave image\n");
+ if (ioctl(memfd, STL_BINTR, 0) < 0) {
+ fprintf(stderr, "%s: ioctl(STL_BINTR) failed, errno=%d\n",
+ progname, errno);
+ return(-1);
+ }
+
+ strttime = time((time_t *) NULL);
+ if (verbose)
+ printf("Waiting for slave alive marker, time=%x timeout=%d\n",
+ strttime, TIMEOUT);
+ while (time((time_t *) NULL) < (strttime + TIMEOUT)) {
+ if (lseek(memfd, CDK_RDYADDR, SEEK_SET) != CDK_RDYADDR) {
+ fprintf(stderr,
+ "%s: lseek(%x) failed on memory device, "
+ "errno=%d\n", progname, CDK_RDYADDR, errno);
+ return(-1);
+ }
+ if (read(memfd, &alivemarker, 1) < 0){
+ fprintf(stderr,
+ "%s: read of image file failed, errno=%d\n",
+ progname, errno);
+ return(-1);
+ }
+ if (alivemarker == CDK_ALIVEMARKER)
+ break;
+ }
+
+ if (alivemarker != CDK_ALIVEMARKER) {
+ fprintf(stderr, "%s: slave image failed to start\n", progname);
+ return(-1);
+ }
+
+ if (lseek(memfd, CDK_RDYADDR, SEEK_SET) != CDK_RDYADDR) {
+ fprintf(stderr,
+ "%s: lseek(%x) failed on memory device, errno=%d\n",
+ progname, CDK_RDYADDR, errno);
+ return(-1);
+ }
+ alivemarker = 0;
+ if (write(memfd, &alivemarker, 1) < 0) {
+ fprintf(stderr, "%s: write to memory device failed, errno=%d\n",
+ progname, errno);
+ return(-1);
+ }
+
+ if (verbose)
+ printf("Slave image started successfully\n");
+
+/*
+ * The last thing to do now is to get the driver started. Now that the
+ * slave is operational it must read in the memory map and gets its
+ * internal tables initialized.
+ */
+ if (verbose)
+ printf("Driver initializing host shared memory interface\n");
+ if (ioctl(memfd, STL_BSTART, 0) < 0) {
+ fprintf(stderr, "%s: ioctl(STL_BSTART) failed, errno=%d\n",
+ progname, errno);
+ return(-1);
+ }
+
+ close(memfd);
+ return(0);
+}
+
+/*****************************************************************************/
+
+void main(int argc, char *argv[])
+{
+ struct stat statinfo;
+ int optind, c;
+
+ optind = 0;
+ progname = argv[0];
+
+ while ((c = getopt(argc, argv, "hvVRB:i:b:d:t:r:")) != -1) {
+ switch (c) {
+ case 'V':
+ printf("%s version %s\n", progname, version);
+ exit(0);
+ break;
+ case 'B':
+ feature.banner = atol(optarg);
+ break;
+ case 'h':
+ usage();
+ break;
+ case 'v':
+ verbose++;
+ break;
+ case 'i':
+ image = optarg;
+ break;
+ case 'R':
+ reset++;
+ break;
+ case 'b':
+ brdnr = atoi(optarg);
+ break;
+ case 'd':
+ memdevice = optarg;
+ break;
+ case 't':
+ feature.txrqsize = atol(optarg);
+ break;
+ case 'r':
+ feature.rxrqsize = atol(optarg);
+ break;
+ case '?':
+ default:
+ usage();
+ break;
+ }
+ }
+
+ if (memdevice == (char *) NULL) {
+ if ((brdnr < 0) || (brdnr >= 8)) {
+ fprintf(stderr,
+ "%s: invalid board number %d specified\n",
+ progname, brdnr);
+ exit(1);
+ }
+ sprintf(devstr, defdevice, brdnr);
+ memdevice = &devstr[0];
+ if (verbose)
+ printf("Using shared memory device %s\n", memdevice);
+ }
+
+ if (verbose)
+ printf("Downloading image %s to board %d\n", image, brdnr);
+
+/*
+ * Check that the shared memory device exits and is a character device.
+ */
+ if (stat(memdevice, &statinfo) < 0) {
+ fprintf(stderr, "%s: memory device %s does not exist\n",
+ progname, memdevice);
+ exit(1);
+ }
+ if ((statinfo.st_mode & S_IFMT) != S_IFCHR) {
+ fprintf(stderr, "%s: memory device %s is not a char device\n",
+ progname, memdevice);
+ exit(1);
+ }
+
+ if (stat(image, &statinfo) < 0) {
+ fprintf(stderr, "%s: image file %s does not exist\n",
+ progname, image);
+ exit(1);
+ }
+
+/*
+ * All argument checking is now done. So lets get this show on the road.
+ */
+ if (download() < 0)
+ exit(1);
+ exit(0);
+}
+
+/*****************************************************************************/
diff --git a/usr.sbin/stallion/stlstats/stlstats.c b/usr.sbin/stallion/stlstats/stlstats.c
new file mode 100644
index 000000000000..fcce5c6ae873
--- /dev/null
+++ b/usr.sbin/stallion/stlstats/stlstats.c
@@ -0,0 +1,603 @@
+/*****************************************************************************/
+
+/*
+ * stlstats.c -- stallion intelligent multiport stats display.
+ *
+ * Copyright (c) 1994-1996 Greg Ungerer (gerg@stallion.oz.au).
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Greg Ungerer.
+ * 4. Neither the name of the author nor the names of any co-contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*****************************************************************************/
+
+#include <stdio.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <time.h>
+#include <ncurses.h>
+#include <sys/stat.h>
+#include <sys/ioctl.h>
+
+#include "cdk.h"
+#include "comstats.h"
+
+/*****************************************************************************/
+
+char *version = "0.0.5";
+char *defdevice = "/dev/staliomem0";
+
+char *progname;
+char *ctrldevice;
+int ctrlfd;
+int displaybrdnr = 0;
+int displaypanelnr = 0;
+int displayportnr = 0;
+int displayportbank = 0;
+
+#define MAXBRDS 8
+#define MAXPORTS 32
+
+combrd_t brdstats;
+comstats_t stats[MAXPORTS];
+
+char *line = " ";
+
+/*****************************************************************************/
+
+/*
+ * Declare internal function prototypes here.
+ */
+void usage(void);
+void useportdevice(char *devname);
+void localexit(int nr);
+void menuport();
+void displayport();
+void menuallports();
+void displayallports();
+void getallstats();
+void getbrdstats();
+void clearportstats();
+void clearallstats();
+
+/*****************************************************************************/
+
+void usage()
+{
+ fprintf(stderr, "Usage: %s [-hVbpdc]\n\n", progname);
+ fprintf(stderr, " -h print this information\n");
+ fprintf(stderr, " -V show version information and exit\n");
+ fprintf(stderr, " -b display board\n");
+ fprintf(stderr, " -p display panel\n");
+ fprintf(stderr, " -d display port device stats\n");
+ fprintf(stderr, " -c specify control device to use\n");
+ exit(0);
+}
+
+/*****************************************************************************/
+
+void useportdevice(char *devname)
+{
+ struct stat statinfo;
+ int portnr, portcnt;
+ int i, fd;
+
+ if (stat(devname, &statinfo) < 0) {
+ fprintf(stderr, "%s: port device %s does not exist\n",
+ progname, devname);
+ exit(1);
+ }
+ if ((statinfo.st_mode & S_IFMT) != S_IFCHR) {
+ fprintf(stderr, "%s: port device %s is not a char device\n",
+ progname, devname);
+ exit(1);
+ }
+
+ displaybrdnr = (statinfo.st_rdev & 0x00700000) >> 20;
+ portnr = (statinfo.st_rdev & 0x1f) |
+ ((statinfo.st_rdev & 0x00010000) >> 11);
+ getbrdstats();
+ if (brdstats.ioaddr == 0) {
+ fprintf(stderr, "%s: device %s does not exist\n", progname,
+ devname);
+ exit(1);
+ }
+
+ for (portcnt = 0, i = 0; (i < brdstats.nrpanels); i++) {
+ if ((portnr >= portcnt) &&
+ (portnr < (portcnt + brdstats.panels[i].nrports)))
+ break;
+ portcnt += brdstats.panels[i].nrports;
+ }
+ if (i >= brdstats.nrpanels) {
+ fprintf(stderr, "%s: device %s does not exist\n", progname,
+ devname);
+ exit(1);
+ }
+ displaypanelnr = i;
+ displayportnr = portnr - portcnt;
+ if (displayportnr >= 16)
+ displayportbank = 16;
+}
+
+/*****************************************************************************/
+
+/*
+ * Get the board stats for the current display board.
+ */
+
+void getbrdstats()
+{
+ brdstats.brd = displaybrdnr;
+ if (ioctl(ctrlfd, COM_GETBRDSTATS, &brdstats) < 0)
+ memset((combrd_t *) &brdstats, 0, sizeof(combrd_t));
+}
+
+/*****************************************************************************/
+
+/*
+ * Zero out stats for the current display port.
+ */
+
+void clearportstats()
+{
+ stats[displayportnr].brd = displaybrdnr;
+ stats[displayportnr].panel = displaypanelnr;
+ stats[displayportnr].port = displayportnr;
+ ioctl(ctrlfd, COM_CLRPORTSTATS, &stats[displayportnr]);
+}
+
+/*****************************************************************************/
+
+/*
+ * Zero out all stats for all ports on all boards.
+ */
+
+void clearallstats()
+{
+ int brdnr, panelnr, portnr;
+
+ for (brdnr = 0; (brdnr < MAXBRDS); brdnr++) {
+ for (panelnr = 0; (panelnr < COM_MAXPANELS); panelnr++) {
+ for (portnr = 0; (portnr < MAXPORTS); portnr++) {
+ stats[0].brd = brdnr;
+ stats[0].panel = panelnr;
+ stats[0].port = portnr;
+ ioctl(ctrlfd, COM_CLRPORTSTATS, &stats[0]);
+ }
+ }
+ }
+}
+
+/*****************************************************************************/
+
+/*
+ * Get the stats for the current display board/panel.
+ */
+
+void getallstats()
+{
+ int i;
+
+ for (i = 0; (i < brdstats.panels[displaypanelnr].nrports); i++) {
+ stats[i].brd = displaybrdnr;
+ stats[i].panel = displaypanelnr;
+ stats[i].port = i;
+ if (ioctl(ctrlfd, COM_GETPORTSTATS, &stats[i]) < 0) {
+ fprintf(stderr, "\n\r\nERROR: ioctl(COM_GETPORTSTATS) "
+ "failed, errno=%d\n\r\n", errno);
+ localexit(1);
+ }
+ }
+}
+
+/*****************************************************************************/
+
+/*
+ * Display the per ports stats screen.
+ */
+
+void displayport()
+{
+ mvprintw(0, 0, "STALLION SERIAL PORT STATISTICS");
+ mvprintw(2, 0,
+ "Board=%d Type=%d HwID=%02x State=%06x TotalPorts=%d",
+ displaybrdnr, brdstats.type, brdstats.hwid, brdstats.state,
+ brdstats.nrports);
+ mvprintw(3, 0, "Panel=%d HwID=%02x Ports=%d", displaypanelnr,
+ brdstats.panels[displaypanelnr].hwid,
+ brdstats.panels[displaypanelnr].nrports);
+
+ attron(A_REVERSE);
+ mvprintw(5, 0, line);
+ mvprintw(5, 0, "Port=%d ", displayportnr);
+ attroff(A_REVERSE);
+
+ mvprintw(7, 0, "STATE: State=%08x", stats[displayportnr].state);
+ mvprintw(7, 29, "Tty=%08x", stats[displayportnr].ttystate);
+ mvprintw(7, 47, "Flags=%08x", stats[displayportnr].flags);
+ mvprintw(7, 65, "HwID=%02x", stats[displayportnr].hwid);
+
+ mvprintw(8, 0, "CONFIG: Cflag=%08x", stats[displayportnr].cflags);
+ mvprintw(8, 29, "Iflag=%08x", stats[displayportnr].iflags);
+ mvprintw(8, 47, "Oflag=%08x", stats[displayportnr].oflags);
+ mvprintw(8, 65, "Lflag=%08x", stats[displayportnr].lflags);
+
+ mvprintw(10, 0, "TX DATA: Total=%d", stats[displayportnr].txtotal);
+ mvprintw(10, 29, "Buffered=%d ", stats[displayportnr].txbuffered);
+ mvprintw(11, 0, "RX DATA: Total=%d", stats[displayportnr].rxtotal);
+ mvprintw(11, 29, "Buffered=%d ", stats[displayportnr].rxbuffered);
+ mvprintw(12, 0, "RX ERRORS: Parity=%d", stats[displayportnr].rxparity);
+ mvprintw(12, 29, "Framing=%d", stats[displayportnr].rxframing);
+ mvprintw(12, 47, "Overrun=%d", stats[displayportnr].rxoverrun);
+ mvprintw(12, 65, "Lost=%d", stats[displayportnr].rxlost);
+
+ mvprintw(14, 0, "FLOW TX: Xoff=%d", stats[displayportnr].txxoff);
+ mvprintw(14, 29, "Xon=%d", stats[displayportnr].txxon);
+#if 0
+ mvprintw(14, 47, "CTSoff=%d", stats[displayportnr].txctsoff);
+ mvprintw(14, 65, "CTSon=%d", stats[displayportnr].txctson);
+#endif
+ mvprintw(15, 0, "FLOW RX: Xoff=%d", stats[displayportnr].rxxoff);
+ mvprintw(15, 29, "Xon=%d", stats[displayportnr].rxxon);
+ mvprintw(15, 47, "RTSoff=%d", stats[displayportnr].rxrtsoff);
+ mvprintw(15, 65, "RTSon=%d", stats[displayportnr].rxrtson);
+
+ mvprintw(17, 0, "OTHER: TXbreaks=%d",
+ stats[displayportnr].txbreaks);
+ mvprintw(17, 29, "RXbreaks=%d", stats[displayportnr].rxbreaks);
+ mvprintw(17, 47, "Modem=%d", stats[displayportnr].modem);
+
+ mvprintw(19, 0, "SIGNALS: DCD=%d DTR=%d CTS=%d RTS=%d "
+ "DSR=%d RI=%d",
+ (stats[displayportnr].signals & TIOCM_CD) ? 1 : 0,
+ (stats[displayportnr].signals & TIOCM_DTR) ? 1 : 0,
+ (stats[displayportnr].signals & TIOCM_CTS) ? 1 : 0,
+ (stats[displayportnr].signals & TIOCM_RTS) ? 1 : 0,
+ (stats[displayportnr].signals & TIOCM_DSR) ? 1 : 0,
+ (stats[displayportnr].signals & TIOCM_RI) ? 1 : 0);
+
+ attron(A_REVERSE);
+ mvprintw(22, 0, line);
+ attroff(A_REVERSE);
+
+ mvprintw(24, 19, "(q=Quit,0123456789abcdef=Port,Z=ZeroStats)");
+ refresh();
+}
+
+/*****************************************************************************/
+
+/*
+ * Continuously update and display the per ports stats screen.
+ * Also checks for keyboard input, and processes it as appropriate.
+ */
+
+void menuport()
+{
+ int ch, done;
+
+ clear();
+ done = 0;
+
+ while ((ch = getch()) != 27) {
+ switch (ch) {
+ case ERR:
+ break;
+ case ' ':
+ refresh();
+ break;
+ case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ ch = (ch - 'a' + '0' + 10);
+ /* fall thru */
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ ch -= '0';
+ if (ch >= brdstats.panels[displaypanelnr].nrports) {
+ beep();
+ } else {
+ displayportnr = displayportbank + ch;
+ clear();
+ }
+ break;
+ case 'Z':
+ clearportstats();
+ clear();
+ break;
+ case 'q':
+ done = 1;
+ break;
+ default:
+ beep();
+ break;
+ }
+
+ if (done)
+ break;
+
+ getallstats();
+ displayport();
+ }
+}
+
+/*****************************************************************************/
+
+/*
+ * Display the all ports stats screen.
+ */
+
+void displayallports()
+{
+ int i, nrports, portnr;;
+
+ nrports = brdstats.panels[displaypanelnr].nrports;
+
+ mvprintw(0, 0, "STALLION SERIAL PORT STATISTICS");
+ mvprintw(2, 0, "Board=%d Type=%d HwID=%02x State=%06x TotalPorts=%d",
+ displaybrdnr, brdstats.type, brdstats.hwid, brdstats.state,
+ brdstats.nrports);
+ mvprintw(3, 0, "Panel=%d HwID=%02x Ports=%d", displaypanelnr,
+ brdstats.panels[displaypanelnr].hwid, nrports);
+
+ attron(A_REVERSE);
+ mvprintw(5, 0, "Port State Tty Flags Cflag Iflag Oflag Lflag "
+ "Sigs TX Total RX Total ");
+ attroff(A_REVERSE);
+
+ if (nrports > 0) {
+ if (nrports > 16)
+ nrports = 16;
+ portnr = displayportbank;
+ for (i = 0; (i < nrports); i++, portnr++) {
+ mvprintw((6 + i), 1, "%2d", portnr);
+ mvprintw((6 + i), 5, "%06x", stats[portnr].state);
+ mvprintw((6 + i), 12, "%06x", stats[portnr].ttystate);
+ mvprintw((6 + i), 19, "%08x", stats[portnr].flags);
+ mvprintw((6 + i), 28, "%05x", stats[portnr].cflags);
+ mvprintw((6 + i), 34, "%05x", stats[portnr].iflags);
+ mvprintw((6 + i), 40, "%05x", stats[portnr].oflags);
+ mvprintw((6 + i), 46, "%05x", stats[portnr].lflags);
+ mvprintw((6 + i), 52, "%04x", stats[portnr].signals);
+ mvprintw((6 + i), 58, "%10d", stats[portnr].txtotal);
+ mvprintw((6 + i), 69, "%10d", stats[portnr].rxtotal);
+ }
+ } else {
+ mvprintw(12, 32, "NO BOARD %d FOUND", displaybrdnr);
+ i = 16;
+ }
+
+ attron(A_REVERSE);
+ mvprintw((6 + i), 0, line);
+ attroff(A_REVERSE);
+
+ mvprintw(24, 14,
+ "(q=Quit,01234567=Board,n=Panels,p=Ports,Z=ZeroStats)");
+ refresh();
+}
+
+/*****************************************************************************/
+
+/*
+ * Continuously update and display the all ports stats screen.
+ * Also checks for keyboard input, and processes it as appropriate.
+ */
+
+void menuallports()
+{
+ int ch, done;
+
+ clear();
+ getbrdstats();
+
+ done = 0;
+ while ((ch = getch()) != 27) {
+ switch (ch) {
+ case ERR:
+ break;
+ case ' ':
+ refresh();
+ break;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ displaybrdnr = ch - '0';
+ displaypanelnr = 0;
+ getbrdstats();
+ if (brdstats.state == 0)
+ beep();
+ clear();
+ break;
+ case 'n':
+ if (brdstats.panels[displaypanelnr].nrports > 16) {
+ if (displayportbank == 0) {
+ displayportbank = 16;
+ clear();
+ break;
+ }
+ }
+ displayportbank = 0;
+ displaypanelnr++;
+ if (displaypanelnr >= brdstats.nrpanels)
+ displaypanelnr = 0;
+ clear();
+ break;
+ case 'p':
+ if (brdstats.panels[displaypanelnr].nrports > 0) {
+ displayportnr = displayportbank;
+ menuport();
+ clear();
+ } else {
+ beep();
+ }
+ break;
+ case 'Z':
+ clearallstats();
+ clear();
+ break;
+ case 'q':
+ done = 1;
+ break;
+ default:
+ beep();
+ break;
+ }
+
+ if (done)
+ break;
+
+ getallstats();
+ displayallports();
+ }
+}
+
+/*****************************************************************************/
+
+/*
+ * A local exit routine - shuts down curses before exiting.
+ */
+
+void localexit(int nr)
+{
+ refresh();
+ endwin();
+ exit(nr);
+}
+
+/*****************************************************************************/
+
+void main(int argc, char *argv[])
+{
+ struct stat statinfo;
+ int optind, c, useport;
+ char *portdev;
+
+ optind = 0;
+ progname = argv[0];
+ ctrldevice = defdevice;
+ useport = 0;
+
+ while ((c = getopt(argc, argv, "hvVb:p:d:c:")) != -1) {
+ switch (c) {
+ case 'V':
+ printf("%s version %s\n", progname, version);
+ exit(0);
+ break;
+ case 'h':
+ usage();
+ break;
+ case 'b':
+ displaybrdnr = atoi(optarg);
+ break;
+ case 'p':
+ displaypanelnr = atoi(optarg);
+ break;
+ case 'd':
+ useport++;
+ portdev = optarg;
+ break;
+ case 'c':
+ ctrldevice = optarg;
+ break;
+ case '?':
+ default:
+ usage();
+ break;
+ }
+ }
+
+/*
+ * Check that the control device exits and is a character device.
+ */
+ if (stat(ctrldevice, &statinfo) < 0) {
+ fprintf(stderr, "%s: control device %s does not exist\n",
+ progname, ctrldevice);
+ exit(1);
+ }
+ if ((statinfo.st_mode & S_IFMT) != S_IFCHR) {
+ fprintf(stderr, "%s: control device %s is not a char device\n",
+ progname, ctrldevice);
+ exit(1);
+ }
+ if ((ctrlfd = open(ctrldevice, O_RDWR)) < 0) {
+ fprintf(stderr, "%s: open of %s failed, errno=%d\n", progname,
+ ctrldevice, errno);
+ exit(1);
+ }
+
+/*
+ * Validate the panel number supplied by user. We do this now since we
+ * need to have parsed the entire command line first.
+ */
+ getbrdstats();
+ if (displaypanelnr >= brdstats.nrpanels)
+ displaypanelnr = 0;
+
+ if (useport)
+ useportdevice(portdev);
+
+/*
+ * Everything is now ready, lets go!
+ */
+ initscr();
+ cbreak();
+ halfdelay(5);
+ noecho();
+ clear();
+ if (useport) {
+ menuport();
+ clear();
+ }
+ menuallports();
+ refresh();
+ endwin();
+
+ close(ctrlfd);
+ printf("\n");
+ exit(0);
+}
+
+/*****************************************************************************/