diff options
| author | Craig Rodrigues <rodrigc@FreeBSD.org> | 2007-01-04 04:18:03 +0000 |
|---|---|---|
| committer | Craig Rodrigues <rodrigc@FreeBSD.org> | 2007-01-04 04:18:03 +0000 |
| commit | 4c8dc49a4a58ec65c21fd52d1b3e05287897bce1 (patch) | |
| tree | 587e43c69b20455de707f7e7466011fef48edb8f /usr.bin | |
| parent | b1fa343faec4e5af24ffc3c4d83c0125f2796334 (diff) | |
Notes
Diffstat (limited to 'usr.bin')
| -rw-r--r-- | usr.bin/kdump/mksubr | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/usr.bin/kdump/mksubr b/usr.bin/kdump/mksubr index 1e9825aca311..8cf4f946564f 100644 --- a/usr.bin/kdump/mksubr +++ b/usr.bin/kdump/mksubr @@ -96,6 +96,36 @@ cat <<_EOF_ _EOF_ } +# +# Automatically generates a C function used when the argument +# maps to a #definition +# +auto_if_type () { + local name grep file + name=$1 + grep=$2 + file=$3 + + cat <<_EOF_ +/* AUTO */ +void +$name (int arg) +{ +_EOF_ + egrep "^#[[:space:]]*define[[:space:]]+"${grep}"[[:space:]]*" \ + $include_dir/$file | \ + awk '{ printf "\t"; \ + if (NR > 1) \ + printf "else " ; \ + printf "if (arg == %s) \n\t\tprintf(\"%s\");\n", $2, $2 }' +cat <<_EOF_ + else /* Should not reach */ + (void)printf("<invalid=%ld>", (long)arg); +} + +_EOF_ +} + # C start cat <<_EOF_ |
