xref: /netbsd-src/sys/dev/acpi/devlist2h.awk (revision bdc22b2e01993381dcefeff2bc9b56ca75a4235c)
1#! /usr/bin/awk -f
2#	$NetBSD: devlist2h.awk,v 1.7 2008/04/30 13:10:59 martin Exp $
3#
4# Copyright (c) 1998 The NetBSD Foundation, Inc.
5# All rights reserved.
6#
7# This code is derived from software contributed to The NetBSD Foundation
8# by Christos Zoulas.
9#
10# Redistribution and use in source and binary forms, with or without
11# modification, are permitted provided that the following conditions
12# are met:
13# 1. Redistributions of source code must retain the above copyright
14#    notice, this list of conditions and the following disclaimer.
15# 2. Redistributions in binary form must reproduce the above copyright
16#    notice, this list of conditions and the following disclaimer in the
17#    documentation and/or other materials provided with the distribution.
18#
19# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29# POSSIBILITY OF SUCH DAMAGE.
30#
31BEGIN {
32	nproducts = 0
33	dfile="acpidevs_data.h"
34}
35NR == 1 {
36	VERSION = $0
37	gsub("\\$", "", VERSION)
38	gsub(/ $/, "", VERSION)
39
40	printf("/*\t$NetBSD" "$\t*/\n\n") > dfile
41	printf("/*\n") > dfile
42	printf(" * THIS FILE AUTOMATICALLY GENERATED.  DO NOT EDIT.\n") \
43	    > dfile
44	printf(" *\n") > dfile
45	printf(" * generated from:\n") > dfile
46	printf(" *\t%s\n", VERSION) > dfile
47	printf(" */\n") > dfile
48	nproducts = 0;
49
50	next
51}
52/^#/ {
53	next
54}
55/^[A-Z][A-Z][A-Z].*/ {
56	nproducts++
57
58	products[nproducts, 1] = toupper($1);
59	$1 = "";
60	sub ("^ *", "");
61	products[nproducts, 2] = $0;
62	next
63}
64END {
65	printf("\n") > dfile
66
67	printf("const struct { const char *pnp, *str; } acpi_knowndevs[] = {\n") > dfile
68	for (i = 1; i <= nproducts; i++) {
69		printf("\t{\n") > dfile
70		printf("\t    \"%s\",\n", products[i, 1]) > dfile
71		printf("\t    \"%s\",\n", products[i, 2]) > dfile
72		printf("\t},\n") > dfile
73	}
74	printf("};\n") > dfile
75	close(dfile)
76}
77