aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2008-03-01 10:11:55 -0500
committerKevin O'Connor <kevin@koconnor.net>2008-03-01 10:11:55 -0500
commit596cf60bedeec1a325e4849bb6635254e0bf2d86 (patch)
tree61dcd4c4d1d430151ec0d2de20bd048e65a97f1c /tools
parent95576e7670f6cc93cf03ec528532809ce7cd22fc (diff)
downloadseabios-596cf60bedeec1a325e4849bb6635254e0bf2d86.tar.gz
Fix header guards produced by defsys.py
Issue spotted by Nguyen Anh Quynh
Diffstat (limited to 'tools')
-rwxr-xr-xtools/defsyms.py33
1 files changed, 25 insertions, 8 deletions
diff --git a/tools/defsyms.py b/tools/defsyms.py
index fe18d905..54d18b8b 100755
--- a/tools/defsyms.py
+++ b/tools/defsyms.py
@@ -9,7 +9,14 @@
import sys
import string
+def printUsage():
+ print "Usage:\n %s <output file>" % (sys.argv[0],)
+ sys.exit(1)
+
def main():
+ if len(sys.argv) != 2:
+ printUsage()
+ # Find symbols (that are valid)
syms = []
lines = sys.stdin.readlines()
for line in lines:
@@ -22,17 +29,27 @@ def main():
break
else:
syms.append((sym, addr))
- print """
-#ifndef __OFFSET16_AUTO_H
-#define __OFFSET16_AUTO_H
+ # Build guard string
+ guardstr = ''
+ for c in sys.argv[1]:
+ if c not in string.letters + string.digits + '_':
+ guardstr += '_'
+ else:
+ guardstr += c
+ # Generate header
+ f = open(sys.argv[1], 'wb')
+ f.write("""
+#ifndef __OFFSET_AUTO_H__%s
+#define __OFFSET_AUTO_H__%s
// Auto generated file - please see defsyms.py.
// This file contains symbol offsets of a compiled binary.
-"""
+
+""" % (guardstr, guardstr))
for sym, addr in syms:
- print "#define OFFSET_%s 0x%s" % (sym, addr)
- print """
-#endif // __OFFSET16_AUTO_H
-"""
+ f.write("#define OFFSET_%s 0x%s\n" % (sym, addr))
+ f.write("""
+#endif // __OFFSET_AUTO_H__%s
+""" % (guardstr,))
if __name__ == '__main__':
main()