FreeBSD/Linux Kernel Cross Reference
sys/sys/gennameih.awk
1 #!/usr/bin/awk -F
2 #
3 # $NetBSD: gennameih.awk,v 1.5 2009/12/23 14:17:19 pooka Exp $
4 #
5 # Copyright (c) 2007 The NetBSD Foundation, Inc.
6 # All rights reserved.
7 #
8 # Redistribution and use in source and binary forms, with or without
9 # modification, are permitted provided that the following conditions
10 # are met:
11 # 1. Redistributions of source code must retain the above copyright
12 # notice, this list of conditions and the following disclaimer.
13 # 2. Redistributions in binary form must reproduce the above copyright
14 # notice, this list of conditions and the following disclaimer in the
15 # documentation and/or other materials provided with the distribution.
16 #
17 # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
18 # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
19 # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
21 # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 # POSSIBILITY OF SUCH DAMAGE.
28 #
29
30 function getrcsid(idstr) {
31 sub("^[^$]*\\$", "", idstr);
32 sub("\\$.*", "", idstr);
33
34 return idstr;
35 }
36
37 function printheader(outfile) {
38 print "Generating", outfile
39
40 print "/*\t$NetBSD: gennameih.awk,v 1.5 2009/12/23 14:17:19 pooka Exp $\t*/\n\n" > outfile
41
42 print "/*" > outfile
43 print " * WARNING: GENERATED FILE. DO NOT EDIT" > outfile
44 print " * (edit namei.src and run make namei in src/sys/sys)" > outfile
45 printf " * by: %s\n", getrcsid(myvers) > outfile
46 printf " * from: %s\n", getrcsid(fileheader) > outfile
47 print " */" > outfile
48 }
49
50 BEGIN {
51 myvers="$NetBSD: gennameih.awk,v 1.5 2009/12/23 14:17:19 pooka Exp $"
52 namei="namei.h"
53 rumpnamei = "../rump/include/rump/rump_namei.h"
54 }
55
56 NR == 1 {
57 fileheader=$0
58 printheader(namei)
59 next
60 }
61
62 /^NAMEIFL/ {
63 sub("NAMEIFL", "#define", $0);
64 print $0 > namei
65
66 sub("^", "NAMEI_", $2)
67 nameifl[i++] = $2 "\t" $3;
68 next
69 }
70
71 {
72 print $0 > namei
73 }
74
75 END {
76 printf "\n/* Definitions match above, but with NAMEI_ prefix */\n">namei
77
78 # print flags in the same order
79 for (j = 0; j < i; j++) {
80 print "#define " nameifl[j] > namei
81 }
82
83 printf "\n#endif /* !_SYS_NAMEI_H_ */\n" > namei
84
85 # Now, create rump_namei.h
86 printheader(rumpnamei)
87 printf("\n#ifndef _RUMP_RUMP_NAMEI_H_\n") > rumpnamei
88 printf("#define _RUMP_RUMP_NAMEI_H_\n\n") > rumpnamei
89
90 # print flags in the same order
91 for (j = 0; j < i; j++) {
92 print "#define RUMP_" nameifl[j] > rumpnamei
93 }
94
95 printf("\n#endif /* _RUMP_RUMP_NAMEI_H_ */\n") > rumpnamei
96 }
Cache object: ecea277b66b33580f2e49bb7a18a48fa
|