summaryrefslogblamecommitdiffstats
path: root/util/make-multiextractor
blob: 487162e32d548447cfe4dfea37be012797ad3569 (plain) (tree)
























                                                                                                      
#!/bin/sh

set -e

test $# -ge 3

lowercase () { printf '%s\n' "$*" | tr '[A-Z]' '[a-z]'; }

symbols="$(lowercase "$1")"
shift 1

printf	'static const char *\n'
printf	'extract_symbol_%s(struct libsyscalls_symbol_printer_data *data, ' "$symbols"
printf                    'unsigned long long int *valuep, char *fallback_out) /* %i */\n' $#
printf	'{\n'
printf	'	switch (data->nr) {\n'
i=0
for use; do
printf	'	case %i:\n' $(( i++ ))
printf	'		return extract_symbol_%s(data, valuep, fallback_out);\n' "$(lowercase "$use")"
done
printf	'	default:\n'
printf	'		abort();\n'
printf	'	}\n'
printf	'}\n'