summaryrefslogtreecommitdiff
path: root/obsolete/support/undump/Encore/dumpit.c
blob: 3090a8382035a86b5060b88924ee5063fccbd39c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <stdio.h>
#include <sys/file.h>
#include <filehdr.h>
#include <aouthdr.h>
#include <scnhdr.h>


#define MAXSCNS 16
struct filehdr hdr;
AOUTHDR       shdr;
struct scnhdr scns[MAXSCNS];
int nscns; 


main(argc,argv)
int argc;
char *argv[];
{
	
	int fd,i;
	
	if (argc < 2) {
		printf("give me a break, and a file...\n");
		exit(0);
		}
	fd = open(argv[1],O_RDONLY);
	read(fd,&hdr,sizeof(struct filehdr));
	nscns = hdr.f_nscns;
	printf("magic: 		%o\n",hdr.f_magic);
	printf("sections:	%o\n",hdr.f_nscns);
	printf("timestamp:	%lo\n",hdr.f_timdat);
	printf("sym ptr:	%lo\n",hdr.f_symptr);
	printf("num sym ents:  	%lo\n",hdr.f_nsyms);
	printf("size of syshdr:	%o\n",hdr.f_opthdr);
	printf("flags:		%o\n",hdr.f_flags);
	printf("\n");
	if (hdr.f_opthdr != 0) {
		read(fd,&shdr,sizeof(AOUTHDR));
		printf("magic:		%o\n",shdr.magic);
		printf("vstamp:		%o\n",shdr.vstamp);
		printf("tsize:		%lo\n",shdr.tsize);
		printf("dsize:		%lo\n",shdr.dsize);
		printf("bsize:		%lo\n",shdr.bsize);
		printf("msize:		%lo\n",shdr.msize);
		printf("mod_start:	%lo\n",shdr.mod_start);
		printf("entry:		%lo\n",shdr.entry);
		printf("text_start:	%lo\n",shdr.text_start);
		printf("data_start:	%lo\n",shdr.data_start);
		printf("entry_mod:	%lo\n",shdr.entry_mod);
		printf("flags:		%o\n",shdr.flags);
		printf("\n");
		}
        for(i=0;(i != nscns);i++) {
	  	read(fd,&scns[i],sizeof(struct scnhdr));
		}
	for(i=0;(i != nscns);i++) {
		printf("name:		%s\n",scns[i].s_name);
		printf("paddr:		%lo\n",scns[i].s_paddr);
		printf("vaddr:		%lo\n",scns[i].s_vaddr);
		printf("size:		%lo\n",scns[i].s_size);
		printf("scnptr:		%lo\n",scns[i].s_scnptr);
		printf("relptr:		%lo\n",scns[i].s_relptr);
		printf("lnnoptr:	%lo\n",scns[i].s_lnnoptr);
		printf("nreloc:		%o\n",scns[i].s_nreloc);
		printf("nlnno:		%o\n",scns[i].s_nlnno);
		printf("flags:		%lo\n",scns[i].s_flags);
		printf("symptr:		%lo\n",scns[i].s_symptr);
		printf("modno:		%o\n",scns[i].s_modno);
		printf("\n");
		}
	close(fd);
	}