Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

#!/bin/sh
# $NetBSD: keywords.sh,v 1.11 2013/03/01 18:25:17 joerg Exp $
# @(#)keywords	8.2 (Berkeley) 3/19/94
#
# WARNING!  If you change this file, re-run it!

# This program requires "new" awk (or GNU awk).
awk=${AWK:-awk}

cat << _EOF_ > _keywords.t1
add
atalk
blackhole
change
cloned
cloning
delete
dst
expire
flush
gateway
genmask
get
host
hopcount
iface
interface
ifa
ifp
inet
inet6
link
llinfo
lock
lockrest
mask
monitor
mtu
net
netmask
nostatic
prefixlen
proto1
proto2
recvpipe
reject
rtt
rttvar
sa
sendpipe
show
ssthresh
static
x25
xns
xresolve
flushall
nocloned
nocloning
noblackhole
noreject
mpls
tag
proxy
_EOF_


################################################################
# Setup
################################################################

# This creates a stream of:
#	keyword KEYWORD
# (lower case, upper case).
tr a-z A-Z < _keywords.t1 |
paste _keywords.t1 - > _keywords.t2


################################################################
# Generate the h file
################################################################
exec > keywords.h

echo '/* $'NetBSD'$ */

/* WARNING!  This file was generated by keywords.sh  */

extern struct keytab {
	const char *kt_cp;
	int	kt_i;
} keywords[];

' # defines follow

$awk '{
	printf("#define\tK_%s\t%d\n", $2, NR);
}' < _keywords.t2


################################################################
# Generate the c file
################################################################
exec > keywords.c

echo '/* $'NetBSD'$ */

/* WARNING!  This file was generated by keywords.sh  */

#include "keywords.h"

struct keytab keywords[] = {
' # initializers follow

$awk '{
	printf("\t{\"%s\", K_%s},\n", $1, $2);
}' < _keywords.t2

echo '	{0, 0}
};
' # tail


################################################################
# Cleanup
################################################################

rm -f _keywords.t1 _keywords.t2
exit 0