#!/usr/bin/gawk -f | |
BEGIN { | |
print "/* DO NOT EDIT: AUTOMATICALLY GENERATED" | |
print " * Input files: bootrom-asm-offsets.awk bootrom-asm-offsets.c.in" | |
print " * DO NOT EDIT: AUTOMATICALLY GENERATED" | |
print " */" | |
print "" | |
system("cat bootrom-asm-offsets.c.in") | |
print "{" | |
} | |
{ | |
/* find a structure definition */ | |
if ($0 ~ /typedef struct .* {/) { | |
delete members; | |
i = 0; | |
/* extract each member of the structure */ | |
while (1) { | |
getline | |
if ($1 == "}") | |
break; | |
gsub(/[*;]/, ""); | |
members[i++] = $NF; | |
} | |
/* grab the structure's name */ | |
struct = $NF; | |
sub(/;$/, "", struct); | |
/* output the DEFINE() macros */ | |
while (i-- > 0) | |
print "\tDEFINE(" struct ", " members[i] ");" | |
print "" | |
} | |
} | |
END { | |
print "\treturn 0;" | |
print "}" | |
} |