|
|
coherent
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()
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.