view ticoff/main.c @ 79:8f4996bff904

tiobjd: profile operation implemented
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Wed, 26 Mar 2014 02:00:44 +0000
parents 590396e27e96
children 192da19c7506
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_profile();
extern int cmd_sechdr();
extern int cmd_symtab();
extern int dump_filehdr_info();

static struct cmdtab {
	char	*cmd;
	int	(*func)();
} cmdtab[] = {
	{"basics", cmd_basics},
	{"dumpsym", cmd_symtab},	/* backward compat */
	{"hdr", dump_filehdr_info},
	{"profile", cmd_profile},
	{"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();
}