The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/sys/gennameih.awk

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    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


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.