scc

simple c99 compiler
git clone git://git.simple-cc.org/scc
Log | Files | Refs | Submodules | README | LICENSE

setmap.c (560B)


      1 #include <stdio.h>
      2 #include <string.h>
      3 
      4 #include <scc/mach.h>
      5 
      6 #include "libmach.h"
      7 
      8 int
      9 setmap(Map *map,
     10        char *name,
     11        FILE *fp,
     12        unsigned long long begin,
     13        unsigned long long end,
     14        long off)
     15 {
     16 	int n;
     17 	Mapsec *sec;
     18 
     19 	n = map->n;
     20 	for (sec = map->sec; n--; sec++) {
     21 		if (!sec->name || !strcmp(sec->name, name))
     22 			goto found;
     23 	}
     24 
     25 	if ((map = remap(map, map->n+1 )) == NULL)
     26 		return -1;
     27 	sec = &map->sec[map->n-1];
     28 
     29 found:
     30 	sec->name = name;
     31 	sec->fp = fp,
     32 	sec->begin = begin;
     33 	sec->end = end;
     34 	sec->offset = off;
     35 	return 0;
     36 }