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