57 |
|
{ |
58 |
|
fputs(HDRSTR, fp); |
59 |
|
fputs(s, fp); |
60 |
< |
putc('\n', fp); |
60 |
> |
fputc('\n', fp); |
61 |
|
} |
62 |
|
|
63 |
|
|
209 |
|
FILE *fp |
210 |
|
) |
211 |
|
{ |
212 |
+ |
int align = 0; |
213 |
+ |
|
214 |
|
fputs(FMTSTR, fp); |
215 |
|
fputs(s, fp); |
216 |
< |
putc('\n', fp); |
216 |
> |
/* pad to align binary type for mmap() */ |
217 |
> |
if (!strncmp(s, "16-bit", 6)) |
218 |
> |
align = 2; |
219 |
> |
else if (!strcmp(s, "float") || !strncmp(s, "32-bit", 6)) |
220 |
> |
align = 4; |
221 |
> |
else if (!strcmp(s, "double") || !strncmp(s, "64-bit", 6)) |
222 |
> |
align = 8; |
223 |
> |
if (align) { |
224 |
> |
long pos = ftell(fp); |
225 |
> |
if (pos >= 0) { |
226 |
> |
pos = (pos + 2) % align; |
227 |
> |
if (pos) align -= pos; |
228 |
> |
else align = 0; |
229 |
> |
} else |
230 |
> |
align = 0; |
231 |
> |
} |
232 |
> |
while (align-- > 0) |
233 |
> |
putc(' ', fp); |
234 |
> |
fputc('\n', fp); |
235 |
|
} |
236 |
|
|
237 |
|
|