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