Each strace port relies heavily on port-specific headers:
	- errnoent.h - map error number to error name like strerror()
	- ioctlent.h - map ioctl number to symbolic define
	- signalent.h - map signal number to signal name like strsignal()
	- syscallent.h - map syscall number to name and function signature

Since generating these headers from scratch (or even just updating them) can be
a big pain, there are a few scripts to help automate the process.  Since each
port organizes their kernel sources differently, there may be a specific script
for your kernel.

We will use the Linux kernel (2.6.20+) as an example below (the Blackfin
architecture to be specific).  Hopefully, it'll be obvious how to swap out a
different system or architecture as your circumstances apply.

ksrc=/usr/src/linux
asrc=$ksrc/arch/blackfin/include/asm

To use the errnoent.sh script, give it all the headers that might contain
appropriate errno values.  Excessive headers are not a problem.  The resulting
output should be directly usable without modification.
	sh ./errnoent.sh \
		$ksrc/include/linux/*errno*.h \
		$ksrc/include/asm-generic/*errno*.h \
		$asrc/*errno*.h \
		> errnoent.h

To use the ioctlent.sh script, give it all the base include directories.  The
script will crawl all the headers and try to discover appropriate ioctls.
Unlike the other scripts, this one creates files for further processing.  This
is because ioctls tend to have a lot of define indirection, and the ioctlent.h
header needs to be fully expanded into numeric form and sorted properly.  So
first we process all of the ioctls with the ioctlent.sh into ioctldefs.h and
ioctls.h, and then we compile them into ioctlsort.c.  The resulting output,
while directly usable, only contains definitions that match exactly the current
kernel version that the script ran against.  That means older/newer ioctl
defines that might be present in the existing ioctlent.h header will be lost if
things are copied directly.  A little creative use of `diff` and manual merging
should be used to produce the final ioctlent.h header.
	sh ./linux/ioctlent.sh $ksrc/include $asrc
	gcc -Wall -I. linux/ioctlsort.c -o ioctlsort
	./ioctlsort > ioctlent.h

To use the signalent.sh script, give it all the headers that might contain
appropriate signal values.  Excessive headers are not a problem.  The resulting
output should be directly usable without modification.
	sh ./signalent.sh \
		$asrc/signal.h \
		> signalent.h

To use the syscallent.sh script, give it the header with the list of your
system call numbers.  The resulting output is useful as a template for creating
a proper header as it can really only detect the system call number and its
name.  It has no way of knowing the number of arguments or strace flags for
decoding them (yet?).
	sh ./syscallent.sh \
		$asrc/unistd.h \
		> syscallent.h
