seperate code generation
authorLi-Ta Lo <ollie@lanl.gov>
Tue, 7 Sep 2004 21:31:06 +0000 (21:31 +0000)
committerLi-Ta Lo <ollie@lanl.gov>
Tue, 7 Sep 2004 21:31:06 +0000 (21:31 +0000)
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1646 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

util/getpir/code_gen.c
util/getpir/getpir.c

index 32528633a0d264c6855c141868918fec5ad7e35f..150d083d867890e8dbb750c634475103cf0b6fd8 100644 (file)
@@ -13,16 +13,21 @@ static char *preamble[] = {
        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",
@@ -52,4 +57,6 @@ void code_gen(FILE * fpir, struct irq_routing_table *rt)
        }
        fprintf(fpir, "\t}\n");
        fprintf(fpir, "};\n");
+
+       fclose(fpir);
 }
index 5bcdd452a3b7b503858390d375807e4fe6e24058..7f08af6f6a08f2feabdf9254436ba2660cbc0761 100644 (file)
@@ -33,7 +33,6 @@ static struct irq_routing_table *probe_table(int fd_mem)
 main()
 {
        int fd_mem;
-       FILE *fpir;
        struct irq_routing_table *rt;
 
        if (getuid()) {
@@ -50,13 +49,7 @@ main()
                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);