1 # $NetBSD: gen_errno_tables.awk,v 1.1.38.1 2005/03/04 16:39:22 skrll Exp $
3 # Copyright (c) 1999 Christopher G. Demetriou. All rights reserved.
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions
8 # 1. Redistributions of source code must retain the above copyright
9 # notice, this list of conditions and the following disclaimer.
10 # 2. Redistributions in binary form must reproduce the above copyright
11 # notice, this list of conditions and the following disclaimer in the
12 # documentation and/or other materials provided with the distribution.
13 # 3. All advertising materials mentioning features or use of this software
14 # must display the following acknowledgement:
15 # This product includes software developed by Christopher G. Demetriou
16 # for the NetBSD Project.
17 # 4. The name of the author may not be used to endorse or promote products
18 # derived from this software without specific prior written permission
20 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
21 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
22 # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
23 # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
24 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
25 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
29 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 # Currently this script works with either gawk or nawk.
35 # awk -f gen_errno_tables.awk -v PREFIX=OSF1 netbsd_errno_hdr \
38 # It puts results into 'c' and 'h' in current directory, which can then be
39 # incorporated into emulation header files.
41 # Note that this script is not meant to generate perfectly pretty output.
42 # Wanna be a formatting weenie, hand-edit the output (or make the script
43 # output perfectly pretty lists).
53 NR != (FNR + nr_offset
) {
54 printf("file switch\n");
58 nr_offset =
(NR - FNR)
62 /^
#[ \t]*define[ \t]+E[A-Z0-9]*[ \t]+[0-9]+/ {
63 if ($
1 ==
"#define") {
71 if (val_max
[idx
] < val
) {
74 if (mappings
[idx
, "val", val
] ==
"") {
75 mappings
[idx
, "name", name
] = val
76 mappings
[idx
, "val", val
] = name
85 printf(" 0,\n") >> "c"
86 for (i =
1; i
<= val_max
[0]; i
++) {
87 nb_name = mappings
[0, "val", i
]
89 otheros_val = mappings
[1, "name", nb_name
]
90 if (otheros_val
!= "") {
91 printf(" %s_%s,\t\t/* %s (%d) -> %d */\n",
92 PREFIX
, nb_name
, nb_name
, i
,
95 printf(" %s_%s,\t\t/* %s (%d) has no equivalent */\n",
96 PREFIX
, "ENOSYS", nb_name
, i
) >> "c"
101 for (i =
1; i
<= val_max
[1]; i
++) {
102 if (mappings
[1, "val", i
] != "") {
103 printf("#define %s_%s\t\t%d\n",
104 PREFIX
, mappings
[1, "val", i
], i
) >> "h"