162306a36Sopenharmony_ci#!/bin/awk -f 262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 362306a36Sopenharmony_ci# gen-cpucaps.awk: arm64 cpucaps header generator 462306a36Sopenharmony_ci# 562306a36Sopenharmony_ci# Usage: awk -f gen-cpucaps.awk cpucaps.txt 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci# Log an error and terminate 862306a36Sopenharmony_cifunction fatal(msg) { 962306a36Sopenharmony_ci print "Error at line " NR ": " msg > "/dev/stderr" 1062306a36Sopenharmony_ci exit 1 1162306a36Sopenharmony_ci} 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci# skip blank lines and comment lines 1462306a36Sopenharmony_ci/^$/ { next } 1562306a36Sopenharmony_ci/^#/ { next } 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ciBEGIN { 1862306a36Sopenharmony_ci print "#ifndef __ASM_CPUCAPS_H" 1962306a36Sopenharmony_ci print "#define __ASM_CPUCAPS_H" 2062306a36Sopenharmony_ci print "" 2162306a36Sopenharmony_ci print "/* Generated file - do not edit */" 2262306a36Sopenharmony_ci cap_num = 0 2362306a36Sopenharmony_ci print "" 2462306a36Sopenharmony_ci} 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci/^[vA-Z0-9_]+$/ { 2762306a36Sopenharmony_ci printf("#define ARM64_%-40s\t%d\n", $0, cap_num++) 2862306a36Sopenharmony_ci next 2962306a36Sopenharmony_ci} 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ciEND { 3262306a36Sopenharmony_ci printf("#define ARM64_NCAPS\t\t\t\t\t%d\n", cap_num) 3362306a36Sopenharmony_ci print "" 3462306a36Sopenharmony_ci print "#endif /* __ASM_CPUCAPS_H */" 3562306a36Sopenharmony_ci} 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci# Any lines not handled by previous rules are unexpected 3862306a36Sopenharmony_ci{ 3962306a36Sopenharmony_ci fatal("unhandled statement") 4062306a36Sopenharmony_ci} 41