1*fef2e65fSmickey# $OpenBSD: devlist2h.awk,v 1.6 2004/04/07 18:24:19 mickey Exp $ 24e20bbf4Smickey 34e20bbf4Smickey# 4*fef2e65fSmickey# Copyright (c) 1998-2003 Michael Shalayeff 54e20bbf4Smickey# All rights reserved. 64e20bbf4Smickey# 74e20bbf4Smickey# Redistribution and use in source and binary forms, with or without 84e20bbf4Smickey# modification, are permitted provided that the following conditions 94e20bbf4Smickey# are met: 104e20bbf4Smickey# 1. Redistributions of source code must retain the above copyright 114e20bbf4Smickey# notice, this list of conditions and the following disclaimer. 124e20bbf4Smickey# 2. Redistributions in binary form must reproduce the above copyright 134e20bbf4Smickey# notice, this list of conditions and the following disclaimer in the 144e20bbf4Smickey# documentation and/or other materials provided with the distribution. 154e20bbf4Smickey# 164e20bbf4Smickey# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 174e20bbf4Smickey# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 184e20bbf4Smickey# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 19*fef2e65fSmickey# IN NO EVENT SHALL THE AUTHOR OR HIS RELATIVES BE LIABLE FOR ANY DIRECT, 20*fef2e65fSmickey# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21*fef2e65fSmickey# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22*fef2e65fSmickey# SERVICES; LOSS OF MIND, USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23*fef2e65fSmickey# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 24*fef2e65fSmickey# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 25*fef2e65fSmickey# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 26*fef2e65fSmickey# THE POSSIBILITY OF SUCH DAMAGE. 274e20bbf4Smickey# 284e20bbf4Smickey 294e20bbf4SmickeyBEGIN { 3063333fb0Smickey ncpu = 0; 314e20bbf4Smickey cpuh="cpudevs.h"; 324e20bbf4Smickey cpud="cpudevs_data.h"; 334e20bbf4Smickey SUBSEP = "_"; 344e20bbf4Smickey} 354e20bbf4Smickey 3652c8b1ccSmickey/^[ \t]*$/ {next} 3752c8b1ccSmickey 3852c8b1ccSmickey/^[ \t]*\/\*/ {busted++} 3952c8b1ccSmickey 4052c8b1ccSmickey/^[ \t]*#/ {next} 4152c8b1ccSmickey 4252c8b1ccSmickeybusted { 4352c8b1ccSmickey cp = match($0, /\*\//); 4452c8b1ccSmickey if(!cp) { 4552c8b1ccSmickey next; 4652c8b1ccSmickey } else if (cp + 1 == length($0)) { 4752c8b1ccSmickey busted = 0; 4852c8b1ccSmickey next; 4952c8b1ccSmickey } else { 5052c8b1ccSmickey sub(/.*\*\//, ""); 5152c8b1ccSmickey busted = 0; 5252c8b1ccSmickey } 5352c8b1ccSmickey} 5452c8b1ccSmickey 5552c8b1ccSmickey# first line is rcsid, beware 564e20bbf4SmickeyNR == 1 { 574e20bbf4Smickey VERSION = $0; 584e20bbf4Smickey gsub("\\$", "", VERSION); 594e20bbf4Smickey 604e20bbf4Smickey printf("/*\n * THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT.\n" \ 614e20bbf4Smickey " * generated from:\n *\t%s\n */\n\n", VERSION) > cpud; 624e20bbf4Smickey printf("/*\n * THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT.\n" \ 634e20bbf4Smickey " * generated from:\n *\t%s\n */\n\n", VERSION) > cpuh; 644e20bbf4Smickey} 654e20bbf4Smickey 664e20bbf4Smickey$1 == "type" { 674e20bbf4Smickey printf("#define\tHPPA_TYPE_%s\t%s\n", toupper($2), $3) > cpuh; 6863333fb0Smickey types[tolower($2)] = toupper($2); 6952c8b1ccSmickey next; 704e20bbf4Smickey} 714e20bbf4Smickey 7252c8b1ccSmickeyNR > 1 { 7363333fb0Smickey if (tolower($1) in types) { 744e20bbf4Smickey printf("#define\tHPPA_%s_%s\t%s\n", toupper($1), 754e20bbf4Smickey toupper($2), $3) > cpuh; 765b57341eSmickey printf("{HPPA_TYPE_%s,\tHPPA_%s_%s,\t\"", toupper($1), 774e20bbf4Smickey toupper($1), toupper($2), $3) > cpud; 784e20bbf4Smickey f = 4; 794e20bbf4Smickey while (f <= NF) { 8052c8b1ccSmickey sub(/[ \t]*/, "", $f); 8152c8b1ccSmickey ep = match($f, /\*\//); 8252c8b1ccSmickey if (busted && !ep) { 8352c8b1ccSmickey f++; 8452c8b1ccSmickey continue; 8552c8b1ccSmickey } 8652c8b1ccSmickey if (match($f, /\/\*/)) { 8752c8b1ccSmickey if (ep) { 8852c8b1ccSmickey sub(/\/\*/, "", $f); 8952c8b1ccSmickey } else { 9052c8b1ccSmickey sub(/\/\*.*$/, "", $f); 9152c8b1ccSmickey busted++; 9252c8b1ccSmickey } 9352c8b1ccSmickey } 9452c8b1ccSmickey if (ep) { 9552c8b1ccSmickey gsub(/^.*\*\//, "", $f); 9652c8b1ccSmickey busted = 0; 9752c8b1ccSmickey } 9852c8b1ccSmickey if (length($f)) { 9952c8b1ccSmickey if (f > 4) 1004e20bbf4Smickey printf (" ") > cpud; 10152c8b1ccSmickey printf ("%s", $f) > cpud; 10252c8b1ccSmickey } 1034e20bbf4Smickey f++; 1044e20bbf4Smickey } 1054e20bbf4Smickey printf("\" },\n") > cpud; 10652c8b1ccSmickey } else { 10752c8b1ccSmickey printf("WHA at line %d\n", NR); 10852c8b1ccSmickey exit(1); 1094e20bbf4Smickey } 1104e20bbf4Smickey} 1114e20bbf4Smickey 1124e20bbf4SmickeyEND { 11352c8b1ccSmickey if (busted) { 11455a3c5f9Smickey print("unterminated comment at the EOF\n"); 11552c8b1ccSmickey exit(1); 11652c8b1ccSmickey } 1175b57341eSmickey printf("{ -1 }\n") > cpud; 1184e20bbf4Smickey} 1194e20bbf4Smickey 120