symName(sym, str_tab, work)
	SYMENT *sym;
	char *str_tab, *work;
coffnlist(fn, nlp, names, count)
	char *fn;	/* file name */
	SYMENT *nlp;	/* names to look up */
	char *names;	/* long names */
	int count;	/* size of passed table */
main()
symName(sym, str_tab, work)
	SYMENT *sym;
	char *str_tab, *work;
coffnlist(fn, nlp, names, count)
	char *fn;	/* file name */
	SYMENT *nlp;	/* names to look up */
	char *names;	/* long names */
	int count;	/* size of passed table */
main()
myatol( s )
	register char * s;
The size of the altered field is by default sizeof(int), but the 'value'\n\
	specification may be followed by a ':' and a 'c', 's', 'i', or 'l' to\n\
	explicitly specify a char, short, int, or long sized patch.\n\
	\
	";
	
	#include <stdio.h>
	#include <coff.h>
	#include <canon.h>
	#include <ctype.h>
	
	#include <sys/types.h>
	#include <sys/stat.h>
	#include "patch.h"
	
	/*
	 * Nlist tables and patch records.
	 */
	#define NNLS	512
	int	nnls;	/* Number of nlist elements used */
	SYMENT nl[NNLS*2];
	int	sym_len = 0;	/* Number of bytes allocated for symbols.  */
	char	*symbols=NULL;
	
	PLIST pl[NNLS];
	
	char *namep;		/* Name of object file to patch.  */
	int hotpatch = 0;	/* Are we patching /dev/kmem?  */
	int verbose = 0;	/* Are we printing feedback?  */
	int peek = 0;		/* Just peek--don't actually do the patch.  */
	
	void main();
	int getnames();
	void badsym();
	void getone();
	void setfile();
	void setkmem();
	int patch();
	long myatol();
	void usage();
	char *index();
	char *realloc();
	
	
	void
	main(argc, argv)
	int argc;
	char *argv[];
getnames(nn, npp)
	int nn;
	char **npp;
badsym(offset)
	long offset;
getone(i, np)
	int i;			/* Which'th symbol assigment is this?  */
	register char *np;	/* The symbol assignment itself.  */
setkmem(n)
	int n;
patch(fd, p)
	int fd;
	PLIST *p;
myatol( s )
	register char * s;
usage()
setfile(namep, n, pl)
	char *namep;
	int n;
	struct plist pl[];
main()
main()
