File:  [Power 6/32 Unix Tahoe 4.2BSD] / cci / usr / src / etc / nstat / enperrors.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Sun Jul 28 12:24:30 2019 UTC (7 years ago) by root
Branches: bsd, MAIN
CVS tags: v121, HEAD
Power 6/32 Unix version 1.21

/*								*/
/*	if_enp: ACC VERSAbus Ethernet controler (v/eiu)		*/
/*								*/



#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/errno.h>

#include <net/if.h>
#include <net/netisr.h>
#include <net/route.h>
#include <netinet/in.h>
#include <netinet/ip_var.h>
#include <netinet/if_ether.h>

#include <machine/mtpr.h>
#include <tahoeif/if_enp.h> 
#include <tahoeif/if_debug.h> 
#include <sys/buf.h>
#include <vba/vbavar.h>
#include <nlist.h>
#include "nstat.h"


struct	nlist	enperr_nl[] = {
#			define	N_NUMENP	0	
	{ "_numenp" },
#			define 	N_ENPERR	1	
	{ "_enperr" },
	{ "" },
};

#define NENP		6
#define	dash	"------------------"
extern	int	kmem;
extern	char	*system;


enperrors()
{
	int	unit;

	struct	inp_err *p, enperr[NENP];

	off_t	numdev_memaddr;
	off_t	enperr_memaddr;
	int	num, Total;

	static	int	getvm = 0;

	if (!getvm) {
		nlist(system, enperr_nl);
		getvm = 1;
	}

	numdev_memaddr = enperr_nl[N_NUMENP].n_value;
	enperr_memaddr = enperr_nl[N_ENPERR].n_value;


	if ( !numdev_memaddr || !enperr_memaddr ) {
		printf("enperr: symbol not in namelist\n");
		return;
	}

	klseek(kmem, numdev_memaddr, 0);
	read(kmem, (char *)&num, sizeof (num));

	if ((num < 0) || (num > NENP)) {  
		printf("enperrors: invalid number of devices (num = %d)\n", num);
		return;
	}

	if (num == 0) {  
		printf("enperrors: no enp (driver) installed.\n");
		return;
	}

	klseek(kmem, enperr_memaddr, 0);
	read(kmem, enperr, sizeof(struct inp_err)*num);

	for (unit = 0; unit < num; unit++) {
		p = &enperr[unit];

		printf("%s Driver-level input packet errors (%s%d) %s\n",
			dash, "enp", unit, dash);
		printf("\t\t\t    ( Number of Packets )\n\n");
		printf("\t\t\t\t    No Buffer\n");
		printf("%s  %s  %s  %s  %s  %s  %s \n\n", "Device",
		        "Bad Offset", "Bad Pkt Length",
			"Host", "Enp", "Bad Packet Type",
			"Input Q Full");

		printf("ENP%d  ", unit);
		printf("%8d", p->bad_offset);
		printf("%14d", p->bad_length);
		printf("%10d", p->h_nobuffer);
		printf("%6d", p->c_nobuffer);
		printf("%12d", p->bad_packetype);
		printf("%14d\n", p->inq_full);
	}
}

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.