forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
759 B
40 lines
759 B
#!/bin/awk -f |
|
# SPDX-License-Identifier: GPL-2.0 |
|
# gen-cpucaps.awk: arm64 cpucaps header generator |
|
# |
|
# Usage: awk -f gen-cpucaps.awk cpucaps.txt |
|
|
|
# Log an error and terminate |
|
function fatal(msg) { |
|
print "Error at line " NR ": " msg > "/dev/stderr" |
|
exit 1 |
|
} |
|
|
|
# skip blank lines and comment lines |
|
/^$/ { next } |
|
/^#/ { next } |
|
|
|
BEGIN { |
|
print "#ifndef __ASM_CPUCAPS_H" |
|
print "#define __ASM_CPUCAPS_H" |
|
print "" |
|
print "/* Generated file - do not edit */" |
|
cap_num = 0 |
|
print "" |
|
} |
|
|
|
/^[vA-Z0-9_]+$/ { |
|
printf("#define ARM64_%-30s\t%d\n", $0, cap_num++) |
|
next |
|
} |
|
|
|
END { |
|
printf("#define ARM64_NCAPS\t\t\t\t%d\n", cap_num) |
|
print "" |
|
print "#endif /* __ASM_CPUCAPS_H */" |
|
} |
|
|
|
# Any lines not handled by previous rules are unexpected |
|
{ |
|
fatal("unhandled statement") |
|
}
|
|
|