0
};
-void code_gen(FILE * fpir, struct irq_routing_table *rt)
+void code_gen(char *filename, struct irq_routing_table *rt)
{
char **code = preamble;
struct irq_info *se_arr = (struct irq_info *) ((char *) rt + 32);
int i, ts = (rt->size - 32) / 16;
+ FILE *fpir;
+
+ if ((fpir = fopen(filename, "w")) == NULL) {
+ printf("Failed creating file!\n");
+ exit(2);
+ }
while (*code)
fprintf(fpir, "%s", *code++);
-
fprintf(fpir, "\t32+16*%d, /* there can be total %d devices on the bus */\n",
ts, ts);
fprintf(fpir, "\t0x%02x, /* Where the interrupt router lies (bus) */\n",
}
fprintf(fpir, "\t}\n");
fprintf(fpir, "};\n");
+
+ fclose(fpir);
}
main()
{
int fd_mem;
- FILE *fpir;
struct irq_routing_table *rt;
if (getuid()) {
printf("Checksum is ok!\n");
printf("Creating irq_tables.c .....\n");
- fpir = fopen("irq_tables.c", "w");
- if (!fpir) {
- printf("Failed creating file!\n");
- exit(2);
- }
- code_gen(fpir, rt);
- fclose(fpir);
+ code_gen("irq_tables.c", rt);
close(fd_mem);