FreeCalypso > hg > freecalypso-reveng
view ticoff/main.c @ 118:193926ccd1ec
tiobjd: better handling of section-relative relocs
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Thu, 03 Apr 2014 07:47:03 +0000 |
parents | 0f94d17899b3 |
children | 2c6b1319383b |
line wrap: on
line source
/* * tiobjd main() function and command dispatch */ #include <sys/types.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <strings.h> #include "globals.h" extern int cmd_basics(); extern int cmd_disasm(); extern int cmd_nm(); extern int cmd_profile(); extern int cmd_rawrel(); extern int cmd_reloc(); extern int cmd_sechdr(); extern int cmd_symtab(); extern int dump_filehdr_info(); static struct cmdtab { char *cmd; int (*func)(); } cmdtab[] = { {"basics", cmd_basics}, {"disasm", cmd_disasm}, {"dumpsym", cmd_symtab}, /* backward compat */ {"hdr", dump_filehdr_info}, {"nm", cmd_nm}, {"profile", cmd_profile}, {"rawrel", cmd_rawrel}, {"reloc", cmd_reloc}, {"sechdr", cmd_sechdr}, {"symtab", cmd_symtab}, {0, 0} }; main(argc, argv) char **argv; { struct cmdtab *tp; if (argc != 3) { fprintf(stderr, "usage: %s <objfile> <op>\n", argv[0]); exit(1); } objfilename = argv[1]; mmap_objfile(); initial_parse_hdr(); for (tp = cmdtab; tp->cmd; tp++) if (!strcmp(tp->cmd, argv[2])) break; if (!tp->func) { fprintf(stderr, "\"%s\": unknown or unimplemented command\n", argv[2]); exit(1); } return tp->func(); }