| #!/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 "}" | |
| } |