:
#
# aodmkxref (Online Diagnostics)
#


# preset the usage message
USAGE="aodmkxref usage: aodmkxref [-h]"
# determine invocation option(s)
set -- `getopt h $*`
if [ $? != 0 ]
then
	echo $USAGE
	exit 2
fi
for i in $*
do
	case $i in
	-h) HEADINGS="-h"; shift;;
	--) shift; break;;
	esac
done

# check for superuser id

if [ `logname` != "root" ]
then
	echo "Must be super-user to execute aodmkxref"
	exit 1
fi

################################################################################

#define file equates to shorten shell script lines, if not already defined
if [ ! "$xfile" ]
then
	xfile=/usr/lib/err.xref
fi

# check first if cross-ref files is present
if [ ! -f $xfile ]
then
	# cross-reference file doesn't exist; make default one
	if [ "$HEADINGS" ]
	then
		echo
		echo "No cross-reference file present; creating default version...\c"
	fi
	cat > $xfile << ?
#
# err.xref : on-line diagnostics error cross-reference file
#
hd;dnp;Disk not Present 			;
hd;dnr;Disk not Ready				;
hd;sint;Spurious Interrupts			;
hd;gen;Generic (undecoded) Hard Disk Errors	;
fd;open;Floppy Door Open (No Disk Inserted)	;
fd;prot;Floppy Disk is Write Protected		;
fd;fmt;Floppy Format Error			;
fd;ndi;CMOS - No Floppy Drives Installed 	;
fd;dnp;CMOS - Floppy not Present		;
fd;cio;General Floppy I/0 error   		;
fd;gen;Generic (undecoded) Floppy Errors	;
tp;rew;Rewind Error				;
tp;buff;Invalid Buffer Allocation		;
tp;gen;Generic (undecoded) Tape Errors		;
mdc;prt;Parity Error                            ;
mdc;232;RS232 Overrun                           ;
mdc;fram;Framing Error				;
mdc;chl;Input Char(s) Lost                      ;
mdc;ctl;Carrier Present too long		;
mdc;brp;Bad Receiver Packet			;
mdc;crc;CRC error Received			;
mdc;sdl;SDLC Receiver Overrun                   ;
mdc;nrs;No Response from Secondary              ;
mdc;bsp;Bad Secondary Packet			;
mdc;bpl;Bad Packet Length Received		;
mdc;bpc;Bad Packet Count Received		;
mdc;pba;Packet from Bad Address                 ;
mdc;gen;Generic (undecoded) Multidrop Errors	;
sio;gen;Generic (undecoded) SIO Errors		;
krn;abs;Abnormal System Shutdown		;
krn;bblk;Nonexistent Disk Block			;
krn;supr;Superblock Inconsistency		;
krn;gde;General Device Error			;
krn;ibnf;Illegal Block Number Found		;
krn;ito;Inode Table Overflow			;
krn;uint;Interrupt from Unknown Device		;
krn;sint;Stray Interrupts			;
krn;open;Too Many Open Files			;
krn;nfbl;No Free Blocks				;
krn;oin;Out of Free Inodes			;
krn;ndsk;Reference to Nonexistent Disk		;
krn;swpe;Swap Area I/O Error			;
krn;prty;Memory Parity Error			;
krn;nofs;Disappeared File System  		;
krn;iswp;Insufficient Swap Space 		;
krn;gen;Generic (undecoded) Kernel Errors	;
mis;nmi;EISA Bus NMI Error			;
mis;biob;Base I/O Error				;
mis;swap;Out of Swap Space			;
mis;pfd;Power Failure Detected			;
mis;pfi;Power Failure Ignored - Power Returned	;
mis;isp;Shutdown Procedures Initiated		;
mis;pcmp;Power Failure Shutdown Completed	;
?
	if [ "$HEADINGS" ]
	then
		echo "done"
	fi
else
	# let user know that default cross-reference file already exists
	echo "Cross-reference file /usr/lib/err.xref already exists; cannot create default"
	exit 3
fi

# done, so get out of here
exit 0

