diff src/cs/drivers/drv_app/ffs/board/mkeffs.pl @ 0:b6a5e36de839

src/cs: initial import from Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 15 Jul 2018 04:39:26 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cs/drivers/drv_app/ffs/board/mkeffs.pl	Sun Jul 15 04:39:26 2018 +0000
@@ -0,0 +1,53 @@
+#!/usr/bin/perl -w
+
+if ($#ARGV < 0) { die "Must give argument 'c' or 'pl'"; }
+
+$c = ($ARGV[0] eq "c");
+shift;
+
+$c && c_begin();
+!$c && pl_begin();
+
+while (<>) {
+    chop;
+    if (/^\s*(EFFS_\w+)\s*=\s*(-?[0-9]+),\s*\/\* (.*) \*\//) {
+	$name = $1;
+	$code = $2;
+	$text = $3;
+	$c  && print "    case $name: return \"$text\"; /* $code */\n";
+	!$c && print "\$$name = $code;\n";
+	!$c && print "\$FFS_ERRORSTR{$code} = \"$text\";\n";
+    }
+}
+
+$c && c_end();
+!$c && pl_end();
+
+
+sub c_begin
+{
+    print "/* This file is autogenerated --- do not edit. */\n\n";
+    
+    print "#include \"ffs/ffs.h\"\n\n";
+    
+    print "char *ffs_strerror(effs_t error)\n";
+    print "{\n";
+    print "    switch (error) {\n";
+}
+
+sub c_end
+{
+    print "    default: return \"unknown ffs error code!\";\n";
+    print "    }\n";
+    print "}\n";
+}
+
+sub pl_begin
+{
+    print "# This file is autogenerated --- do not edit.\n\n";
+}
+
+sub pl_end
+{
+}
+