USG_PG3/usr/source/cmd6/telinit.c

#
#define  SINGLE  7
#define  REBOOT  ~7
#define  SHUP  1
#define  SINT  2
#define  SBUS  10
#define  SSEG  11
#define EGOOD	0
#define EBAD	1
main(argc,argv)
char  **argv;
{
	register i,pid;
	++argv;
	pid = 1;
	if((*argv)[1] != 0){
		printf("Illegal argument\n");
		exit(EBAD);
	}
	switch(**argv){
		case 'Q':	/*Query lines file*/
			kill(pid,SHUP);
			exit(EGOOD);
		case 'R':	/*Reboot signal*/
			if(getcsw() == REBOOT)
				kill(pid,SBUS);
			else{
				printf("Illegal switch settings\n");
				exit(EBAD);
			}
			exit(EGOOD);
		case 'S':	/*Single signal*/
			if(getcsw() == SINGLE)
				kill(pid,SBUS);
			else{
				printf("Illegal switch settings\n");
				exit(EBAD);
			}
			exit(EGOOD);
		case 'a':	/*Asynchronous stimuli*/
		case 'b':
		case 'c':
			kill(pid,(**argv - 'a' + SSEG));
			exit(EGOOD);
		default :
			i = **argv - '0';
			if(i>=0 && i<= 6)
				kill(pid,i+SINT);
			else{
				printf("Illegal argument\n");
				exit(EBAD);
			}
	}
	exit(EGOOD);
}