FreeCalypso > hg > freecalypso-reveng
annotate ticoff/main.c @ 81:192da19c7506
tiobjd: symbol sorting implemented
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Wed, 26 Mar 2014 03:23:20 +0000 |
parents | 8f4996bff904 |
children | c20dc315a9d4 |
rev | line source |
---|---|
70 | 1 /* |
2 * tiobjd main() function and command dispatch | |
3 */ | |
4 | |
5 #include <sys/types.h> | |
6 #include <stdio.h> | |
7 #include <stdlib.h> | |
8 #include <string.h> | |
9 #include <strings.h> | |
10 #include "globals.h" | |
11 | |
77
590396e27e96
tiobjd: basics dump streamlined
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
75
diff
changeset
|
12 extern int cmd_basics(); |
81
192da19c7506
tiobjd: symbol sorting implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
79
diff
changeset
|
13 extern int cmd_nm(); |
79
8f4996bff904
tiobjd: profile operation implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
77
diff
changeset
|
14 extern int cmd_profile(); |
71
c15cd3d695c0
tiobjd: successful parsing of the section header table
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
70
diff
changeset
|
15 extern int cmd_sechdr(); |
77
590396e27e96
tiobjd: basics dump streamlined
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
75
diff
changeset
|
16 extern int cmd_symtab(); |
70 | 17 extern int dump_filehdr_info(); |
18 | |
19 static struct cmdtab { | |
20 char *cmd; | |
21 int (*func)(); | |
22 } cmdtab[] = { | |
77
590396e27e96
tiobjd: basics dump streamlined
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
75
diff
changeset
|
23 {"basics", cmd_basics}, |
590396e27e96
tiobjd: basics dump streamlined
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
75
diff
changeset
|
24 {"dumpsym", cmd_symtab}, /* backward compat */ |
70 | 25 {"hdr", dump_filehdr_info}, |
81
192da19c7506
tiobjd: symbol sorting implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
79
diff
changeset
|
26 {"nm", cmd_nm}, |
79
8f4996bff904
tiobjd: profile operation implemented
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
77
diff
changeset
|
27 {"profile", cmd_profile}, |
71
c15cd3d695c0
tiobjd: successful parsing of the section header table
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
70
diff
changeset
|
28 {"sechdr", cmd_sechdr}, |
77
590396e27e96
tiobjd: basics dump streamlined
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
75
diff
changeset
|
29 {"symtab", cmd_symtab}, |
70 | 30 {0, 0} |
31 }; | |
32 | |
33 main(argc, argv) | |
34 char **argv; | |
35 { | |
36 struct cmdtab *tp; | |
37 | |
38 if (argc != 3) { | |
39 fprintf(stderr, "usage: %s <objfile> <op>\n", argv[0]); | |
40 exit(1); | |
41 } | |
42 objfilename = argv[1]; | |
43 mmap_objfile(); | |
44 initial_parse_hdr(); | |
45 for (tp = cmdtab; tp->cmd; tp++) | |
46 if (!strcmp(tp->cmd, argv[2])) | |
47 break; | |
48 if (!tp->func) { | |
49 fprintf(stderr, "\"%s\": unknown or unimplemented command\n", | |
50 argv[2]); | |
51 exit(1); | |
52 } | |
53 return tp->func(); | |
54 } |