summaryrefslogtreecommitdiff
path: root/tools/gen_symtab.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gen_symtab.py')
-rwxr-xr-xtools/gen_symtab.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/tools/gen_symtab.py b/tools/gen_symtab.py
index b691da12..7a3dfef2 100755
--- a/tools/gen_symtab.py
+++ b/tools/gen_symtab.py
@@ -5,7 +5,6 @@ Embedded symbol table generator.
import sys
-symtab_size = 0
symtab = []
for line in sys.stdin:
@@ -16,15 +15,19 @@ for line in sys.stdin:
if len(parts) != 3 or parts[2].startswith("__func__."):
continue
- symtab.append("{ 0x%s, 0x%s, \"%s\" }" % tuple(parts))
- symtab_size += 1
+ sym = {'addr': parts[0], 'size': parts[1], 'name': parts[2]}
+ symtab.append(sym)
print("#include <kern/symbol.h>")
+
+for index, sym in enumerate(symtab):
+ print("static const char symbol_name_%u[] __symbol_table = \"%s\";" % (index, sym['name']))
+
print("const struct symbol symbol_table[] __symbol_table = {")
-for elem in symtab:
- print(" " + elem + ",",)
+for index, sym in enumerate(symtab):
+ print(" { 0x%s, 0x%s, symbol_name_%u }," % (sym['addr'], sym['size'], index))
print("};")
-print("const size_t symbol_table_size = %d;" % symtab_size)
+print("const size_t symbol_table_size = %d;" % len(symtab))
print("const struct symbol *symbol_table_ptr = symbol_table;")