Enable -Werror for romcc
[coreboot.git] / util / getpir / code_gen.c
index a458eae27a90bf819247bc8fe98dc86598a6bf3e..96f2f3dad265d2b72a3ff4c63ef17cd71ee44dff 100644 (file)
@@ -3,18 +3,34 @@
 #include "pirq_routing.h"
 
 static char *preamble[] = {
-       "/* This file was generated by getpir.c, do not modify! \n   (but if you do, please run checkpir on it to verify)\n",
-       " * Contains the IRQ Routing Table dumped directly from your memory, which BIOS sets up\n",
+
+       "/*\n",
+       " * This file is part of the coreboot project.\n",
+       " *\n",
+       " * Copyright (C) 200x TODO <TODO@TODO>\n",
+       " *\n",
+       " * This program is free software; you can redistribute it and/or modify\n",
+       " * it under the terms of the GNU General Public License as published by\n",
+       " * the Free Software Foundation; either version 2 of the License, or\n",
+       " * (at your option) any later version.\n",
        " *\n",
-       " * Documentation at : http://www.microsoft.com/hwdev/busbios/PCIIRQ.HTM\n*/\n\n",
-       "#ifdef GETPIR\n",
-       "#include \"pirq_routing.h\"\n",
-       "#else\n"
+       " * This program is distributed in the hope that it will be useful,\n",
+       " * but WITHOUT ANY WARRANTY; without even the implied warranty of\n",
+       " * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n",
+       " * GNU General Public License for more details.\n",
+       " *\n",
+       " * You should have received a copy of the GNU General Public License\n",
+       " * along with this program; if not, write to the Free Software\n",
+       " * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA\n",
+       " */\n\n",
+       "#ifdef GETPIR                  /* TODO: Drop this when copying to coreboot. */\n",
+       "#include \"pirq_routing.h\"    /* TODO: Drop this when copying to coreboot. */\n",
+       "#else                          /* TODO: Drop this when copying to coreboot. */\n"
        "#include <arch/pirq_routing.h>\n",
-       "#endif\n\n"
+       "#endif                         /* TODO: Drop this when copying to coreboot. */\n\n"
        "const struct irq_routing_table intel_irq_routing_table = {\n",
-       "\tPIRQ_SIGNATURE,  /* u32 signature */\n",
-       "\tPIRQ_VERSION,    /* u16 version   */\n",
+       "\tPIRQ_SIGNATURE,              /* u32 signature */\n",
+       "\tPIRQ_VERSION,                /* u16 version */\n",
        0
 };
 
@@ -33,25 +49,25 @@ void code_gen(char *filename, struct irq_routing_table *rt)
        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, "\t32 + 16 * %d,          /* Max. number of devices on the bus */\n",
+               ts);
+       fprintf(fpir, "\t0x%02x,                        /* Interrupt router bus */\n",
                rt->rtr_bus);
-       fprintf(fpir, "\t(0x%02x<<3)|0x%01x,   /* Where the interrupt router lies (dev) */\n",
+       fprintf(fpir, "\t(0x%02x << 3) | 0x%01x,        /* Interrupt router dev */\n",
                rt->rtr_devfn >> 3, rt->rtr_devfn & 7);
-       fprintf(fpir, "\t%#x,            /* IRQs devoted exclusively to PCI usage */\n",
+       fprintf(fpir, "\t%#x,                   /* IRQs devoted exclusively to PCI usage */\n",
                rt->exclusive_irqs);
-       fprintf(fpir, "\t%#x,            /* Vendor */\n", rt->rtr_vendor);
-       fprintf(fpir, "\t%#x,            /* Device */\n", rt->rtr_device);
-       fprintf(fpir, "\t%#x,            /* Crap (miniport) */\n",
+       fprintf(fpir, "\t%#x,                   /* Vendor */\n", rt->rtr_vendor);
+       fprintf(fpir, "\t%#x,                   /* Device */\n", rt->rtr_device);
+       fprintf(fpir, "\t%#x,                   /* Miniport */\n",
                rt->miniport_data);
        fprintf(fpir, "\t{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* u8 rfu[11] */\n");
-       fprintf(fpir, "\t%#x,         /*  u8 checksum , this hase to set to some value that would give 0 after the sum of all bytes for this structure (including checksum) */\n",
+       fprintf(fpir, "\t%#x,                   /* Checksum (has to be set to some value that\n                          * would give 0 after the sum of all bytes\n                             * for this structure (including checksum).\n                                 */\n",
                rt->checksum);
        fprintf(fpir, "\t{\n");
-       fprintf(fpir, "\t\t/* bus,     dev|fn,   {link, bitmap}, {link, bitmap}, {link, bitmap}, {link, bitmap},  slot, rfu */\n");
+       fprintf(fpir, "\t\t/* bus,        dev | fn,   {link, bitmap}, {link, bitmap}, {link, bitmap}, {link, bitmap}, slot, rfu */\n");
        for (i = 0; i < ts; i++) {
-               fprintf(fpir, "\t\t{0x%02x,(0x%02x<<3)|0x%01x, {{0x%02x, 0x%04x}, {0x%02x, 0x%04x}, {0x%02x, 0x%04x}, {0x%02x, 0x0%04x}}, 0x%x, 0x%x},\n",
+               fprintf(fpir, "\t\t{0x%02x, (0x%02x << 3) | 0x%01x, {{0x%02x, 0x%04x}, {0x%02x, 0x%04x}, {0x%02x, 0x%04x}, {0x%02x, 0x%04x}}, 0x%x, 0x%x},\n",
                        (se_arr+i)->bus, (se_arr+i)->devfn >> 3,
                        (se_arr+i)->devfn & 7, (se_arr+i)->irq[0].link,
                        (se_arr+i)->irq[0].bitmap, (se_arr+i)->irq[1].link,
@@ -63,5 +79,10 @@ void code_gen(char *filename, struct irq_routing_table *rt)
        fprintf(fpir, "\t}\n");
        fprintf(fpir, "};\n");
 
+       fprintf(fpir, "\nunsigned long write_pirq_routing_table(unsigned long addr)\n");
+       fprintf(fpir, "{\n");
+       fprintf(fpir, "\treturn copy_pirq_routing_table(addr);\n");
+       fprintf(fpir, "}\n");
+
        fclose(fpir);
 }