aboutsummaryrefslogtreecommitdiff
path: root/docs/history/13-gap-fixes/code/mkgenome.c
diff options
context:
space:
mode:
Diffstat (limited to 'docs/history/13-gap-fixes/code/mkgenome.c')
-rw-r--r--docs/history/13-gap-fixes/code/mkgenome.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/docs/history/13-gap-fixes/code/mkgenome.c b/docs/history/13-gap-fixes/code/mkgenome.c
new file mode 100644
index 0000000..8fb2cc5
--- /dev/null
+++ b/docs/history/13-gap-fixes/code/mkgenome.c
@@ -0,0 +1,16 @@
+/* turns a genome image (little-endian 32-bit words on stdin, as written by
+ tools/build.zc) into genome.h */
+#include <stdio.h>
+#define GORG 0xC0000
+int main(void)
+{
+ unsigned char b[4]; int n = 0;
+ printf("#define GORG %d\nstatic const int genome[] = {", GORG);
+ while (fread(b, 1, 4, stdin) == 4) {
+ int w = (int)(b[0] | b[1] << 8 | b[2] << 16 | (unsigned)b[3] << 24);
+ printf("%s%d", !n ? "\n" : n % 16 ? "," : ",\n", w);
+ n++;
+ }
+ printf("\n};\n#define GLEN %d\n", n);
+ return n ? 0 : 1;
+}