summaryrefslogtreecommitdiff
path: root/rdoff/rdf2bin.c
diff options
context:
space:
mode:
Diffstat (limited to 'rdoff/rdf2bin.c')
-rw-r--r--rdoff/rdf2bin.c143
1 files changed, 70 insertions, 73 deletions
diff --git a/rdoff/rdf2bin.c b/rdoff/rdf2bin.c
index aee6afb2..ac51c0ef 100644
--- a/rdoff/rdf2bin.c
+++ b/rdoff/rdf2bin.c
@@ -12,124 +12,121 @@
long origin = 0;
int align = 16;
-char *getfilename(char * pathname)
+char *getfilename(char *pathname)
{
- char * lastslash = pathname - 1;
- char * i = pathname;
+ char *lastslash = pathname - 1;
+ char *i = pathname;
- while ( *i ) {
- if (*i == '/') lastslash = i;
- i++;
+ while (*i) {
+ if (*i == '/')
+ lastslash = i;
+ i++;
}
return lastslash + 1;
}
int main(int argc, char **argv)
{
- rdfmodule * m;
- int tmp;
- FILE *of;
- char * padding;
- int codepad, datapad, bsspad=0;
+ rdfmodule *m;
+ int tmp;
+ FILE *of;
+ char *padding;
+ int codepad, datapad, bsspad = 0;
if (argc < 2) {
- puts("Usage: rdf2bin [-o relocation-origin] [-p segment-alignment] "
- "input-file output-file");
- puts(" rdf2com [-p segment-alignment] input-file output-file");
- return 1;
+ puts("Usage: rdf2bin [-o relocation-origin] [-p segment-alignment] " "input-file output-file");
+ puts(" rdf2com [-p segment-alignment] input-file output-file");
+ return 1;
}
- if (! nasm_stricmp(getfilename(*argv),"rdf2com")) {
- origin = 0x100;
+ if (!nasm_stricmp(getfilename(*argv), "rdf2com")) {
+ origin = 0x100;
}
argv++, argc--;
while (argc > 2) {
- if (! strcmp(*argv,"-o")) {
- argv++, argc--;
- origin = readnum(*argv, &tmp);
- if (tmp) {
- fprintf(stderr,"rdf2bin: invalid parameter: %s\n",*argv);
- return 1;
- }
- } else if (! strcmp(*argv,"-p")) {
- argv++, argc--;
- align = readnum(*argv, &tmp);
- if (tmp) {
- fprintf(stderr,"rdf2bin: invalid parameter: %s\n",*argv);
- return 1;
- }
- } else if (! strcmp(*argv,"-b")) {
- argv++, argc--;
- bsspad = readnum(*argv, &tmp);
- if (tmp) {
- fprintf(stderr,"rdf2bin: invalid parameter: %s\n",*argv);
- return 1;
- }
- } else
- break;
-
- argv++, argc--;
+ if (!strcmp(*argv, "-o")) {
+ argv++, argc--;
+ origin = readnum(*argv, &tmp);
+ if (tmp) {
+ fprintf(stderr, "rdf2bin: invalid parameter: %s\n", *argv);
+ return 1;
+ }
+ } else if (!strcmp(*argv, "-p")) {
+ argv++, argc--;
+ align = readnum(*argv, &tmp);
+ if (tmp) {
+ fprintf(stderr, "rdf2bin: invalid parameter: %s\n", *argv);
+ return 1;
+ }
+ } else if (!strcmp(*argv, "-b")) {
+ argv++, argc--;
+ bsspad = readnum(*argv, &tmp);
+ if (tmp) {
+ fprintf(stderr, "rdf2bin: invalid parameter: %s\n", *argv);
+ return 1;
+ }
+ } else
+ break;
+
+ argv++, argc--;
}
if (argc < 2) {
- puts("rdf2bin: required parameter missing");
- return -1;
+ puts("rdf2bin: required parameter missing");
+ return -1;
}
m = rdfload(*argv);
- if (! m) {
- rdfperror("rdf2bin",*argv);
- return 1;
+ if (!m) {
+ rdfperror("rdf2bin", *argv);
+ return 1;
}
- printf("relocating %s: origin=%lx, align=%d\n",*argv,origin,align);
+ printf("relocating %s: origin=%lx, align=%d\n", *argv, origin, align);
m->textrel = origin;
m->datarel = origin + m->f.seg[0].length;
if (m->datarel % align != 0) {
- codepad = align - (m->datarel % align);
- m->datarel += codepad;
- }
- else
- codepad = 0;
+ codepad = align - (m->datarel % align);
+ m->datarel += codepad;
+ } else
+ codepad = 0;
m->bssrel = m->datarel + m->f.seg[1].length;
if (m->bssrel % align != 0) {
- datapad = align - (m->bssrel % align);
- m->bssrel += datapad;
- }
- else
- datapad = 0;
+ datapad = align - (m->bssrel % align);
+ m->bssrel += datapad;
+ } else
+ datapad = 0;
printf("code: %08lx\ndata: %08lx\nbss: %08lx\n",
- m->textrel, m->datarel, m->bssrel);
+ m->textrel, m->datarel, m->bssrel);
rdf_relocate(m);
argv++;
- of = fopen(*argv,"wb");
+ of = fopen(*argv, "wb");
if (!of) {
- fprintf(stderr,"rdf2bin: could not open output file %s\n",*argv);
- return 1;
+ fprintf(stderr, "rdf2bin: could not open output file %s\n", *argv);
+ return 1;
}
padding = malloc(align);
if (!padding) {
- fprintf(stderr,"rdf2bin: out of memory\n");
- return 1;
+ fprintf(stderr, "rdf2bin: out of memory\n");
+ return 1;
}
- if (fwrite(m->t,1,m->f.seg[0].length,of) != m->f.seg[0].length ||
- fwrite(padding,1,codepad,of) != codepad ||
- fwrite(m->d,1,m->f.seg[1].length,of) != m->f.seg[1].length)
- {
- fprintf(stderr,"rdf2bin: error writing to %s\n", *argv);
- return 1;
+ if (fwrite(m->t, 1, m->f.seg[0].length, of) != m->f.seg[0].length ||
+ fwrite(padding, 1, codepad, of) != codepad ||
+ fwrite(m->d, 1, m->f.seg[1].length, of) != m->f.seg[1].length) {
+ fprintf(stderr, "rdf2bin: error writing to %s\n", *argv);
+ return 1;
}
-
+
if (bsspad) {
- void *p = calloc(bsspad-=(m->bssrel - origin),1);
- fwrite(p,1,bsspad,of);
+ void *p = calloc(bsspad -= (m->bssrel - origin), 1);
+ fwrite(p, 1, bsspad, of);
}
fclose(of);