ITP status program

Chris Rende car at trux.UUCP
Tue Mar 12 00:11:54 AEST 1991


Nixdorf Targon M35/50 TOS 3.3 (Pyramid 9810 OSx 4.4?)

I've been having trouble with one of my ITP's dropping offline recently.
No console messages, no messages in the error log - nothing.

Since I couldn't find a way to determine the status of an ITP, I wrote the
attached simple program.

This program shows the status of a given ITP and the major/minor device
numbers of the ITP's first tty.

Check your /etc/brc (System V system initialization) for which ITP's you are
using. Or, do a `ls -lmt /dev/itp*` and use the ITP's which were last modified
at the time of your last system boot.

car.


----------- shell script "itp" -------------
for i in 40 41 42 43 44 45
do
	itpstat $i
done


----------- C program "itpstat" -------------
/* itpstat.c - Written 03/08/91 by Chris Rende */
/* Last change: 03/08/91 by Chris Rende */

#include <stdio.h>
#include <sys/types.h>
#include <sys/itpdefs.h>
#include <sys/itpcpu.h>
#include <sys/ioctl.h>

int main(argc,argv)
	int argc;
	char *argv[]; {
	FILE *itp;
	struct ioctlitp ioctlitp;
	char name[30];

	if (argc!=2) {
		fprintf(stderr,"Usage: itpstat <itp#>\n");
		exit(0);
	} /* if */

	strcpy(name,"/dev/itp");
	strcat(name,argv[1]);
	itp=fopen(name,"r");
	if (itp==NULL) {
		fprintf(stderr,"Can't open itp: '%s'\n",name);
		perror("itpstat");
		exit(1);
	} /* if */

	/* Might do an ITPUPDATE first... */

	ioctl(fileno(itp),ITPSTATE,&ioctlitp);

	printf("itp: %s status: %d",argv[1],ioctlitp.status);
	if (ioctlitp.status==VIRGIN) printf(" (VIRGIN)");
	if (ioctlitp.status==INITED) printf(" (INITED)");
	if (ioctlitp.status==RUNNING) printf(" (RUNNING)");
	if (ioctlitp.status==BROKEN) printf(" (BROKEN)");
	/* printf(" value: %d",ioctlitp.value); */
	/* printf(" addr: %d",ioctlitp.addr); */
	/* printf("\n"); */

	ioctl(fileno(itp),ITPGETDEV,&ioctlitp);
	/* printf("itp: %s status: %d",argv[1],ioctlitp.status); */
	printf(" major: %d minor: %d",(ioctlitp.status&0xff00)>>8,(ioctlitp.status&0xff));
	/* printf(" value: %d",ioctlitp.value); */
	/* printf(" addr: %d",ioctlitp.addr); */
	printf("\n");

	fclose(itp);
} /* itpstat */
-- 
Christopher A. Rende           Central Cartage (Nixdorf/Pyramid/SysVR2/BSD4.3)
uunet!edsews!rphroy!trux!car   Multics,DTSS,Unix,Shortwave,Scanners,UnixPC/3B1
trux!car at uunet.uu.net          Minix 1.2,PC/XT,Mac+,TRS-80 Model I,1802 ELF
trux!ramecs!car     "I don't ever remember forgetting anything." - Chris Rende



More information about the Comp.sys.pyramid mailing list