;;; -*- Mode:Lisp; Readtable:CL; Package:USER; Base:10; Patch-File:T -*-
;;; Patch file for System version 123.22
;;; Reason:
;;;  ethernet:exos-stats shouldn't bomb out on systems without Excelan boards
;;; Written 1-Oct-87 16:54:22 by pld at site LMI Cambridge
;;; while running on Jack Flanders from band 2
;;; with Experimental System 123.20, Experimental Local-File 73.0, Experimental FILE-Server 22.0, Experimental Unix-Interface 11.0, Experimental Tape 18.0, Experimental KERMIT 34.0, Experimental ZMail 71.0, Experimental Lambda-Diag 15.0, microcode 1754, SDU Boot Tape 3.12, SDU ROM 8.



; From modified file DJ: L.NETWORK.DRIVERS; EXCELAN.LISP#137 at 1-Oct-87 17:01:34
#10R ETHERNET#: 
(COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "ETHERNET")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; DRIVERS; EXCELAN  "

(defun exos-stats (&key (format-stream t) (reset-p nil) (print-p t))
  "Print exos board statistics."
  (cond ((null *excelan-owner*)
	 (format format-stream "~&This backplane doesn't have an Excelan board."))
	((not (i-own-excelan))
	 (format format-stream "~&This processor doesn't own the Excelan board."))
	((null *excelan-ethernet-interface*)
	 (format format-stream "~&The Excelan board is not configured."))
	((not (exc-enabled *excelan-ethernet-interface*))
	 (format format-stream "~&The Excelan board is not enabled."))
	(t
	 (with-lock (stats-array-lock)
	   (array-initialize stats-array 0)
	   (link-net-ststcs stats-array reset-p)
	   
	   (when print-p
	     (format format-stream "~
~%*******************************************************~
~% frames transmitted:                     ~12d.~
~%-------------------------------------------------------~
~% frames aborted due to excess collisions:~12d.~
~%-------------------------------------------------------~
~% time domain reflectometer:              ~12d.~
~%-------------------------------------------------------~
~% frames received:                        ~12d.~
~%-------------------------------------------------------~
~% frames received with alignment errors:  ~12d.~
~%-------------------------------------------------------~
~% frames received with crc errors:        ~12d.~
~%-------------------------------------------------------~
~% frames lost (no receive buffers):       ~12d.~
~%*******************************************************~
~%"
		     (read-long stats-array 0 'exbdstats-xmt)
		     (read-long stats-array 0 'exbdstats-excess-coll)
		     (read-long stats-array 0 'exbdstats-tdr)
		     (read-long stats-array 0 'exbdstats-rcv)
		     (read-long stats-array 0 'exbdstats-align-err)
		     (read-long stats-array 0 'exbdstats-crc-err)
		     (read-long stats-array 0 'exbdstats-lost-err)))))))

))
