cbfsfile = create_cbfs_file(cbfsname, filedata, &filesize, type, &base);
if (add_file_to_cbfs(cbfsfile, filesize, base))
return 1;
- writerom(romname, rom, romsize);
+ if (writerom(romname, rom, romsize))
+ return 1;
return 0;
}
CBFS_COMPONENT_PAYLOAD, &base);
if (add_file_to_cbfs(cbfsfile, filesize, base))
return 1;
- writerom(romname, rom, romsize);
+ if (writerom(romname, rom, romsize))
+ return 1;
return 0;
}
if (add_file_to_cbfs(cbfsfile, filesize, base))
return 1;
- writerom(romname, rom, romsize);
+ if (writerom(romname, rom, romsize))
+ return 1;
return 0;
}
return romarea;
}
-void writerom(const char *filename, void *start, uint32_t size)
+int writerom(const char *filename, void *start, uint32_t size)
{
FILE *file = fopen(filename, "wb");
- fwrite(start, size, 1, file);
+ if (!file) {
+ fprintf(stderr, "Could not open '%s' for writing: ", filename);
+ perror("");
+ return 1;
+ }
+
+ if (fwrite(start, size, 1, file) != 1) {
+ fprintf(stderr, "Could not write to '%s': ", filename);
+ perror("");
+ return 1;
+ }
+
fclose(file);
+ return 0;
}
int cbfs_file_header(uint32_t physaddr)
void *loadfile(const char *filename, uint32_t * romsize_p, void *content,
int place);
void *loadrom(const char *filename);
-void writerom(const char *filename, void *start, uint32_t size);
+int writerom(const char *filename, void *start, uint32_t size);
int iself(unsigned char *input);