xref: /openbsd/sys/arch/hppa/dev/devlist2h.awk (revision fef2e65f)
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