From 9ca8dbcc65cfc63d6f5ef3312a33184e1d726e00 Mon Sep 17 00:00:00 2001 From: Yunhong Jiang Date: Tue, 4 Aug 2015 12:17:53 -0700 Subject: Add the rt linux 4.1.3-rt3 as base Import the rt linux 4.1.3-rt3 as OPNFV kvm base. It's from git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git linux-4.1.y-rt and the base is: commit 0917f823c59692d751951bf5ea699a2d1e2f26a2 Author: Sebastian Andrzej Siewior Date: Sat Jul 25 12:13:34 2015 +0200 Prepare v4.1.3-rt3 Signed-off-by: Sebastian Andrzej Siewior We lose all the git history this way and it's not good. We should apply another opnfv project repo in future. Change-Id: I87543d81c9df70d99c5001fbdf646b202c19f423 Signed-off-by: Yunhong Jiang --- kernel/drivers/zorro/gen-devlist.c | 107 +++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 kernel/drivers/zorro/gen-devlist.c (limited to 'kernel/drivers/zorro/gen-devlist.c') diff --git a/kernel/drivers/zorro/gen-devlist.c b/kernel/drivers/zorro/gen-devlist.c new file mode 100644 index 000000000..16fe206f9 --- /dev/null +++ b/kernel/drivers/zorro/gen-devlist.c @@ -0,0 +1,107 @@ +/* + * Generate devlist.h from the Zorro ID file. + * + * (c) 2000 Geert Uytterhoeven + * + * Based on the PCI version: + * + * (c) 1999--2000 Martin Mares + */ + +#include +#include + +#define MAX_NAME_SIZE 63 + +static void +pq(FILE *f, const char *c) +{ + while (*c) { + if (*c == '"') + fprintf(f, "\\\""); + else + fputc(*c, f); + c++; + } +} + +int +main(void) +{ + char line[1024], *c, *bra, manuf[8]; + int manufs = 0; + int mode = 0; + int lino = 0; + int manuf_len = 0; + FILE *devf; + + devf = fopen("devlist.h", "w"); + if (!devf) { + fprintf(stderr, "Cannot create output file!\n"); + return 1; + } + + while (fgets(line, sizeof(line)-1, stdin)) { + lino++; + if ((c = strchr(line, '\n'))) + *c = 0; + if (!line[0] || line[0] == '#') + continue; + if (line[0] == '\t') { + switch (mode) { + case 1: + if (strlen(line) > 5 && line[5] == ' ') { + c = line + 5; + while (*c == ' ') + *c++ = 0; + if (manuf_len + strlen(c) + 1 > MAX_NAME_SIZE) { + /* Too long, try cutting off long description */ + bra = strchr(c, '['); + if (bra && bra > c && bra[-1] == ' ') + bra[-1] = 0; + if (manuf_len + strlen(c) + 1 > MAX_NAME_SIZE) { + fprintf(stderr, "Line %d: Product name too long\n", lino); + return 1; + } + } + fprintf(devf, "\tPRODUCT(%s,%s,\"", manuf, line+1); + pq(devf, c); + fputs("\")\n", devf); + } else goto err; + break; + default: + goto err; + } + } else if (strlen(line) > 4 && line[4] == ' ') { + c = line + 4; + while (*c == ' ') + *c++ = 0; + if (manufs) + fputs("ENDMANUF()\n\n", devf); + manufs++; + strcpy(manuf, line); + manuf_len = strlen(c); + if (manuf_len + 24 > MAX_NAME_SIZE) { + fprintf(stderr, "Line %d: manufacturer name too long\n", lino); + return 1; + } + fprintf(devf, "MANUF(%s,\"", manuf); + pq(devf, c); + fputs("\")\n", devf); + mode = 1; + } else { + err: + fprintf(stderr, "Line %d: Syntax error in mode %d: %s\n", lino, mode, line); + return 1; + } + } + fputs("ENDMANUF()\n\ +\n\ +#undef MANUF\n\ +#undef PRODUCT\n\ +#undef ENDMANUF\n", devf); + + fclose(devf); + + return 0; +} -- cgit 1.2.3-korg