view pirollback/inopath.c @ 301:5f9932613f99

dsample-fw-disasm: finished l1_drive and its l1dmacro calls
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 05 Oct 2019 19:21:06 +0000
parents 18472a2ccf55
children
line wrap: on
line source

#include <stdio.h>
#include <stdlib.h>
#include "pathname.h"

extern char *imgfile;
extern int last_inode;

main(argc, argv)
	char **argv;
{
	int ino;
	char *strtoul_endp;
	char pathname[PATHNAME_BUF_SIZE];

	if (argc != 3) {
usage:		fprintf(stderr, "usage: %s ffs-image inode\n", argv[0]);
		exit(1);
	}
	imgfile = argv[1];
	ino = strtoul(argv[2], &strtoul_endp, 16);
	if (!argv[2][0] || *strtoul_endp)
		goto usage;
	read_img_file();
	read_inodes();
	if (ino < 1 || ino > last_inode) {
		fprintf(stderr, "%s: bad inode number specified\n", argv[0]);
		exit(1);
	}
	walk_tree();
	check_object_names();
	if (pathname_of_inode(ino, pathname) < 0) {
		fprintf(stderr, "unable to get the pathname\n");
		exit(1);
	}
	printf("%s\n", pathname);
	exit(0);
}