coff32loadmap.c (552B)
1 #include <stdio.h> 2 3 #include <scc/mach.h> 4 #include <scc/coff32.h> 5 6 #include "../libmach.h" 7 #include "fun.h" 8 9 Map * 10 coff32loadmap(Obj *obj, FILE *fp) 11 { 12 int i, nsec; 13 Section sec; 14 Map *map; 15 FILE *src; 16 SCNHDR *scn; 17 struct coff32 *coff = obj->data; 18 FILHDR *hdr = &coff->hdr; 19 20 nsec = hdr->f_nscns; 21 if ((map = newmap(nsec, 0)) == NULL) 22 return NULL; 23 24 for (i = 0; getsec(obj, &i, &sec); ++i) { 25 sec.offset += obj->pos; 26 src = ((sec.flags & SALLOC) != 0) ? fp : NULL; 27 28 if (mapsec(map, &sec, src, sec.size) < 0) 29 return NULL; 30 } 31 32 return map; 33 }