1*5fb3968eSAaron LI#!/usr/bin/awk -f 2*5fb3968eSAaron LI 3*5fb3968eSAaron LI# $FreeBSD$ 4*5fb3968eSAaron LI# $NetBSD: tables.awk,v 1.2 2014/02/27 01:17:13 ginsbach Exp $ 5*5fb3968eSAaron LI 6*5fb3968eSAaron LI# Copyright (c) 2013 The NetBSD Foundation, Inc. 7*5fb3968eSAaron LI# All rights reserved. 8*5fb3968eSAaron LI# 9*5fb3968eSAaron LI# This code is derived from software contributed to The NetBSD Foundation 10*5fb3968eSAaron LI# by Taylor R. Campbell. 11*5fb3968eSAaron LI# 12*5fb3968eSAaron LI# Redistribution and use in source and binary forms, with or without 13*5fb3968eSAaron LI# modification, are permitted provided that the following conditions 14*5fb3968eSAaron LI# are met: 15*5fb3968eSAaron LI# 1. Redistributions of source code must retain the above copyright 16*5fb3968eSAaron LI# notice, this list of conditions and the following disclaimer. 17*5fb3968eSAaron LI# 2. Redistributions in binary form must reproduce the above copyright 18*5fb3968eSAaron LI# notice, this list of conditions and the following disclaimer in the 19*5fb3968eSAaron LI# documentation and/or other materials provided with the distribution. 20*5fb3968eSAaron LI# 21*5fb3968eSAaron LI# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 22*5fb3968eSAaron LI# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 23*5fb3968eSAaron LI# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 24*5fb3968eSAaron LI# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 25*5fb3968eSAaron LI# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 26*5fb3968eSAaron LI# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 27*5fb3968eSAaron LI# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 28*5fb3968eSAaron LI# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 29*5fb3968eSAaron LI# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30*5fb3968eSAaron LI# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 31*5fb3968eSAaron LI# POSSIBILITY OF SUCH DAMAGE. 32*5fb3968eSAaron LI 33*5fb3968eSAaron LIBEGIN { 34*5fb3968eSAaron LI n_afs = 0 35*5fb3968eSAaron LI n_socktypes = 0 36*5fb3968eSAaron LI} 37*5fb3968eSAaron LI 38*5fb3968eSAaron LI!(($1 == "#define") && ($3 ~ /^[0-9]*$/)) { 39*5fb3968eSAaron LI next 40*5fb3968eSAaron LI} 41*5fb3968eSAaron LI 42*5fb3968eSAaron LI($2 ~ /^AF_[A-Z0-9_]*$/) && ($2 != "AF_MAX") { 43*5fb3968eSAaron LI afs[n_afs++] = substr($2, 4) 44*5fb3968eSAaron LI} 45*5fb3968eSAaron LI 46*5fb3968eSAaron LI($2 ~ /^SOCK_[A-Z0-9_]*$/) && ($2 != "SOCK_MAXADDRLEN") { 47*5fb3968eSAaron LI socktypes[n_socktypes++] = substr($2, 6) 48*5fb3968eSAaron LI} 49*5fb3968eSAaron LI 50*5fb3968eSAaron LIEND { 51*5fb3968eSAaron LI printf("/* Do not edit! This file was generated automagically! */\n"); 52*5fb3968eSAaron LI 53*5fb3968eSAaron LI printf("\nstatic const char *const address_families[] = {\n"); 54*5fb3968eSAaron LI for (i = 0; i < n_afs; i++) 55*5fb3968eSAaron LI printf("\t[AF_%s] = \"%s\",\n", afs[i], tolower(afs[i])); 56*5fb3968eSAaron LI printf("};\n"); 57*5fb3968eSAaron LI 58*5fb3968eSAaron LI printf("\nstatic const char *const socket_types[] = {\n"); 59*5fb3968eSAaron LI for (i = 0; i < n_socktypes; i++) 60*5fb3968eSAaron LI printf("\t[SOCK_%s] = \"%s\",\n", socktypes[i], 61*5fb3968eSAaron LI tolower(socktypes[i])); 62*5fb3968eSAaron LI printf("};\n"); 63*5fb3968eSAaron LI} 64