coff32xsetidx.c (555B)
1 #include <stdio.h> 2 #include <string.h> 3 4 #include <scc/mach.h> 5 6 #include "../libmach.h" 7 #include "fun.h" 8 9 int 10 coff32xsetidx(int order, long nsyms, char *names[], long offs[], FILE *fp) 11 { 12 long i, n; 13 size_t len; 14 unsigned char buff[4]; 15 16 pack(order, buff, "l", nsyms); 17 fwrite(buff, 4, 1, fp); 18 n = 4; 19 20 for (i = 0; i < nsyms; i++) { 21 pack(order, buff, "l", offs[i]); 22 fwrite(buff, 4, 1, fp); 23 n += 4; 24 } 25 26 for (i = 0; i < nsyms; i++) { 27 len = strlen(names[i]) + 1; 28 fwrite(names[i], len, 1, fp); 29 n += len; 30 } 31 32 return fflush(fp) == EOF ? -1 : 0; 33 }